Mesa (main): radv: disable the DX10 diamond test for better line rasterization perf

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Oct 4 07:41:19 UTC 2021


Module: Mesa
Branch: main
Commit: 55e6a68f695baf81c63c01d48ade58d1455ff888
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=55e6a68f695baf81c63c01d48ade58d1455ff888

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Mon Sep 27 17:48:04 2021 +0200

radv: disable the DX10 diamond test for better line rasterization perf

Ported from RadeonSI. PAL also doesn't enable it for Vulkan.

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

---

 src/amd/vulkan/radv_pipeline.c | 2 --
 src/amd/vulkan/si_cmd_buffer.c | 5 +++++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c
index 52ac8d1f2c0..3eea082571c 100644
--- a/src/amd/vulkan/radv_pipeline.c
+++ b/src/amd/vulkan/radv_pipeline.c
@@ -4299,8 +4299,6 @@ radv_pipeline_generate_raster_state(struct radeon_cmdbuf *ctx_cs,
    const VkConservativeRasterizationModeEXT mode = radv_get_conservative_raster_mode(vkraster);
    uint32_t pa_sc_conservative_rast = S_028C4C_NULL_SQUAD_AA_MASK_ENABLE(1);
 
-   radeon_set_context_reg(ctx_cs, R_028BDC_PA_SC_LINE_CNTL, S_028BDC_DX10_DIAMOND_TEST_ENA(1));
-
    if (pipeline->device->physical_device->rad_info.chip_class >= GFX9) {
       /* Conservative rasterization. */
       if (mode != VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT) {
diff --git a/src/amd/vulkan/si_cmd_buffer.c b/src/amd/vulkan/si_cmd_buffer.c
index 86fa0b04288..be54aacc56e 100644
--- a/src/amd/vulkan/si_cmd_buffer.c
+++ b/src/amd/vulkan/si_cmd_buffer.c
@@ -549,6 +549,11 @@ si_emit_graphics(struct radv_device *device, struct radeon_cmdbuf *cs)
       }
    }
 
+   /* The DX10 diamond test is unnecessary with Vulkan and it decreases line rasterization
+    * performance.
+    */
+   radeon_set_context_reg(cs, R_028BDC_PA_SC_LINE_CNTL, 0);
+
    si_emit_compute(device, cs);
 }
 



More information about the mesa-commit mailing list