glsl/linker: Fix unmatched TCS outputs being reduced to local variable
Always match TCS outputs since they are shared by all invocations within the patch and should not be converted to local variables. This is one of the issues found in Downward. Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104297
This commit is contained in:
committed by
Timothy Arceri
parent
db3b6b6bca
commit
9f29d90327
@@ -3185,6 +3185,12 @@ match_explicit_outputs_to_inputs(gl_linked_shader *producer,
|
||||
const unsigned idx = var->data.location - VARYING_SLOT_VAR0;
|
||||
if (explicit_locations[idx][var->data.location_frac] == NULL)
|
||||
explicit_locations[idx][var->data.location_frac] = var;
|
||||
|
||||
/* Always match TCS outputs. They are shared by all invocations
|
||||
* within a patch and can be used as shared memory.
|
||||
*/
|
||||
if (producer->Stage == MESA_SHADER_TESS_CTRL)
|
||||
var->data.is_unmatched_generic_inout = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user