My main motivation for this series is to avoid one type of redundant fast-clears for color buffers (patch 15). In doing so, I take opportunities to improve the maintainability and performance of the affected code along the way.
* Fix bugs that this series depends on for correct behavior (1-2). * Efficient updates to the indirect clear color requires correctly tracking the clear color on the CPU. For correctness, make the initial indirect clear color match the CPU-side one (3-4). * We've been modifying code related to aux buffer allocation thus far. Take this opportunity to remove duplicated code (5-9). * Move the code to update the indirect depth clear color to a unified location to enable the same optimization of skipping an already cleared buffer (regardless of the new value) for color buffers (10-13). * We've been modifying depth clear code thus far. Take this opportunity to delete a stale comment we found here (14). * Now that we correctly track the indirect clear color and updated it as needed, enable the optimization of skipping a fast-clear on an already cleared color buffer, even if the clear color differs from the current one (15). * Now that we update the indirect clear color in the clear color setter, avoid the redundant updates done by BLORP (16-17). -Nanley Nanley Chery (17): i965/miptree: Fix handling of uninitialized MCS buffers i965/miptree: Zero-initialize CCS_D buffers i965/miptree: Move init_mcs into alloc_aux_buffer i965/miptree: Initialize the indirect clear color to zero i965/miptree: Drop the name param from alloc_aux_buffer i965/miptree: Drop the alloc_flags param from alloc_aux_buffer i965/miptree: Drop the mt param from alloc_aux_buffer i965: Prepare to delete intel_miptree_alloc_ccs() i965/miptree: Unify aux buffer allocation Revert "i965: Make the miptree clear color setter take a gl_color_union" i965: Use set_clear_color for depth miptrees i965/clear: Remove an early return in fast_clear_depth i965: Update the indirect buffer in set_clear_color i965/clear: Drop a stale comment in fast_clear_depth i965/blorp: Also skip the fast clear if the clear color differs intel/blorp: Add a NO_UPDATE_CLEAR_COLOR batch flag i965/blorp: Disable BLORP clear color updates src/intel/blorp/blorp.h | 5 + src/intel/blorp/blorp_genX_exec.h | 6 +- src/mesa/drivers/dri/i965/brw_blorp.c | 18 +- src/mesa/drivers/dri/i965/brw_clear.c | 49 +--- src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 362 +++++++++++--------------- src/mesa/drivers/dri/i965/intel_mipmap_tree.h | 18 +- 6 files changed, 181 insertions(+), 277 deletions(-) -- 2.16.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev