mesa/src/gallium/drivers
George Kyriazis 08cb8cf256 swr: invalidate attachment on transition change
Consider the following RT attachment order:
1. Attach surfaces attachments 0 & 1, and render with them
2. Detach 0 & 1
3. Re-attach 0 & 1 to different surfaces
4. Render with the new attachment

The definition of a tile being resolved is that local changes have been
flushed out to the surface, hence there is no need to reload the tile before
it's written to.  For an invalid tile, the tile has to be reloaded from
the surface before rendering.

Stage (2) was marking hot tiles for attachements 0 & 1 as RESOLVED,
which means that the hot tiles can be written out to memory with no
need to read them back in (they are "clean").  They need to be marked as
resolved here, because a surface may be destroyed after a detach, and we
don't want to have un-resolved tiles that may force a readback from a
NULL (destroyed) surface.  (Part of a destroy is detach all attachments first)

Stage (3), during the no att -> att transition, we  need to realize that the
"new" surface tiles need to be fetched fresh from the new surface, instead
of using the resolved tiles, that belong to a stale attachment.

This is done by marking the hot tiles as invalid in stage (3), when we realize
that a new attachment is being made, so that they are re-fetched during
rendering in stage (4).

Also note that hot tiles are indexed by attachment.

- Fixes VTK dual depth-peeling tests.
- No piglit changes

Reviewed-by: Tim Rowley <timothy.o.rowley@intel.com>
2017-06-22 11:51:08 -05:00
..
ddebug ddebug: add ARB_bindless_texture support 2017-06-14 10:04:36 +02:00
etnaviv etnaviv: fix blend color for RB swapped rendertargets 2017-06-21 07:45:15 +02:00
freedreno gallium: add PIPE_CAP_BINDLESS_TEXTURE 2017-06-14 10:04:36 +02:00
i915 gallium: add PIPE_CAP_BINDLESS_TEXTURE 2017-06-14 10:04:36 +02:00
imx imx: gallium driver for imx-drm scanout driver 2017-01-12 19:27:11 +00:00
llvmpipe gallium: add PIPE_CAP_BINDLESS_TEXTURE 2017-06-14 10:04:36 +02:00
noop gallium/noop: fix sampler views 2017-06-12 18:24:37 +02:00
nouveau nvc0: fix transfer of larger rectangles with DmaCopy on gk104 and up 2017-06-20 20:18:54 -04:00
pl111 gallium: Add renderonly-based support for pl111+vc4. 2017-06-15 11:41:22 -07:00
r300 gallium: add PIPE_CAP_BINDLESS_TEXTURE 2017-06-14 10:04:36 +02:00
r600 r600: fix off-by-one in egd_tables.py 2017-06-19 12:05:12 +02:00
radeon radeonsi/gfx9: enable DCC fast clear 2017-06-22 13:15:27 +02:00
radeonsi radeonsi/gfx9: don't ever flush the TC metadata cache 2017-06-22 13:15:27 +02:00
rbug gallium: remove pipe_index_buffer and set_index_buffer 2017-05-10 19:00:16 +02:00
softpipe softpipe: remove unused softpipe_context::line_stipple_counter 2017-06-20 07:56:34 -06:00
svga svga: add new num-failed-allocations HUD query 2017-06-16 17:04:08 -06:00
swr swr: invalidate attachment on transition change 2017-06-22 11:51:08 -05:00
trace trace: add ARB_bindless_texture support 2017-06-14 10:04:36 +02:00
vc4 vc4: Clean up release build warnings using MAYBE_UNUSED. 2017-06-20 09:09:09 -07:00
virgl gallium: add PIPE_CAP_BINDLESS_TEXTURE 2017-06-14 10:04:36 +02:00