mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 22:49:13 +02:00
nir/linking: always set the used_across_stages/outputs_read bits
If we don't remap and output this code would trample the outputs
read bits.
This fixes a regression in
dEQP-VK.tessellation.shader_input_output.barrier
Fixes: 1c9c42d16b (nir: add varying component packing helpers)
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
3be382cd7c
commit
0e8e7ccf9d
1 changed files with 8 additions and 7 deletions
|
|
@ -297,14 +297,15 @@ remap_slots_and_components(struct exec_list *var_list, gl_shader_stage stage,
|
|||
|
||||
unsigned location = var->data.location - VARYING_SLOT_VAR0;
|
||||
struct varying_loc *new_loc = &remap[location][var->data.location_frac];
|
||||
|
||||
uint64_t slots = (((uint64_t)1 << num_slots) - 1) << var->data.location;
|
||||
if (slots & *slots_used)
|
||||
used_across_stages = true;
|
||||
|
||||
if (slots & *out_slots_read)
|
||||
outputs_read = true;
|
||||
|
||||
if (new_loc->location) {
|
||||
uint64_t slots = (((uint64_t)1 << num_slots) - 1) << var->data.location;
|
||||
if (slots & *slots_used)
|
||||
used_across_stages = true;
|
||||
|
||||
if (slots & *out_slots_read)
|
||||
outputs_read = true;
|
||||
|
||||
var->data.location = new_loc->location;
|
||||
var->data.location_frac = new_loc->component;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue