panfrost: do not allow skipping of fragment shader when alpha-to-coverage
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

When alpha to coverage is enabled we cannot allow the fragment shader to
be skipped, because the calculated alpha result is essentially a side
effect (it can cause some samples to be discarded).

This brings the OpenGL driver in line with panvk, which already has this
check in its version of fs_required().

Signed-off-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38794>
This commit is contained in:
Eric R. Smith 2025-12-03 13:34:14 -04:00 committed by Marge Bot
parent 53014c0c1a
commit 3ce6bcb9e8

View file

@ -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.