anv: handle primitive shading rate for mesh
authorMarcin Ślusarz <marcin.slusarz@intel.com>
Tue, 12 Apr 2022 13:07:20 +0000 (15:07 +0200)
committerMarge Bot <emma+marge@anholt.net>
Fri, 13 May 2022 13:05:51 +0000 (13:05 +0000)
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16030>

src/intel/vulkan/genX_pipeline.c

index f8d3c16..0fa95ed 100644 (file)
@@ -530,11 +530,13 @@ emit_3dstate_sbe(struct anv_graphics_pipeline *pipeline)
          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;