turnip: simplify stage2 helpers
authorJonathan Marek <jonathan@marek.ca>
Sun, 14 Jun 2020 23:21:45 +0000 (19:21 -0400)
committerJonathan Marek <jonathan@marek.ca>
Mon, 15 Jun 2020 19:35:13 +0000 (15:35 -0400)
Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5455>

src/freedreno/vulkan/tu_pipeline.c

index 2957eeedfb8c29eadf17a15cd6a319d66ecfe855..d48545e397c9e2e6680e10a7d565abc76ffe41d5 100644 (file)
 uint32_t
 tu6_stage2opcode(gl_shader_stage stage)
 {
-   switch (stage) {
-   case MESA_SHADER_VERTEX:
-   case MESA_SHADER_TESS_CTRL:
-   case MESA_SHADER_TESS_EVAL:
-   case MESA_SHADER_GEOMETRY:
-      return CP_LOAD_STATE6_GEOM;
-   case MESA_SHADER_FRAGMENT:
-   case MESA_SHADER_COMPUTE:
+   if (stage == MESA_SHADER_FRAGMENT || stage == MESA_SHADER_COMPUTE)
       return CP_LOAD_STATE6_FRAG;
-   default:
-      unreachable("bad shader stage");
-   }
+   return CP_LOAD_STATE6_GEOM;
 }
 
 static enum a6xx_state_block
 tu6_stage2texsb(gl_shader_stage stage)
 {
-   switch (stage) {
-   case MESA_SHADER_VERTEX:
-      return SB6_VS_TEX;
-   case MESA_SHADER_TESS_CTRL:
-      return SB6_HS_TEX;
-   case MESA_SHADER_TESS_EVAL:
-      return SB6_DS_TEX;
-   case MESA_SHADER_GEOMETRY:
-      return SB6_GS_TEX;
-   case MESA_SHADER_FRAGMENT:
-      return SB6_FS_TEX;
-   case MESA_SHADER_COMPUTE:
-      return SB6_CS_TEX;
-   default:
-      unreachable("bad shader stage");
-   }
+   return SB6_VS_TEX + stage;
 }
 
 enum a6xx_state_block
 tu6_stage2shadersb(gl_shader_stage stage)
 {
-   switch (stage) {
-   case MESA_SHADER_VERTEX:
-      return SB6_VS_SHADER;
-   case MESA_SHADER_TESS_CTRL:
-      return SB6_HS_SHADER;
-   case MESA_SHADER_TESS_EVAL:
-      return SB6_DS_SHADER;
-   case MESA_SHADER_GEOMETRY:
-      return SB6_GS_SHADER;
-   case MESA_SHADER_FRAGMENT:
-      return SB6_FS_SHADER;
-   case MESA_SHADER_COMPUTE:
-      return SB6_CS_SHADER;
-   default:
-      unreachable("bad shader stage");
-   }
+   return SB6_VS_SHADER + stage;
 }
 
 /* Emit IB that preloads the descriptors that the shader uses */