sbe_mesh.PerPrimitiveURBEntryOutputReadOffset = mue->per_primitive_header_size_dw / 8;
sbe_mesh.PerPrimitiveURBEntryOutputReadLength = DIV_ROUND_UP(mue->per_primitive_data_size_dw, 8);
- /* Just like with clip distances, if Viewport Index or Layer is read
- * back in the FS, adjust the offset and length to cover the Primitive
- * Header, where Viewport Index & Layer are stored.
+ /* Just like with clip distances, if Primitive Shading Rate,
+ * Viewport Index or Layer is read back in the FS, adjust
+ * the offset and length to cover the Primitive Header, where
+ * PSR, Viewport Index & Layer are stored.
*/
if (wm_prog_data->urb_setup[VARYING_SLOT_VIEWPORT] >= 0 ||
+ wm_prog_data->urb_setup[VARYING_SLOT_PRIMITIVE_SHADING_RATE] >= 0 ||
wm_prog_data->urb_setup[VARYING_SLOT_LAYER] >= 0) {
assert(sbe_mesh.PerPrimitiveURBEntryOutputReadOffset > 0);
sbe_mesh.PerPrimitiveURBEntryOutputReadOffset -= 1;