glsl: Fix the program resource names of gl_TessLevelOuter/Inner[].
These are lowered to gl_TessLevel{Outer,Inner}MESA. We need them to appear in the program resource list with their original names and types. Cc: mesa-stable@lists.freedesktop.org Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
This commit is contained in:
@@ -3702,6 +3702,18 @@ create_shader_variable(struct gl_shader_program *shProg,
|
||||
if (in->data.mode == ir_var_system_value &&
|
||||
in->data.location == SYSTEM_VALUE_VERTEX_ID_ZERO_BASE) {
|
||||
out->name = ralloc_strdup(shProg, "gl_VertexID");
|
||||
} else if ((in->data.mode == ir_var_shader_out &&
|
||||
in->data.location == VARYING_SLOT_TESS_LEVEL_OUTER) ||
|
||||
(in->data.mode == ir_var_system_value &&
|
||||
in->data.location == SYSTEM_VALUE_TESS_LEVEL_OUTER)) {
|
||||
out->name = ralloc_strdup(shProg, "gl_TessLevelOuter");
|
||||
type = glsl_type::get_array_instance(glsl_type::float_type, 4);
|
||||
} else if ((in->data.mode == ir_var_shader_out &&
|
||||
in->data.location == VARYING_SLOT_TESS_LEVEL_INNER) ||
|
||||
(in->data.mode == ir_var_system_value &&
|
||||
in->data.location == SYSTEM_VALUE_TESS_LEVEL_INNER)) {
|
||||
out->name = ralloc_strdup(shProg, "gl_TessLevelInner");
|
||||
type = glsl_type::get_array_instance(glsl_type::float_type, 2);
|
||||
} else {
|
||||
out->name = ralloc_strdup(shProg, name);
|
||||
}
|
||||
|
Reference in New Issue
Block a user