This little (hah!) series does a bit more blorp reworking and then converts most of the Vulkan driver to using blorp for its blit and copy operations.
As it currently stands, it adds a few cts "regresssions" which are really because the CTS makes assumptions about rounding in scaled blit operations that aren't quite valid. This series also doesn't 100% remove vulkan meta. As it stands, blorp can't do depth/stencil clears so those are left in meta. Support could be added to blorp (and we could use it from GL) but that's a bit more work and I wanted to get this sent out earlier rather than later. For review, I would recommend that Topi review the first 19 or so and Nanley review patch 26+. For 20-25, I'm not sure. Kristian may be the best one to review since he understands it all but Jordan or Nanley could take a crack at it too. Cc: Topi Pohjolainen <topi.pohjolai...@intel.com> Cc: Jordan Justen <jordan.l.jus...@intel.com> Cc: Nanley Chery <nanley.g.ch...@intel.com> Cc: Chad Versace <c...@kiwitree.net> Cc: Kristian Høgsberg <k...@bitplanet.net> Jason Ekstrand (33): intel/isl: Add an isl_swizzle structure and use it for isl_view swizzles intel/blorp: Take an isl_swizzle instead of a SWIZZLE intel/blorp: Take a destination swizzle in blorp_blit intel/blorp: Don't assume R8_UINT in convert_to_single_slice intel/blorp: Use the surface format for computing offsets intel/blorp: Fix the early return condition in convert_to_single_slice intel/isl: Fix an assert in get_intratile_offset_sa intel/blorp: Handle 3D surfaces in convert_to_single_slice intel/isl: Add a helper for getting the size of an interleaved pixel intel/blorp: Use isl_get_interleaved_msaa_px_size_sa intel/blorp: Use fake_interleaved_msaa in retile_w_to_y intel/blorp: Stop using the X/YOffset field of RENDER_SURFACE_STATE intel/blorp: Pull the guts of blorp_blit into a helper intel/blorp: Add an entrypoint for doing bit-for-bit copies intel/blorp: Add support for RGB destinations in copies intel/blorp: Add support for clearing R9G9B9E5 surfaces intel/blorp: Make color_write_disable const and optional intel/blorp: Add a swizzle parameter to blorp_clear intel/blorp: Rework alloc_binding_table intel/blorp: Use #defines for all __gen_ helpers anv/pipeline: Roll compute_urb_partition into emit_urb_setup anv: Generalize emit_urb_setup intel/anv: Use #defines for all __gen_ helpers anv: Add initial blorp support anv: Make image_get_surface_for_aspect_mask const anv: Use blorp to implement VkBlitImage anv: Use blorp for CopyImageToBuffer anv: Use blorp for CopyBufferToImage anv: Use blorp for CopyImage anv: Use blorp for CopyBuffer and UpdateBuffer anv: Delete meta_blit2d anv: Use blorp for ClearColorImage anv: Use blorp for doing MSAA resolves src/intel/blorp/blorp.c | 7 +- src/intel/blorp/blorp.h | 19 +- src/intel/blorp/blorp_blit.c | 570 +++++--- src/intel/blorp/blorp_clear.c | 24 +- src/intel/blorp/blorp_genX_exec.h | 25 +- src/intel/blorp/blorp_priv.h | 26 +- src/intel/isl/isl.c | 22 +- src/intel/isl/isl.h | 23 +- src/intel/isl/isl_surface_state.c | 8 +- src/intel/vulkan/Makefile.am | 1 + src/intel/vulkan/Makefile.sources | 9 +- src/intel/vulkan/anv_blorp.c | 846 ++++++++++++ src/intel/vulkan/anv_device.c | 4 + src/intel/vulkan/anv_formats.c | 9 +- src/intel/vulkan/anv_genX.h | 9 + src/intel/vulkan/anv_image.c | 27 +- src/intel/vulkan/anv_meta.c | 21 - src/intel/vulkan/anv_meta.h | 44 - src/intel/vulkan/anv_meta_blit.c | 739 ----------- src/intel/vulkan/anv_meta_blit2d.c | 1544 ---------------------- src/intel/vulkan/anv_meta_clear.c | 21 - src/intel/vulkan/anv_meta_copy.c | 479 ------- src/intel/vulkan/anv_meta_resolve.c | 870 ------------ src/intel/vulkan/anv_pipeline.c | 142 -- src/intel/vulkan/anv_private.h | 33 +- src/intel/vulkan/genX_blorp_exec.c | 259 ++++ src/intel/vulkan/genX_pipeline_util.h | 173 ++- src/mesa/drivers/dri/i965/brw_blorp.c | 32 +- src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 31 +- src/mesa/drivers/dri/i965/genX_blorp_exec.c | 11 +- 30 files changed, 1873 insertions(+), 4155 deletions(-) create mode 100644 src/intel/vulkan/anv_blorp.c delete mode 100644 src/intel/vulkan/anv_meta_blit.c delete mode 100644 src/intel/vulkan/anv_meta_blit2d.c delete mode 100644 src/intel/vulkan/anv_meta_copy.c delete mode 100644 src/intel/vulkan/anv_meta_resolve.c create mode 100644 src/intel/vulkan/genX_blorp_exec.c -- 2.5.0.400.gff86faf _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev