From 3231523878e62c2b62b008a021e7895384c66e74 Mon Sep 17 00:00:00 2001 From: Patrick Lerda Date: Mon, 24 Nov 2025 12:47:51 +0100 Subject: [PATCH] r600: fix cayman msaa shading behavior The functionality was working properly at glMinSampleShading(0.) and glMinSampleShading(1.). The issue was with the intermediary values. This change makes this function compatible with the evergreen setup. Note: this was one of the few functionalities which were working properly on evergreen but not on cayman. Here are the tests fixed: spec/arb_sample_shading/samplemask 4 all/0.500000 partition: fail pass spec/arb_sample_shading/samplemask 4/0.500000 partition: fail pass spec/arb_sample_shading/samplemask 6 all/0.250000 partition: fail pass spec/arb_sample_shading/samplemask 6 all/0.500000 partition: fail pass spec/arb_sample_shading/samplemask 6/0.250000 partition: fail pass spec/arb_sample_shading/samplemask 6/0.500000 partition: fail pass spec/arb_sample_shading/samplemask 8 all/0.250000 partition: fail pass spec/arb_sample_shading/samplemask 8 all/0.500000 partition: fail pass spec/arb_sample_shading/samplemask 8/0.250000 partition: fail pass spec/arb_sample_shading/samplemask 8/0.500000 partition: fail pass deqp-gles31/functional/shaders/sample_variables/sample_mask_in/bit_count_per_two_samples/multisample_rbo_4: fail pass deqp-gles31/functional/shaders/sample_variables/sample_mask_in/bit_count_per_two_samples/multisample_rbo_8: fail pass deqp-gles31/functional/shaders/sample_variables/sample_mask_in/bit_count_per_two_samples/multisample_texture_4: fail pass deqp-gles31/functional/shaders/sample_variables/sample_mask_in/bit_count_per_two_samples/multisample_texture_8: fail pass Fixes: f7796a966d20 ("radeonsi: add basic code for overrasterization") Signed-off-by: Patrick Lerda Part-of: (cherry picked from commit d5d844bfc42daacd505d2e9f9ee7431f8434c3ea) --- .pick_status.json | 2 +- src/gallium/drivers/r600/cayman_msaa.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 022be7fdae5..7919ba77656 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -2074,7 +2074,7 @@ "description": "r600: fix cayman msaa shading behavior", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "f7796a966d20b04c00025bdc170883f4179a5697", "notes": null diff --git a/src/gallium/drivers/r600/cayman_msaa.c b/src/gallium/drivers/r600/cayman_msaa.c index ba2ff12c9f1..515ab6d33cd 100644 --- a/src/gallium/drivers/r600/cayman_msaa.c +++ b/src/gallium/drivers/r600/cayman_msaa.c @@ -226,7 +226,7 @@ void cayman_emit_msaa_state(struct radeon_cmdbuf *cs, int nr_samples, if (nr_samples > 1) { radeon_set_context_reg(cs, CM_R_028804_DB_EQAA, S_028804_MAX_ANCHOR_SAMPLES(log_samples) | - S_028804_PS_ITER_SAMPLES(log_ps_iter_samples) | + S_028804_PS_ITER_SAMPLES(log_ps_iter_samples ? log_samples : 0) | S_028804_MASK_EXPORT_NUM_SAMPLES(log_samples) | S_028804_ALPHA_TO_MASK_NUM_SAMPLES(log_samples) | S_028804_HIGH_QUALITY_INTERSECTIONS(1) |