OSDN Git Service

radeonsi: remove switch statement in si_create_context
authorMarek Olšák <marek.olsak@amd.com>
Thu, 16 Jul 2015 12:42:38 +0000 (14:42 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Wed, 22 Jul 2015 22:59:24 +0000 (00:59 +0200)
and make si_init_config static

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
src/gallium/drivers/radeonsi/si_pipe.c
src/gallium/drivers/radeonsi/si_state.c
src/gallium/drivers/radeonsi/si_state.h

index 2b6a6ff..0878b88 100644 (file)
@@ -128,17 +128,8 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen, void *
        sctx->atoms.s.streamout_begin = &sctx->b.streamout.begin_atom;
        sctx->atoms.s.streamout_enable = &sctx->b.streamout.enable_atom;
 
-       switch (sctx->b.chip_class) {
-       case SI:
-       case CIK:
-               si_init_state_functions(sctx);
-               si_init_shader_functions(sctx);
-               si_init_config(sctx);
-               break;
-       default:
-               R600_ERR("Unsupported chip class %d.\n", sctx->b.chip_class);
-               goto fail;
-       }
+       si_init_state_functions(sctx);
+       si_init_shader_functions(sctx);
 
        if (sscreen->b.debug_flags & DBG_FORCE_DMA)
                sctx->b.b.resource_copy_region = sctx->b.dma_copy;
index 1d4a4e8..316c689 100644 (file)
@@ -2920,6 +2920,8 @@ static void si_need_gfx_cs_space(struct pipe_context *ctx, unsigned num_dw,
        si_need_cs_space((struct si_context*)ctx, num_dw, include_draw_vbo);
 }
 
+static void si_init_config(struct si_context *sctx);
+
 void si_init_state_functions(struct si_context *sctx)
 {
        si_init_atom(&sctx->framebuffer.atom, &sctx->atoms.s.framebuffer, si_emit_framebuffer_state, 0);
@@ -2981,6 +2983,8 @@ void si_init_state_functions(struct si_context *sctx)
        } else {
                sctx->b.dma_copy = si_dma_copy;
        }
+
+       si_init_config(sctx);
 }
 
 static void
@@ -3087,7 +3091,7 @@ si_write_harvested_raster_configs(struct si_context *sctx,
                       INSTANCE_BROADCAST_WRITES);
 }
 
-void si_init_config(struct si_context *sctx)
+static void si_init_config(struct si_context *sctx)
 {
        struct si_pm4_state *pm4 = CALLOC_STRUCT(si_pm4_state);
 
index 634f947..0c1fdb4 100644 (file)
@@ -256,7 +256,6 @@ boolean si_is_format_supported(struct pipe_screen *screen,
                                unsigned sample_count,
                                unsigned usage);
 void si_init_state_functions(struct si_context *sctx);
-void si_init_config(struct si_context *sctx);
 unsigned cik_bank_wh(unsigned bankwh);
 unsigned cik_db_pipe_config(struct si_screen *sscreen, unsigned tile_mode);
 unsigned cik_macro_tile_aspect(unsigned macro_tile_aspect);