r600: Rewrite r600_shader_selector_key() to use a switch stmt
authorEdward O'Callaghan <eocallaghan@alterapraxis.com>
Wed, 19 Aug 2015 08:58:46 +0000 (18:58 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 20 Aug 2015 23:46:13 +0000 (09:46 +1000)
Signed-off-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/gallium/drivers/r600/r600_state_common.c

index aa4a8d0240f1520397b63de66fd13ebe8fc017f1..c7445b8b3677e4bac51ae0e333ae30fff2702db7 100644 (file)
@@ -709,7 +709,18 @@ static inline struct r600_shader_key r600_shader_selector_key(struct pipe_contex
        struct r600_shader_key key;
        memset(&key, 0, sizeof(key));
 
-       if (sel->type == PIPE_SHADER_FRAGMENT) {
+       switch (sel->type) {
+       case PIPE_SHADER_VERTEX: {
+               key.vs_as_es = (rctx->gs_shader != NULL);
+               if (rctx->ps_shader->current->shader.gs_prim_id_input && !rctx->gs_shader) {
+                       key.vs_as_gs_a = true;
+                       key.vs_prim_id_out = rctx->ps_shader->current->shader.input[rctx->ps_shader->current->shader.ps_prim_id_input].spi_sid;
+               }
+               break;
+       }
+       case PIPE_SHADER_GEOMETRY:
+               break;
+       case PIPE_SHADER_FRAGMENT: {
                key.color_two_side = rctx->rasterizer && rctx->rasterizer->two_side;
                key.alpha_to_one = rctx->alpha_to_one &&
                                   rctx->rasterizer && rctx->rasterizer->multisample_enable &&
@@ -718,13 +729,12 @@ static inline struct r600_shader_key r600_shader_selector_key(struct pipe_contex
                /* Dual-source blending only makes sense with nr_cbufs == 1. */
                if (key.nr_cbufs == 1 && rctx->dual_src_blend)
                        key.nr_cbufs = 2;
-       } else if (sel->type == PIPE_SHADER_VERTEX) {
-               key.vs_as_es = (rctx->gs_shader != NULL);
-               if (rctx->ps_shader->current->shader.gs_prim_id_input && !rctx->gs_shader) {
-                       key.vs_as_gs_a = true;
-                       key.vs_prim_id_out = rctx->ps_shader->current->shader.input[rctx->ps_shader->current->shader.ps_prim_id_input].spi_sid;
-               }
+               break;
        }
+       default:
+               assert(0);
+       }
+
        return key;
 }