This series is focused on rendering to more render target formats, particularly ones that require the use of a blend shader. As an aside in the middle, this leads us to implement preliminary fp16/i16 support in the Midgard compiler.
Depends on the accompanying NIR and Gallium patches. Alyssa Rosenzweig (42): panfrost: Prepare some code for MRT panfrost/mfbd: Include codes for float framebuffers panfrost: Extend clear colour packing panfrost/midgard: Passthrough nir_lower_framebuffer panfrost/midgard: Move scale from MIR to NIR panfrost/midgard: Rewrite to use new blend intrinsic panfrost/midgard: Implement integer downsize ops panfrost/midgard: Use nir_dest_num_components panfrost/midgard: Move blend type conversion into NIR panfrost/midgard: Route blend load intrinsic panfrost/midgard: Implement upscaling type converts panfrost/midgard: Fix blend constant scheduling bug panfrost/midgard: Move blend shader loads to NIR panfrost/midgard: Simplify blend read panfrost/midgard: Verify src_bitsize == dst_bitsize panfrost/midgard: Implement f2f16/f2f32 panfrost/midgard: Implement f2u16 and friends panfrost/midgard: Allow fp16 in scalar ALU panfrost/midgard: Hoist mask field panfrost/midgard: Fix fp16 embedded constants panfrost/midgard: Eliminate redundant type convert panfrost/midgard: Handle fp16 in embedded_to_inline_constants panfrost/midgard: Fix scalarification panfrost/midgard: Remove opt_copy_prop_tex panfrost/midgard: Use fp16 exclusively while blending panfrost/midgard: Use Gallium framebuffer formats panfrost: Pipe framebuffer format around panfrost: Route format through fixed-function blending panfrost: Handle "blend disabled" blend shaders panfrost/midgard: Skip blend for REPLACE (shader) panfrost/midgard: Implement preliminary float converters panfrost: Set rt_count_2 for bpp>4 formats panfrost/mfbd: Handle pure int formats panfrost/midgard: Handle pure int formats panfrost/midgard: Use unsigned blend patch offset panfrost: Refactor blend infrastructure panfrost: Implement ES3-format writeout panfrost/midgard: Handle PIPE_FORMAT_B10G10R10A2_UNORM panfrost/mfbd: Handle PIPE_FORMAT_B10G10R10A2_UNORM panfrost/midgard: Cleanup blend switch panfrost/mfbd: Cleanup format code selection panfrost: Update supported formats src/gallium/drivers/panfrost/meson.build | 2 + .../drivers/panfrost/midgard/compiler.h | 7 +- .../drivers/panfrost/midgard/helpers.h | 21 +- .../panfrost/midgard/midgard_compile.c | 402 ++++++++---------- .../drivers/panfrost/midgard/midgard_emit.c | 61 ++- .../panfrost/midgard/midgard_nir_algebraic.py | 22 +- .../drivers/panfrost/midgard/midgard_ops.h | 9 +- .../drivers/panfrost/midgard/midgard_ra.c | 25 +- .../panfrost/midgard/midgard_schedule.c | 71 +++- .../panfrost/midgard/nir_lower_blend.c | 37 +- .../panfrost/midgard/nir_lower_blend.h | 4 + .../panfrost/midgard/nir_lower_framebuffer.c | 345 +++++++++++++++ src/gallium/drivers/panfrost/pan_blend.h | 109 +++++ src/gallium/drivers/panfrost/pan_blend_cso.c | 268 ++++++++++++ .../drivers/panfrost/pan_blend_shaders.c | 70 +-- .../drivers/panfrost/pan_blend_shaders.h | 8 +- src/gallium/drivers/panfrost/pan_blending.c | 100 +++-- src/gallium/drivers/panfrost/pan_blending.h | 10 +- src/gallium/drivers/panfrost/pan_context.c | 167 ++------ src/gallium/drivers/panfrost/pan_context.h | 16 +- src/gallium/drivers/panfrost/pan_job.c | 86 +++- src/gallium/drivers/panfrost/pan_job.h | 8 +- src/gallium/drivers/panfrost/pan_mfbd.c | 124 +++++- src/gallium/drivers/panfrost/pan_screen.c | 50 +-- src/gallium/drivers/panfrost/pan_sfbd.c | 8 +- 25 files changed, 1438 insertions(+), 592 deletions(-) create mode 100644 src/gallium/drivers/panfrost/midgard/nir_lower_framebuffer.c create mode 100644 src/gallium/drivers/panfrost/pan_blend.h create mode 100644 src/gallium/drivers/panfrost/pan_blend_cso.c -- 2.20.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev