diff --git a/.pick_status.json b/.pick_status.json index fe38c0a6ffb..86c903de031 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -14,7 +14,7 @@ "description": "panfrost: do not allow skipping of fragment shader when alpha-to-coverage", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/gallium/drivers/panfrost/pan_cmdstream.h b/src/gallium/drivers/panfrost/pan_cmdstream.h index 65be2b38212..5a900ec3b36 100644 --- a/src/gallium/drivers/panfrost/pan_cmdstream.h +++ b/src/gallium/drivers/panfrost/pan_cmdstream.h @@ -225,6 +225,11 @@ panfrost_fs_required(struct panfrost_compiled_shader *fs, if (fs->info.fs.sidefx) return true; + /* If alpha to coverage is enabled we need to execute, as + * writing the pixel can modify occlusion query results. */ + if (blend->base.alpha_to_coverage) + return true; + /* Using an empty FS requires early-z to be enabled, but alpha test * needs it disabled. Alpha test is only native on Midgard, so only * check there.