[Mesa-dev] [PATCH 00/17] anv: Rework state tracking to better separate

Jason Ekstrand jason at jlekstrand.net
Sat Dec 16 01:08:58 UTC 2017


This series is intended to address a bug filed in September:

https://bugs.freedesktop.org/show_bug.cgi?id=102897

Unfortunately, the fix is either a lot of patches or very messy.  This
series (as is common for me) takes the lots of patches approach.  The
general idea is to break out a large chunk of anv_cmd_state into sub-
structs for graphics and compute.  This way, it's very clear when you're
accessing any bit of state that you're pulling from one or the other.  By
giving these a base struct, we can also make clear that a certain set of
states are are per-pipeline-bind-point.  In order to reduce churn in the
patches which actually move state from one struct to another, there are
several patches which just make us make better use of helper functions and
temporary variables.

Jason Ekstrand (17):
  anv/pipeline: Don't assert on more than 32 samplers
  anv/cmd_state: Drop the scratch_size field
  anv/cmd_buffer: Get rid of the meta query workaround
  anv/cmd_buffer: Rework anv_cmd_state_reset
  anv/cmd_buffer: Use some pre-existing pipeline temporaries
  anv/cmd_buffer: Add substructs to anv_cmd_state for graphics and
    compute
  anv: Remove semicolons from vk_error[f] definitions
  anv/cmd_buffer: Refactor ensure_push_descriptor_set
  anv/cmd_buffer: Add a helper for binding descriptor sets
  anv/cmd_buffer: Use anv_descriptor_for_binding for samplers
  anv: Separate compute and graphics descriptor sets
  anv/cmd_buffer: Move dirty bits into anv_cmd_*_state
  anv/cmd_buffer: Move vb_dirty bits into anv_cmd_graphics_state
  anv/cmd_buffer: Use a temporary variable for dynamic state
  anv/cmd_buffer: Move dynamic state to graphics state
  anv/cmd_buffer: Move num_workgroups to compute state
  anv/cmd_buffer: Move gen7 index buffer state to graphics state

 src/intel/vulkan/anv_cmd_buffer.c     | 274 +++++++++++++++++++---------------
 src/intel/vulkan/anv_descriptor_set.c |   2 +
 src/intel/vulkan/anv_private.h        |  85 ++++++++---
 src/intel/vulkan/gen7_cmd_buffer.c    |  67 ++++-----
 src/intel/vulkan/gen8_cmd_buffer.c    |  91 ++++++-----
 src/intel/vulkan/genX_blorp_exec.c    |   4 +-
 src/intel/vulkan/genX_cmd_buffer.c    | 121 ++++++++-------
 src/intel/vulkan/genX_gpu_memcpy.c    |   2 +-
 src/intel/vulkan/genX_pipeline.c      |   8 +-
 src/intel/vulkan/genX_query.c         |  14 --
 10 files changed, 369 insertions(+), 299 deletions(-)

-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list