[Mesa-dev] [PATCH 00/17] i965: Avoid a redundant color buffer fast-clear

Nanley Chery nanleychery at gmail.com
Thu May 3 19:03:47 UTC 2018


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



More information about the mesa-dev mailing list