From c4268fd175336f91e571f9060c9ad1f167132574 Mon Sep 17 00:00:00 2001 From: Axel Davy Date: Mon, 19 Dec 2016 20:06:51 +0100 Subject: [PATCH] gallium-docs: Add documentation for when using several contexts MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Add documentation to explicit what can be expected and what is allowed when using several contexts. Signed-off-by: Axel Davy Reviewed-by: Marek Olšák --- src/gallium/docs/source/context.rst | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/gallium/docs/source/context.rst b/src/gallium/docs/source/context.rst index e190cefc851..35f51a09410 100644 --- a/src/gallium/docs/source/context.rst +++ b/src/gallium/docs/source/context.rst @@ -707,3 +707,26 @@ notifications are single-shot, i.e. subsequent calls to since the last call or since the last notification by callback. * ``set_device_reset_callback`` sets a callback which will be called when a device reset is detected. The callback is only called synchronously. + +Using several contexts +---------------------- + +Several contexts from the same screen can be used at the same time. Objects +created on one context cannot be used in another context, but the objects +created by the screen methods can be used by all contexts. + +Transfers +^^^^^^^^^ +A transfer on one context is not expected to synchronize properly with +rendering on other contexts, thus only areas not yet used for rendering should +be locked. + +A flush is required after transfer_unmap to expect other contexts to see the +uploaded data, unless: + +* Using persistent mapping. Associated with coherent mapping, unmapping the + resource is also not required to use it in other contexts. Without coherent + mapping, memory_barrier(PIPE_BARRIER_MAPPED_BUFFER) should be called on the + context that has mapped the resource. No flush is required. + +* Mapping the resource with PIPE_TRANSFER_MAP_DIRECTLY. -- 2.30.2