[Mesa-dev] [PATCH] i965: Enable fast clears on non-8x4-aligned sizes.

Kenneth Graunke kenneth at whitecape.org
Thu May 2 16:58:11 PDT 2013


On 05/02/2013 01:58 PM, Eric Anholt wrote:
> Improves glb2.7 performance at a misaligned size by 2.3% +/- 0.7% (n=11).
> The workaround was to avoid bad primitive/surface sizes, but that's worked
> around as of a14dc4f92cdad6177d83f051a088a66e31a973bc.  (One might note
> that pre-gen7 we don't know that the right half of an 8x4 at the right
> edge is actually our pixels, but we're already clobbering those pixels for
> depth resolves anyway and more work would be required to avoid that).
> ---
>   src/mesa/drivers/dri/i965/brw_clear.c | 13 -------------
>   1 file changed, 13 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_clear.c b/src/mesa/drivers/dri/i965/brw_clear.c
> index 4ee456a..2b999bf 100644
> --- a/src/mesa/drivers/dri/i965/brw_clear.c
> +++ b/src/mesa/drivers/dri/i965/brw_clear.c
> @@ -128,19 +128,6 @@ brw_fast_clear_depth(struct gl_context *ctx)
>         return false;
>      }
>
> -   /* The rendered area has to be 8x4 samples, not resolved pixels, so we look
> -    * at the miptree slice dimensions instead of renderbuffer size.
> -    */
> -   if (mt->level[depth_irb->mt_level].width % 8 != 0 ||
> -       mt->level[depth_irb->mt_level].height % 4 != 0) {
> -      perf_debug("Failed to fast clear depth due to width/height %d,%d not "
> -                 "being aligned to 8,4.  Possible 5%% performance win if "
> -                 "avoided\n",
> -                 mt->level[depth_irb->mt_level].width,
> -                 mt->level[depth_irb->mt_level].height);
> -      return false;
> -   }
> -
>      uint32_t depth_clear_value;
>      switch (mt->format) {
>      case MESA_FORMAT_Z32_FLOAT_X24S8:
>

Would be worth regression testing on Gen6.

Really glad to see this working.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>


More information about the mesa-dev mailing list