[Mesa-dev] [PATCH 00/22] anv: Use blorp for depth/stencil clears and kill meta

Jason Ekstrand jason at jlekstrand.net
Sat Oct 8 04:40:58 UTC 2016


Meta needs to die!  As proof, just look at the diffstats below.  By
deleting meta clears (that's all we had left), we remove almost as many
lines of code as is in blorp_genX_emit.h!

As with my last Vulkan blorp series, about half of the changes are blorp
changes.  Blorp needed to grow just a bit in order to be able to do depth
and stencil clears.  Once blorp supports depth and stencil clears, hooking
it up for Vulkan is pretty simple (once you fix a HiZ bug).  Then we can
get rid of meta and start to untangle some of the infrastructure we built
just to make meta possible.

There's still more cleanup that can be done now that we're no longer
creating custom meta pipelines but this is a start.

Jason Ekstrand (22):
  intel/blorp: Make the Z component of the primitive adjustable
  intel/genxml: Add a uint MOCS field to 3DSTATE_STENCIL_BUFFER
  intel/blorp: Move CLEAR_PARAMS setup into emit_depth_stencil_config
  intel/blorp: Add support for binding an actual stencil buffer
  intel/blorp: Simplify depth/stencil config
  intel/blorp: Unify the DEPTH_STENCIL emit code across gens
  intel/blorp: Emit more complete DEPTH_STENCIL state
  intel/blorp: Add an "enabled" bit to surface_info
  intel/blorp: Allow for running without a PS on gen8+
  intel/blorp: Add an entrypoint for clearing depth and stencil
  intel/blorp: Add a flag to make blorp not re-emit dept/stencil buffers
  anv/blorp: Don't hand-roll flush_pipeline_select_3d
  anv/image: Rework our handling of 3-D image array ranges
  anv/image: Add an isl_view to anv_image_view
  anv: Use blorp for ClearDepthStencilImage
  anv/hiz: Perform HiZ resolves for all partial renders
  anv: Use blorp for ClearAttachments
  anv: Use blorp for subpass clears
  anv: Get rid of meta
  anv: Get rid of graphics_pipeline_create_info_extra
  anv: Get rid of the ANV_CALL macro
  anv: Make entrypoint resolution take a gen_device_info

 src/intel/blorp/blorp.c                 |   6 +-
 src/intel/blorp/blorp.h                 |  23 +-
 src/intel/blorp/blorp_clear.c           |  58 ++
 src/intel/blorp/blorp_genX_exec.h       | 278 ++++++----
 src/intel/blorp/blorp_priv.h            |   5 +
 src/intel/genxml/gen6.xml               |   1 +
 src/intel/genxml/gen7.xml               |   1 +
 src/intel/genxml/gen75.xml              |   1 +
 src/intel/genxml/gen8.xml               |   1 +
 src/intel/genxml/gen9.xml               |   1 +
 src/intel/vulkan/Makefile.sources       |   3 -
 src/intel/vulkan/anv_blorp.c            | 276 +++++++++-
 src/intel/vulkan/anv_device.c           |  17 +-
 src/intel/vulkan/anv_dump.c             |  11 +-
 src/intel/vulkan/anv_entrypoints_gen.py |  22 +-
 src/intel/vulkan/anv_genX.h             |   1 -
 src/intel/vulkan/anv_image.c            |  49 +-
 src/intel/vulkan/anv_meta.c             | 155 ------
 src/intel/vulkan/anv_meta.h             |  69 ---
 src/intel/vulkan/anv_meta_clear.c       | 918 --------------------------------
 src/intel/vulkan/anv_pipeline.c         |  61 +--
 src/intel/vulkan/anv_private.h          | 102 +---
 src/intel/vulkan/gen7_pipeline.c        |  13 +-
 src/intel/vulkan/gen8_cmd_buffer.c      |  12 +-
 src/intel/vulkan/gen8_pipeline.c        |  16 +-
 src/intel/vulkan/genX_blorp_exec.c      |  39 +-
 src/intel/vulkan/genX_cmd_buffer.c      |   4 +-
 src/intel/vulkan/genX_pipeline.c        |   2 -
 src/intel/vulkan/genX_pipeline_util.h   |  34 +-
 src/mesa/drivers/dri/i965/brw_blorp.c   |  12 +-
 30 files changed, 642 insertions(+), 1549 deletions(-)
 delete mode 100644 src/intel/vulkan/anv_meta.c
 delete mode 100644 src/intel/vulkan/anv_meta.h
 delete mode 100644 src/intel/vulkan/anv_meta_clear.c

-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list