Skip to content

Draft: tu/query: occlusion query result can be corrupted on older-gen devices

What does this MR do and why?

tu/query: occlusion query result can be corrupted on older-gen devices

Previous change to the occlusion query slot struct moved the result
location to accommodate the new-gen hardware and its ability to accumulate
the sample count difference through CP_EVENT_WRITE7::ZPASS_DONE instead of
doing it manually. That resulted in reported regressions on older devices,
where the writes of the sample count at the start and the end of the query
can clobber the accumulated count that was stored inbetween.

To address this, the result location in the slot struct now varies, either
using the old location if we'll accumulate it manually or using the new
location if it will be done automatically.

Signed-off-by: Zan Dobersek <zdobersek@igalia.com>
Fixes: 85a8cc14c0c ("tu/query: improve CP_EVENT_WRITE7::ZPASS_DONE usage")

Merge request reports