From 49d7371a18321d5bc3683d219b594b21612e1a4e 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 (cherry picked from commit d5d844bfc42daacd505d2e9f9ee7431f8434c3ea) Part-of: --- .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 7c7b8d9f020..a1a90d4573b 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1594,7 +1594,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) |