This little series just shuffles code around to make things a bit more clear. (At least I think it does!) The basic idea is to split set_subpass into begin_subpass and end_subpass and then move all of resolve and clear code into those two helpers. This means that we no longer have 3 or 4 different functions that all loop over attachments which we have to call in just the right order.
The last patch in this series takes advantage of this new structure by allowing us to avoid the transition from UNDEFINED when LOAD_OP_CLEAR is specified. I highly doubt the performance impact of this will be noticable but it's nice to be able to do. Jason Ekstrand (14): anv/cmd_buffer: Apply subpass flushes before set_subpass anv/cmd_buffer: Add begin/end_subpass helpers anv/cmd_buffer: Pass a subpass id into begin_subpass anv/cmd_buffer: Move the color portion of clear_subpass into begin_subpass intel/blorp: Add a blorp_hiz_clear_depth_stencil helper anv/cmd_buffer: Move the rest of clear_subpass into begin_subpass anv/cmd_buffer: Decide whether or not to HiZ clear up-front anv/cmd_buffer: Iterate all subpass attachments when clearing anv/cmd_buffer: Add a concept of pending load aspects anv/pass: Store usage in each subpass attachment anv/cmd_buffer: Sync clear values in begin_subpass anv/cmd_buffer: Mark depth/stencil surfaces written in begin_subpass anv/cmd_buffer: Do subpass image transitions in begin/end_subpass anv/cmd_buffer: Avoid unnecessary transitions before fast clears src/intel/blorp/blorp.h | 11 + src/intel/blorp/blorp_clear.c | 50 ++++ src/intel/vulkan/anv_blorp.c | 367 ++++++++++-------------- src/intel/vulkan/anv_pass.c | 35 ++- src/intel/vulkan/anv_private.h | 42 ++- src/intel/vulkan/genX_cmd_buffer.c | 555 ++++++++++++++++++++----------------- 6 files changed, 563 insertions(+), 497 deletions(-) -- 2.5.0.400.gff86faf _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev