diff options
-rw-r--r-- | src/intel/compiler/brw_compiler.c | 36 | ||||
-rw-r--r-- | src/intel/compiler/brw_compiler.h | 6 |
2 files changed, 42 insertions, 0 deletions
diff --git a/src/intel/compiler/brw_compiler.c b/src/intel/compiler/brw_compiler.c index 2f6af7d2c3f..f6120cbf0ac 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; } + +unsigned +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]; +} + +unsigned +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 2bb7111ad53..ede3d1508a1 100644 --- a/src/intel/compiler/brw_compiler.h +++ b/src/intel/compiler/brw_compiler.h @@ -1109,6 +1109,12 @@ DEFINE_PROG_DATA_DOWNCAST(sf) struct brw_compiler * brw_compiler_create(void *mem_ctx, const struct gen_device_info *devinfo); +unsigned +brw_prog_data_size(gl_shader_stage stage); + +unsigned +brw_prog_key_size(gl_shader_stage stage); + /** * Compile a vertex shader. * |