iris: Bracket batch operations which access memory within sync regions.
authorFrancisco Jerez <currojerez@riseup.net>
Fri, 24 Apr 2020 00:58:48 +0000 (17:58 -0700)
committerMarge Bot <eric+marge@anholt.net>
Wed, 3 Jun 2020 23:12:22 +0000 (23:12 +0000)
commite81c07de41c7f6f585a2c6aa0c67b1082b609b8f
tree6b0fc595e0e7858afcaff98f138313c1de72ee21
parent8cbe9535482f3efd27fbcbb90a329e6567e8c961
iris: Bracket batch operations which access memory within sync regions.

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.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3875>
src/gallium/drivers/iris/iris_blit.c
src/gallium/drivers/iris/iris_clear.c
src/gallium/drivers/iris/iris_query.c
src/gallium/drivers/iris/iris_resolve.c
src/gallium/drivers/iris/iris_state.c