This patch series implements lowering of the (GLES?) blend pipeline. With the lowering pass introduced in the first four commits, paired with the related blending infrastructure in the latter three, Panfrost now passes all of:
dEQP-GLES2.functional.fragment_ops.blend.* To verify the passes correctness, I also tested a version forcing blend shaders unconditionally; this also passes the entire section. (Eric: This can be considered a "v2" of the sillier version I sent in November, but it has been rewritten in its entirety to work independent of Gallium. It'll probably be useful to vc4 with a little work. Disclaimer: Vulkan driver not actually tested :) ) (Ken: I copied you on the first 4 since IIRC you worked on advanced blending lowering.) Alyssa Rosenzweig (7): compiler: Add enums for blend state gallium: Add helper to convert PIPE blending to shader_enum style nir: Add blend_const_color_rgba sysval nir: Add nir_lower_blend pass panfrost/midgard: Route new blending intrinsics panfrost: Wire up nir_lower_blend panfrost: Improve fixed-function blending src/compiler/Makefile.sources | 1 + src/compiler/nir/meson.build | 1 + src/compiler/nir/nir.h | 22 ++ src/compiler/nir/nir_intrinsics.py | 5 +- src/compiler/nir/nir_lower_blend.c | 214 ++++++++++++++++++ src/compiler/shader_enums.h | 21 ++ src/gallium/auxiliary/util/u_blend.h | 92 ++++++++ .../panfrost/midgard/midgard_compile.c | 207 +++++++++-------- .../drivers/panfrost/pan_blend_shaders.c | 46 ++-- src/gallium/drivers/panfrost/pan_blending.c | 70 +++--- 10 files changed, 529 insertions(+), 150 deletions(-) create mode 100644 src/compiler/nir/nir_lower_blend.c -- 2.20.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev