mesa/src/panfrost/util
Christian Duerr 49c1b404e5 panfrost: Fix dual-source blending
If dual blending is enabled, only 1 output is supported. Multiple
outputs confuse the write combining pass in this case, leading to
incorrect output and/or an assert failure in emit_fragment_store.

The fix is straightforward, just skip the speculative emitting of
multiple outputs in the case where dual source blending is enabled.

This also adds an extra sanity check in `pan_nir_lower_zs_store` to
check for only one blend store being present.

Fixes: c65a9be421 ("panfrost: Preprocess shaders at CSO create time")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9487
Co-Authored-By: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26474>
2024-02-05 13:25:56 +00:00
..
lcra.c panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
lcra.h panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
meson.build panfrost: drop pan_nir_lower_64bit_intrin 2023-08-30 16:25:40 +00:00
pan_collect_varyings.c nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
pan_ir.c panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
pan_ir.h panfrost: Remove unused helpers 2023-07-21 11:25:48 +00:00
pan_liveness.c panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
pan_lower_framebuffer.c treewide: Drop nir_ssa_for_src users 2023-09-18 10:25:17 -04:00
pan_lower_framebuffer.h pan/lower_framebuffer: Lower MSAA blend shaders 2023-03-23 23:53:46 +00:00
pan_lower_helper_invocation.c treewide: Use nir_shader_intrinsic_pass sometimes 2023-08-24 15:48:02 +00:00
pan_lower_sample_position.c treewide: Also handle struct nir_builder form 2023-08-24 15:48:02 +00:00
pan_lower_store_component.c treewide: Use nir_shader_intrinsic_pass sometimes 2023-08-24 15:48:02 +00:00
pan_lower_writeout.c panfrost: Fix dual-source blending 2024-02-05 13:25:56 +00:00
pan_lower_xfb.c treewide: Use nir_shader_intrinsic_pass sometimes 2023-08-24 15:48:02 +00:00