mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 19:40:10 +01:00
glsl: add input builtin variables for mesh shader
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Acked-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36405>
This commit is contained in:
parent
691601e89e
commit
c260aa3928
1 changed files with 28 additions and 0 deletions
|
|
@ -429,6 +429,7 @@ public:
|
|||
void generate_gs_special_vars();
|
||||
void generate_fs_special_vars();
|
||||
void generate_cs_special_vars();
|
||||
void generate_ms_special_vars();
|
||||
void generate_varyings();
|
||||
|
||||
private:
|
||||
|
|
@ -1505,6 +1506,29 @@ builtin_variable_generator::generate_cs_special_vars()
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Generate variables which only exist in task and mesh shaders.
|
||||
*/
|
||||
void
|
||||
builtin_variable_generator::generate_ms_special_vars()
|
||||
{
|
||||
add_system_value(SYSTEM_VALUE_LOCAL_INVOCATION_ID, uvec3_t,
|
||||
"gl_LocalInvocationID");
|
||||
add_system_value(SYSTEM_VALUE_WORKGROUP_ID, uvec3_t, "gl_WorkGroupID");
|
||||
add_system_value(SYSTEM_VALUE_NUM_WORKGROUPS, uvec3_t, "gl_NumWorkGroups");
|
||||
|
||||
add_system_value(SYSTEM_VALUE_GLOBAL_INVOCATION_ID,
|
||||
uvec3_t, "gl_GlobalInvocationID");
|
||||
add_system_value(SYSTEM_VALUE_LOCAL_INVOCATION_INDEX,
|
||||
uint_t, "gl_LocalInvocationIndex");
|
||||
|
||||
if (state->is_version(460, 0))
|
||||
add_system_value(SYSTEM_VALUE_DRAW_ID, int_t, "gl_DrawID");
|
||||
if (state->ARB_shader_draw_parameters_enable)
|
||||
add_system_value(SYSTEM_VALUE_DRAW_ID, int_t, "gl_DrawIDARB");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add a single "varying" variable. The variable's type and direction (input
|
||||
* or output) are adjusted as appropriate for the type of shader being
|
||||
|
|
@ -1709,6 +1733,10 @@ _mesa_glsl_initialize_variables(ir_exec_list *instructions,
|
|||
case MESA_SHADER_COMPUTE:
|
||||
gen.generate_cs_special_vars();
|
||||
break;
|
||||
case MESA_SHADER_TASK:
|
||||
case MESA_SHADER_MESH:
|
||||
gen.generate_ms_special_vars();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue