mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-22 07:00:12 +01:00
glsl: Don't remove XFB-only varyings.
Consider the case of linking a program with both a vertex and fragment shader. The VS may compute output varyings that are intended for transform feedback, and not read by the fragment shader. In this case, var->data.is_unmatched_generic_inout will be true, but we still cannot eliminate the varyings. We need to also check !var->data.is_xfb_only. Fixes failures in ES31-CTS.gpu_shader5.fma_precision_*, which happen to use transform feedback in a way we apparently hadn't seen before. 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:
parent
ce84a92df5
commit
26c56e24e7
1 changed files with 1 additions and 1 deletions
|
|
@ -488,7 +488,7 @@ remove_unused_shader_inputs_and_outputs(bool is_separate_shader_object,
|
||||||
* its value is used by other shader stages. This will cause the
|
* its value is used by other shader stages. This will cause the
|
||||||
* variable to have a location assigned.
|
* variable to have a location assigned.
|
||||||
*/
|
*/
|
||||||
if (var->data.is_unmatched_generic_inout) {
|
if (var->data.is_unmatched_generic_inout && !var->data.is_xfb_only) {
|
||||||
assert(var->data.mode != ir_var_temporary);
|
assert(var->data.mode != ir_var_temporary);
|
||||||
var->data.mode = ir_var_auto;
|
var->data.mode = ir_var_auto;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue