diff options
author | Jordan Justen <[email protected]> | 2017-10-21 01:30:13 -0700 |
---|---|---|
committer | Jordan Justen <[email protected]> | 2017-10-31 23:36:54 -0700 |
commit | f082d7f64f4bbdc29a04b3ddb6491251cafdd9e2 (patch) | |
tree | 76b8f054d3a662846ffe46d30d86f27fe5a2fe55 /src/intel | |
parent | 05b11933619c8f57bef1e0d71c34c523993d6257 (diff) |
intel/compiler: Add functions to get prog_data and prog_key sizes for a stage
v2:
* Return unsigned instead of size_t. (Ken)
Signed-off-by: Jordan Justen <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/intel')
-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. * |