[Mesa-dev] [PATCH v3 20/34] intel/compiler: Add functions to get prog_data and prog_key sizes for a stage

Jordan Justen jordan.l.justen at intel.com
Sun Oct 22 20:01:28 UTC 2017


Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
---
 src/intel/compiler/brw_compiler.c | 36 ++++++++++++++++++++++++++++++++++++
 src/intel/compiler/brw_compiler.h |  6 ++++++
 2 files changed, 42 insertions(+)

diff --git a/src/intel/compiler/brw_compiler.c b/src/intel/compiler/brw_compiler.c
index 2f6af7d2c3f..33046dc906c 100644
--- a/src/intel/compiler/brw_compiler.c
+++ b/src/intel/compiler/brw_compiler.c
@@ -168,3 +168,39 @@ brw_compiler_create(void *mem_ctx, const struct gen_device_info *devinfo)
 
    return compiler;
 }
+
+size_t
+brw_prog_data_size(gl_shader_stage stage)
+{
+   STATIC_ASSERT(MESA_SHADER_VERTEX == 0);
+   STATIC_ASSERT(MESA_SHADER_TESS_CTRL == 1);
+   STATIC_ASSERT(MESA_SHADER_TESS_EVAL == 2);
+   STATIC_ASSERT(MESA_SHADER_GEOMETRY == 3);
+   STATIC_ASSERT(MESA_SHADER_FRAGMENT == 4);
+   STATIC_ASSERT(MESA_SHADER_COMPUTE == 5);
+   static const size_t stage_sizes[] = {
+      sizeof(struct brw_vs_prog_data),
+      sizeof(struct brw_tcs_prog_data),
+      sizeof(struct brw_tes_prog_data),
+      sizeof(struct brw_gs_prog_data),
+      sizeof(struct brw_wm_prog_data),
+      sizeof(struct brw_cs_prog_data),
+   };
+   assert((int)stage >= 0 && stage < ARRAY_SIZE(stage_sizes));
+   return stage_sizes[stage];
+}
+
+size_t
+brw_prog_key_size(gl_shader_stage stage)
+{
+   static const size_t stage_sizes[] = {
+      sizeof(struct brw_vs_prog_key),
+      sizeof(struct brw_tcs_prog_key),
+      sizeof(struct brw_tes_prog_key),
+      sizeof(struct brw_gs_prog_key),
+      sizeof(struct brw_wm_prog_key),
+      sizeof(struct brw_cs_prog_key),
+   };
+   assert((int)stage >= 0 && stage < ARRAY_SIZE(stage_sizes));
+   return stage_sizes[stage];
+}
diff --git a/src/intel/compiler/brw_compiler.h b/src/intel/compiler/brw_compiler.h
index 9359b767e35..68a12a43370 100644
--- a/src/intel/compiler/brw_compiler.h
+++ b/src/intel/compiler/brw_compiler.h
@@ -1107,6 +1107,12 @@ DEFINE_PROG_DATA_DOWNCAST(sf)
 struct brw_compiler *
 brw_compiler_create(void *mem_ctx, const struct gen_device_info *devinfo);
 
+size_t
+brw_prog_data_size(gl_shader_stage stage);
+
+size_t
+brw_prog_key_size(gl_shader_stage stage);
+
 /**
  * Compile a vertex shader.
  *
-- 
2.15.0.rc0



More information about the mesa-dev mailing list