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. Marek _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev