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

Author: Samuel Pitoiset <[email protected]>
Date:   Wed Feb 22 09:50:15 2023 +0100

radv: set MSAA_NUM_SAMPLES to 0 for underestimate rasterization

Based on PAL.

Fixes
dEQP-VK.rasterization.conservative.underestimate.samples_*.triangles.normal.test.

Signed-off-by: Samuel Pitoiset <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21459>

---

 src/amd/vulkan/radv_cmd_buffer.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
index 46c9a63b6c0..a34a5c9b392 100644
--- a/src/amd/vulkan/radv_cmd_buffer.c
+++ b/src/amd/vulkan/radv_cmd_buffer.c
@@ -4224,13 +4224,15 @@ radv_emit_msaa_state(struct radv_cmd_buffer *cmd_buffer)
       unsigned ps_iter_samples = radv_get_ps_iter_samples(cmd_buffer);
       unsigned log_z_samples = util_logbase2(z_samples);
       unsigned log_ps_iter_samples = util_logbase2(ps_iter_samples);
+      bool uses_underestimate =
+         d->vk.rs.conservative_mode == 
VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT;
 
       db_eqaa |= S_028804_MAX_ANCHOR_SAMPLES(log_z_samples) |
                  S_028804_PS_ITER_SAMPLES(log_ps_iter_samples) |
                  S_028804_MASK_EXPORT_NUM_SAMPLES(log_samples) |
                  S_028804_ALPHA_TO_MASK_NUM_SAMPLES(log_samples);
 
-      pa_sc_aa_config |= S_028BE0_MSAA_NUM_SAMPLES(log_samples) |
+      pa_sc_aa_config |= S_028BE0_MSAA_NUM_SAMPLES(uses_underestimate ? 0 : 
log_samples) |
                          S_028BE0_MAX_SAMPLE_DIST(max_sample_dist) |
                          S_028BE0_MSAA_EXPOSED_SAMPLES(log_samples) |
                          
S_028BE0_COVERED_CENTROID_IS_CENTER(pdevice->rad_info.gfx_level >= GFX10_3);

Reply via email to