On Fri, Dec 15, 2017 at 05:08:58PM -0800, Jason Ekstrand wrote: > 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.
I had a small nit in patch 11 but otherwise I couldn't find anything amiss: Reviewed-by: Topi Pohjolainen <topi.pohjolai...@intel.com> > > 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 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev