mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 11:48:06 +02:00
gallium: add PIPE_FLUSH_ASYNC and PIPE_FLUSH_HINT_FINISH
Also document some subtleties of pipe_context::flush. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
e3a8013de8
commit
ea6df1ce37
3 changed files with 18 additions and 1 deletions
|
|
@ -521,6 +521,15 @@ and the context is still unflushed, and the ctx parameter of fence_finish is
|
|||
equal to the context where the fence was created, fence_finish will flush
|
||||
the context.
|
||||
|
||||
PIPE_FLUSH_ASYNC: The flush is allowed to be asynchronous. Unlike
|
||||
``PIPE_FLUSH_DEFERRED``, the driver must still ensure that the returned fence
|
||||
will finish in finite time. However, subsequent operations in other contexts of
|
||||
the same screen are no longer guaranteed to happen after the flush. Drivers
|
||||
which use this flag must implement pipe_context::fence_server_sync.
|
||||
|
||||
PIPE_FLUSH_HINT_FINISH: Hints to the driver that the caller will immediately
|
||||
wait for the returned fence.
|
||||
|
||||
|
||||
``flush_resource``
|
||||
|
||||
|
|
|
|||
|
|
@ -469,7 +469,13 @@ struct pipe_context {
|
|||
int clear_value_size);
|
||||
|
||||
/**
|
||||
* Flush draw commands
|
||||
* Flush draw commands.
|
||||
*
|
||||
* This guarantees that the new fence (if any) will finish in finite time,
|
||||
* unless PIPE_FLUSH_DEFERRED is used.
|
||||
*
|
||||
* Subsequent operations on other contexts of the same screen are guaranteed
|
||||
* to execute after the flushed commands, unless PIPE_FLUSH_ASYNC is used.
|
||||
*
|
||||
* NOTE: use screen->fence_reference() (or equivalent) to transfer
|
||||
* new fence ref to **fence, to ensure that previous fence is unref'd
|
||||
|
|
|
|||
|
|
@ -352,6 +352,8 @@ enum pipe_flush_flags
|
|||
PIPE_FLUSH_END_OF_FRAME = (1 << 0),
|
||||
PIPE_FLUSH_DEFERRED = (1 << 1),
|
||||
PIPE_FLUSH_FENCE_FD = (1 << 2),
|
||||
PIPE_FLUSH_ASYNC = (1 << 3),
|
||||
PIPE_FLUSH_HINT_FINISH = (1 << 4),
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue