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 <jordan.l.justen@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
@@ -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];
|
||||
}
|
||||
|
@@ -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.
|
||||
*
|
||||
|
Reference in New Issue
Block a user