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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev