iris: Bracket batch operations which access memory within sync regions

Graphics / Mesa 3D Graphics Library / Mesa - Francisco Jerez [riseup.net] - 3 June 2020 23:12 EDT

This delimits all batch operations which access memory between iris_batch_sync_region_start() and iris_batch_sync_region_end() calls. This makes sure that any buffer objects accessed within the region are considered in use through the same caching domain until the end of the region.

Adding any buffer to the batch validation list outside of a sync region will lead to an assertion failure in a future commit, unless the caller explicitly opted out of the cache tracking mechanism.

e81c07de41c iris: Bracket batch operations which access memory within sync regions.
src/gallium/drivers/iris/iris_blit.c | 10 +++++++++
src/gallium/drivers/iris/iris_clear.c | 17 +++++++++++++---
src/gallium/drivers/iris/iris_query.c | 8 ++++++++
src/gallium/drivers/iris/iris_resolve.c | 8 ++++++++
src/gallium/drivers/iris/iris_state.c | 36 +++++++++++++++++++++++++++++++++
5 files changed, 76 insertions(+), 3 deletions(-)

Upstream: cgit.freedesktop.org


  • Share