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