gallium: Remove `PIPE_CAP_RGB_OVERRIDE_DST_ALPHA_BLEND`
authorLucas Fryzek <lfryzek@igalia.com>
Fri, 7 Jul 2023 19:15:20 +0000 (15:15 -0400)
committerMarge Bot <emma+marge@anholt.net>
Tue, 11 Jul 2023 15:52:08 +0000 (15:52 +0000)
commit6b2fa965c6cb062d7a30ed056bf905fc6fd7cc72
tree3ed61e034d2ba3b3184893dbd2fe5e4e43b1db40
parent99e58460efb975f7acf91cf32b044bc55a77b936
gallium: Remove `PIPE_CAP_RGB_OVERRIDE_DST_ALPHA_BLEND`

Since the mesa state tracker can promote RGB texture formats
to RGBA texture formats (among other formats) without exposing
any of that information to a driver, it is more desirable to
have the behaviour of `PIPE_CAP_RGB_OVERRIDE_DST_ALPHA_BLEND`
be the default. This avoids rendering bugs where an application
sets `DST_ALPHA` blending on a format where there is no alpha
channel, that has been promoted to a format that actually has an
alpha channel. The driver can instead rely on the common code
in the state tracker to convert the blending parameter to one
that reflects the limitations of the application requested format,
as long as `PIPE_CAP_INDEP_BLEND_FUNC` is supported.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24044>
16 files changed:
docs/gallium/screen.rst
src/broadcom/ci/broadcom-rpi4-fails.txt
src/gallium/auxiliary/util/u_screen.c
src/gallium/drivers/crocus/crocus_screen.c
src/gallium/drivers/d3d12/d3d12_format.c
src/gallium/drivers/d3d12/d3d12_screen.cpp
src/gallium/drivers/freedreno/freedreno_screen.c
src/gallium/drivers/iris/iris_screen.c
src/gallium/drivers/softpipe/sp_screen.c
src/gallium/drivers/zink/zink_screen.c
src/gallium/include/pipe/p_defines.h
src/mesa/main/fbobject.c
src/mesa/state_tracker/st_atom_blend.c
src/mesa/state_tracker/st_context.c
src/mesa/state_tracker/st_context.h
src/panfrost/ci/panfrost-g52-fails.txt