radv: set KEEP_TOGETHER_ENABLE if necessary on GFX10+
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 23 Sep 2020 07:00:24 +0000 (09:00 +0200)
committerMarge Bot <eric+marge@anholt.net>
Thu, 24 Sep 2020 10:41:21 +0000 (10:41 +0000)
Ported from RadeonSI and PAL.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6838>

src/amd/vulkan/radv_pipeline.c

index e56b0ec..8f89d0b 100644 (file)
@@ -1707,6 +1707,12 @@ radv_pipeline_init_raster_state(struct radv_pipeline *pipeline,
                S_028814_POLY_OFFSET_FRONT_ENABLE(raster_info->depthBiasEnable ? 1 : 0) |
                S_028814_POLY_OFFSET_BACK_ENABLE(raster_info->depthBiasEnable ? 1 : 0) |
                S_028814_POLY_OFFSET_PARA_ENABLE(raster_info->depthBiasEnable ? 1 : 0);
+
+       if (pipeline->device->physical_device->rad_info.chip_class >= GFX10) {
+               /* It should also be set if PERPENDICULAR_ENDCAP_ENA is set. */
+               pipeline->graphics.pa_su_sc_mode_cntl |=
+                       S_028814_KEEP_TOGETHER_ENABLE(raster_info->polygonMode != VK_POLYGON_MODE_FILL);
+       }
 }
 
 static void