iris: Add batch-local synchronization book-keeping to iris_bo.
authorFrancisco Jerez <currojerez@riseup.net>
Fri, 24 Apr 2020 00:56:11 +0000 (17:56 -0700)
committerMarge Bot <eric+marge@anholt.net>
Wed, 3 Jun 2020 23:12:22 +0000 (23:12 +0000)
commit7878cbec59a394904feb512ab6a756a27242912d
tree6abe53693c7354a1c4d3e7d51e3c69a1feb647e0
parentb73b33953161acb07bc6c266c247b9be6faf89ad
iris: Add batch-local synchronization book-keeping to iris_bo.

The purpose of this is to represent the cache coherency state of a
buffer as a vector of integers (AKA seqnos), one for each incoherent
caching domain of the GPU.  A seqno will identify a single section of
a batch buffer uniquely across the whole pipe_screen (which means that
there will be no ambiguity about what context a given seqno belongs to
even if there are multiple threads accessing the same buffer in
parallel), and is guaranteed to be allocated in monotonically
increasing order within any given context.  The iris_bo_bump_seqno()
helper is provided for marking the last update of a buffer from a
given caching domain in a lockless manner.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3875>
src/gallium/drivers/iris/iris_bufmgr.h