[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