OSDN Git Service

nir/info: Add compute shader local size to nir_shader_info
authorJason Ekstrand <jason.ekstrand@intel.com>
Thu, 8 Oct 2015 22:02:25 +0000 (15:02 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Mon, 19 Oct 2015 15:47:03 +0000 (08:47 -0700)
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
src/glsl/nir/glsl_to_nir.cpp
src/glsl/nir/nir.h

index 95b2312..d230ad4 100644 (file)
@@ -173,6 +173,14 @@ glsl_to_nir(const struct gl_shader_program *shader_prog,
       shader->info.gs.invocations = sh->Geom.Invocations;
       break;
 
+   case MESA_SHADER_COMPUTE: {
+      struct gl_compute_program *cp = (struct gl_compute_program *)sh->Program;
+      shader->info.cs.local_size[0] = cp->LocalSize[0];
+      shader->info.cs.local_size[1] = cp->LocalSize[1];
+      shader->info.cs.local_size[2] = cp->LocalSize[2];
+      break;
+   }
+
    default:
       break; /* No stage-specific info */
    }
index 719e6ce..32259e7 100644 (file)
@@ -1501,6 +1501,10 @@ typedef struct nir_shader_info {
          /** 1 .. MAX_GEOMETRY_SHADER_INVOCATIONS */
          unsigned invocations;
       } gs;
+
+      struct {
+         unsigned local_size[3];
+      } cs;
    };
 } nir_shader_info;