mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 05:10:11 +01:00
panfrost: do not allow skipping of fragment shader when alpha-to-coverage
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:
parent
53014c0c1a
commit
3ce6bcb9e8
1 changed files with 5 additions and 0 deletions
|
|
@ -225,6 +225,11 @@ panfrost_fs_required(struct panfrost_compiled_shader *fs,
|
||||||
if (fs->info.fs.sidefx)
|
if (fs->info.fs.sidefx)
|
||||||
return true;
|
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
|
/* 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
|
* needs it disabled. Alpha test is only native on Midgard, so only
|
||||||
* check there.
|
* check there.
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue