zink: flag all assigned output slots as mapped
this ensures types which consume more than 1 slot are effectively tagged so that the next stage inputs are also assigned properly fixes: spec@arb_enhanced_layouts@execution@component-layout@vs-fs-array-dvec3 cc: mesa-stable Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18444>
This commit is contained in:

committed by
Marge Bot

parent
c48c53c21f
commit
a0f6fecc6a
@@ -216,7 +216,6 @@ spec@!opengl 1.0@rasterpos@glsl_vs_tes_linked,Fail
|
|||||||
spec@arb_arrays_of_arrays@execution@image_store@basic-imagestore-mixed-const-non-const-uniform-index,Fail
|
spec@arb_arrays_of_arrays@execution@image_store@basic-imagestore-mixed-const-non-const-uniform-index,Fail
|
||||||
spec@arb_arrays_of_arrays@execution@image_store@basic-imagestore-mixed-const-non-const-uniform-index2,Fail
|
spec@arb_arrays_of_arrays@execution@image_store@basic-imagestore-mixed-const-non-const-uniform-index2,Fail
|
||||||
spec@arb_arrays_of_arrays@execution@image_store@basic-imagestore-non-const-uniform-index,Fail
|
spec@arb_arrays_of_arrays@execution@image_store@basic-imagestore-non-const-uniform-index,Fail
|
||||||
spec@arb_enhanced_layouts@execution@component-layout@vs-fs-array-dvec3,Fail
|
|
||||||
spec@arb_fragment_program_shadow@tex-shadow1d,Fail
|
spec@arb_fragment_program_shadow@tex-shadow1d,Fail
|
||||||
spec@arb_fragment_program_shadow@tex-shadow2d,Fail
|
spec@arb_fragment_program_shadow@tex-shadow2d,Fail
|
||||||
spec@arb_fragment_program_shadow@tex-shadow2drect,Fail
|
spec@arb_fragment_program_shadow@tex-shadow2drect,Fail
|
||||||
|
@@ -55,7 +55,6 @@ spec@arb_arrays_of_arrays@execution@image_store@basic-imagestore-mixed-const-non
|
|||||||
spec@arb_arrays_of_arrays@execution@image_store@basic-imagestore-non-const-uniform-index,Fail
|
spec@arb_arrays_of_arrays@execution@image_store@basic-imagestore-non-const-uniform-index,Fail
|
||||||
spec@arb_bindless_texture@compiler@samplers@arith-bound-sampler-texture2d.frag,Crash
|
spec@arb_bindless_texture@compiler@samplers@arith-bound-sampler-texture2d.frag,Crash
|
||||||
spec@arb_depth_texture@depth-tex-modes,Fail
|
spec@arb_depth_texture@depth-tex-modes,Fail
|
||||||
spec@arb_enhanced_layouts@execution@component-layout@vs-fs-array-dvec3,Fail
|
|
||||||
spec@arb_fragment_program_shadow@tex-shadow1d,Fail
|
spec@arb_fragment_program_shadow@tex-shadow1d,Fail
|
||||||
spec@arb_fragment_program_shadow@tex-shadow2d,Fail
|
spec@arb_fragment_program_shadow@tex-shadow2d,Fail
|
||||||
spec@arb_fragment_program_shadow@tex-shadow2drect,Fail
|
spec@arb_fragment_program_shadow@tex-shadow2drect,Fail
|
||||||
|
@@ -1396,11 +1396,14 @@ assign_producer_var_io(gl_shader_stage stage, nir_variable *var, unsigned *reser
|
|||||||
}
|
}
|
||||||
if (slot_map[slot] == 0xff) {
|
if (slot_map[slot] == 0xff) {
|
||||||
assert(*reserved < MAX_VARYING);
|
assert(*reserved < MAX_VARYING);
|
||||||
slot_map[slot] = *reserved;
|
unsigned num_slots;
|
||||||
if (stage == MESA_SHADER_TESS_EVAL && var->data.mode == nir_var_shader_in && !var->data.patch)
|
if (nir_is_arrayed_io(var, stage))
|
||||||
*reserved += glsl_count_vec4_slots(glsl_get_array_element(var->type), false, false);
|
num_slots = glsl_count_vec4_slots(glsl_get_array_element(var->type), false, false);
|
||||||
else
|
else
|
||||||
*reserved += glsl_count_vec4_slots(var->type, false, false);
|
num_slots = glsl_count_vec4_slots(var->type, false, false);
|
||||||
|
assert(*reserved + num_slots <= MAX_VARYING);
|
||||||
|
for (unsigned i = 0; i < num_slots; i++)
|
||||||
|
slot_map[slot + i] = (*reserved)++;
|
||||||
}
|
}
|
||||||
slot = slot_map[slot];
|
slot = slot_map[slot];
|
||||||
assert(slot < MAX_VARYING);
|
assert(slot < MAX_VARYING);
|
||||||
|
Reference in New Issue
Block a user