On Friday, October 13, 2017 2:10:15 AM PDT Iago Toral Quiroga wrote: > When we have up to 16 FS inputs, the SF unit will reorder our inputs > to be consecutive, however, when we have more than 16 we need to > to read our inputs from the URB exactly as they have been > output from the previous stage. This means that for SSO we have to > consider if we have URB padding due to unused input locations. > > Specifically, this affects gen9 active components programming, since > for things to work in scenarios with over 16 inputs that have padded > regions we need to ensure that we program active components for the > padded regions too. If we don't do this the hardware won't read > the URB properly for inputs located after padded regions. > > Found empirically. > > Fixes (these also require a patch in CTS): > KHR-GL45.enhanced_layouts.varying_locations > KHR-GL45.enhanced_layouts.varying_array_locations > --- > src/mesa/drivers/dri/i965/genX_state_upload.c | 10 ++-------- > 1 file changed, 2 insertions(+), 8 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/genX_state_upload.c > b/src/mesa/drivers/dri/i965/genX_state_upload.c > index ecf5a9ae68..2137de9597 100644 > --- a/src/mesa/drivers/dri/i965/genX_state_upload.c > +++ b/src/mesa/drivers/dri/i965/genX_state_upload.c > @@ -3452,15 +3452,9 @@ genX(upload_sbe)(struct brw_context *brw) > > #if GEN_GEN >= 9 > /* prepare the active component dwords */ > - int input_index = 0; > - for (int attr = 0; attr < VARYING_SLOT_MAX; attr++) { > - if (!(fp->info.inputs_read & BITFIELD64_BIT(attr))) > - continue; > - > - assert(input_index < 32); > - > + const int num_inputs = urb_entry_read_length * 2; > + for (int input_index = 0; input_index < num_inputs; input_index++) { > sbe.AttributeActiveComponentFormat[input_index] = > ACTIVE_COMPONENT_XYZW; > - ++input_index; > } > #endif > } >
Wow, good find! Thanks! Reviewed-by: Kenneth Graunke <kenn...@whitecape.org>
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev