Skip to content

DRAFT: tu/a7xx: Fix incoherency between imageStore and transfer read

Danylo Piliaiev requested to merge Danil/mesa:fix/turnip/image-waw-hazard into main

What does this MR do and why?

Two fixes that are probably have related cause. Though I'm not sure what we are missing about caches that necessitates these fixes.

It's more of invitation to discussion than final fixes.


While image blit/copies don't have the same incoherency issue between themselves as buffers, there is an issue with UBWC + IBO stores, where store via UCHE may flush stale data even though UCHE supposed to track dirtiness at byte granularity.

Image copies/blits happen via CCU which doesn't have byte level dirtiness, so we have to manually handle synchronization for unaligned writes. For this we have to ensure that CCU will be flushes before UCHE.


For some reason on a7xx there is an incoherency between imageStore and following transfer read, even though they both suppose to read from UCHE.

Fixes:

 dEQP-VK.image.store.with_format.*

Edited by Danylo Piliaiev

Merge request reports