asahi: fix a2c with sample shading, harder

Fixes: 9bbe93d158 ("hk: fix alpha-to-coverage with sample shading")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
(cherry picked from commit b94bcf0318)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32119>
This commit is contained in:
Alyssa Rosenzweig
2024-11-05 09:52:40 -04:00
committed by Dylan Baker
parent dd14b60b49
commit 4a71355172
2 changed files with 6 additions and 5 deletions

View File

@@ -344,7 +344,7 @@
"description": "asahi: fix a2c with sample shading, harder",
"nominated": true,
"nomination_type": 2,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "9bbe93d158915f5b4b0904c12e52d393dc30f4ae",
"notes": null

View File

@@ -448,16 +448,17 @@ agx_nir_fs_epilog(nir_builder *b, const void *key_)
* to the epilog, when sample shading is not used but blending is.
*/
if (key->link.sample_shading) {
NIR_PASS(_, b->shader, agx_nir_lower_to_per_sample);
NIR_PASS(_, b->shader, agx_nir_lower_fs_active_samples_to_register);
/* Lower the resulting discards. Done in agx_nir_lower_monolithic_msaa for
* the pixel shaded path.
* the pixel shaded path. Must be done before agx_nir_lower_to_per_sample
* to avoid duplicating tests.
*/
if (key->blend.alpha_to_coverage) {
NIR_PASS(_, b->shader, agx_nir_lower_sample_mask);
}
NIR_PASS(_, b->shader, agx_nir_lower_to_per_sample);
NIR_PASS(_, b->shader, agx_nir_lower_fs_active_samples_to_register);
/* Ensure the sample ID is preserved in register. We do this late since it
* has to go in the last block, and the above passes might add control
* flow when lowering.