[Mesa-stable] [PATCH] i965: Fix render-to-texture in non-FinishRenderTexture cases.

Kenneth Graunke kenneth at whitecape.org
Fri Apr 25 19:03:34 PDT 2014


On 04/25/2014 03:37 PM, Courtney Goeltzenleuchter wrote:
> From: Eric Anholt <eric at anholt.net>
> 
> We've had several problems now with FinishRenderTexture not getting called
> enough, and we're ready to just give up on it ever doing what we need.  In
> particular, an upcoming Steam title had rendering bugs that could be fixed
> by always_flush_cache=true.
> 
> Instead of hoping Mesa core can figure out when we need to flush our
> caches, just track what BOs we've rendered to in a set, and when we render
> from a BO in that set, emit a flush and clear the set.
> 
> There's some overhead to keeping this set, but most of that is just
> hashing the pointer -- it turns out our set never even gets very large,
> because cache flushes are so common (even on cairo-gl).
> 
> No statistically significant performance difference in cairo-gl (n=100),
> despite spending ~.5% CPU in these set operations.
> 
> v1: (Original patch by Eric Anholt.)
> v2: (Changes by Ken Graunke.)
>   - Rebase forward from May 7th 2013 -> March 4th 2014.
>   - Drop the FinishRenderTexture hook entirely; after rebasing the
>     patch, the hook was just an empty function.
>   - Move the brw_render_cache_set_clear() call from
>     intel_batchbuffer_emit_flush() to brw_emit_pipe_control_flush().
>     In theory, this could catch more cases where we've flushed.
>   - Consider stencil as a possible texturing source.
> v3: (changes by anholt):
>   - Move set_clear() back to emit_mi_flush() -- it means we can drop
>     more forced flushes from the code.  In the previous location, it
>     wouldn't have been called when we wanted pre-gen6.
>   - Move the set clear from batch init to reset -- it should be empty at
>     the start of every batch, since the kernel handled any inter-batch
>     flush for us.
> v4: Drop the debug code in set.c that I accidentally committed.
> v5: Back port to 10.1 stable branch (remove reference to stencil texture.)
> 
> Signed-off-by: Eric Anholt <eric at anholt.net>
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
> Tested-by: Dylan Baker <baker.dylan.c at gmail.com> [v2]
> 
> Conflicts:
> 	src/mesa/drivers/dri/i965/brw_draw.c
> 	src/mesa/drivers/dri/i965/intel_fbo.h

Acked.  I'd like to see this land in stable.

Thanks for backporting it, Courtney.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freedesktop.org/archives/mesa-stable/attachments/20140425/f1defef6/attachment.sig>


More information about the mesa-stable mailing list