iris: Make a gl_shader_stage -> pipe_shader_stage helper function
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 17 Apr 2019 06:54:37 +0000 (23:54 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 23 Apr 2019 07:24:08 +0000 (00:24 -0700)
This is probably not the best place for it, but I don't feel like moving
the one out of the TGSI translator today, and we already have the other
direction here, so...*shrug*

src/gallium/drivers/iris/iris_pipe.h

index dac81009168362486e274ecc6fcf87bc30e85979..b859e650ffbe374514ab87ab9e09f0750e09dbda 100644 (file)
@@ -40,6 +40,20 @@ stage_from_pipe(enum pipe_shader_type pstage)
    return stages[pstage];
 }
 
+static inline enum pipe_shader_type
+stage_to_pipe(gl_shader_stage stage)
+{
+   static const enum pipe_shader_type pstages[MESA_SHADER_STAGES] = {
+      [MESA_SHADER_VERTEX] = PIPE_SHADER_VERTEX,
+      [MESA_SHADER_TESS_CTRL] = PIPE_SHADER_TESS_CTRL,
+      [MESA_SHADER_TESS_EVAL] = PIPE_SHADER_TESS_EVAL,
+      [MESA_SHADER_GEOMETRY] = PIPE_SHADER_GEOMETRY,
+      [MESA_SHADER_FRAGMENT] = PIPE_SHADER_FRAGMENT,
+      [MESA_SHADER_COMPUTE] = PIPE_SHADER_COMPUTE,
+   };
+   return pstages[stage];
+}
+
 /**
  * Convert an swizzle enumeration (i.e. PIPE_SWIZZLE_X) to one of the HW's
  * "Shader Channel Select" enumerations (i.e. SCS_RED).  The mappings are