[Mesa-dev] [PATCH 00/10] R600: Cache flush fixes and cleanup v2
Alex Deucher
alexdeucher at gmail.com
Wed Jun 1 21:00:57 UTC 2016
On Wed, Jun 1, 2016 at 2:57 PM, Marek Olšák <maraeo at gmail.com> wrote:
> Hi,
>
> This is version 2 of the previous series. This time it's been tested!!
>
> Tested cards:
> - RV670
> - RV730
> - EG/REDWOOD
> - CAYMAN
>
> This patch series:
> - fixes several bugs around making 3D and CP DMA idle with respect to CP.PFP,
> which allows removing a lot of cache flushes (= hacks really) and IB flushes
> around CP DMA
> - removes unnecessary cache flushes
> - moves other cache flushes to places where their frequency is lower
>
> From the perspective of functions:
> - binding shader resources doesn't flush anything (why should it)
> - set_framebuffer_state flushes CB, DB, TC
> - CP DMA copy_buffer only flushes TC, VC, KC. Never CB or DB.
> - CP DMA clear_buffer only flushes TC, VC, KC when shader coherency is
> requested, or CB when CB coherency is requested. Never DB.
> - fast color clear no longer flushes TC, VC, KC, DB. (implied by clear_buffer)
> - ending streamout newly flushes TC, VC, KC
>
> From the perspective of caches:
> - TC is flushed only by set_framebuffer_state, texture_barrier, before
> CP DMA (except fast color clear), and after streamout
> - VC & KC are flushed only before CP DMA (except fast color clear) or after
> streamout
> - CB is flushed by set_framebuffer_state or by fast color clear
> - DB is only flushed by set_framebuffer_state
>
> More testing may be needed, especially testing on GPUs not listed above.
>
> Also available here:
> https://cgit.freedesktop.org/~mareko/mesa/log/?h=r600-opt-flushes
>
> Please review.
For the series:
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
More information about the mesa-dev
mailing list