aboutsummaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl/link_functions.cpp
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2016-03-29 14:15:14 -0700
committerKenneth Graunke <[email protected]>2016-04-01 22:05:20 -0700
commit94ed482c19916ddede91c3c2ea3a538039ddb489 (patch)
treef5ae21f660c357d74b33ce701a88d5c502ec77a7 /src/compiler/glsl/link_functions.cpp
parentc123294dfe2e52443f2eff2723ef922f22972ef5 (diff)
glsl: Fix prorgram interface query locations biasing for SSO.
With SSO, the GL_PROGRAM_INPUT and GL_PROGRAM_OUTPUT interfaces refer to the first and last shader stage linked into a program. This may not be the vertex and fragment shader stages. So, subtracting VERT_ATTRIB_GENERIC0 and FRAG_RESULT_DATA0 is bogus. We need to subtract VERT_ATTRIB_GENERIC0 for VS inputs, FRAG_RESULT_DATA0 for FS outputs, and VARYING_SLOT_VAR0 for other cases. Note that built-in variables get a location of -1. Fixes 4 dEQP-GLES31.functional.program_interface_query tests: - program_input.location.separable_fragment.var_explicit_location - program_input.location.separable_fragment.var_array_explicit_location - program_output.location.separable_vertex.var_array_explicit_location - program_output.location.separable_vertex.var_array_explicit_location Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
Diffstat (limited to 'src/compiler/glsl/link_functions.cpp')
0 files changed, 0 insertions, 0 deletions