[Mesa-dev] [RFC] New gallium flags for using different contexts in several threads
Nicolai Hähnle
nhaehnle at gmail.com
Sun Dec 18 15:57:25 UTC 2016
On 18.12.2016 13:38, Axel Davy wrote:
> Currently there is no real specification on what is allowed for
> using different contexts in several threads, or when you
> map/unmap a resource in a thread, but uses it in another for
> draw calls.
>
> For the gallium nine CSMT patchset, I've figured out it would be better
> to add flags to describe what is allowed.
>
> Please comment.
I don't see the point of this. All existing drivers must already support
the multi-threading scenarios described in the commits, because they can
happen as part of correct use of OpenGL. If drivers don't support them,
then they're already broken.
I'm happy to be convinced otherwise if I missed something, but using
multiple contexts from different threads, or using Map/UnmapBuffer from
one context but sourcing the buffer from draw calls in another context
are all perfectly supported OpenGL use cases.
Nicolai
>
> Yours,
>
> Axel Davy
>
> Axel Davy (3):
> gallium: add PIPE_CAP_THREAD_SAFE
> radeon: enable PIPE_CAP_THREAD_SAFE
> gallium: add flag for transfers in a different context than draw call
>
> src/gallium/docs/source/screen.rst | 12 ++++++++++++
> src/gallium/drivers/freedreno/freedreno_screen.c | 2 ++
> src/gallium/drivers/i915/i915_screen.c | 2 ++
> src/gallium/drivers/ilo/ilo_screen.c | 2 ++
> src/gallium/drivers/llvmpipe/lp_screen.c | 2 ++
> src/gallium/drivers/nouveau/nv30/nv30_screen.c | 2 ++
> src/gallium/drivers/nouveau/nv50/nv50_screen.c | 2 ++
> src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 2 ++
> src/gallium/drivers/r300/r300_screen.c | 2 ++
> src/gallium/drivers/r600/r600_pipe.c | 2 ++
> src/gallium/drivers/radeonsi/si_pipe.c | 2 ++
> src/gallium/drivers/softpipe/sp_screen.c | 2 ++
> src/gallium/drivers/svga/svga_screen.c | 2 ++
> src/gallium/drivers/swr/swr_screen.cpp | 2 ++
> src/gallium/drivers/vc4/vc4_screen.c | 2 ++
> src/gallium/drivers/virgl/virgl_screen.c | 2 ++
> src/gallium/include/pipe/p_defines.h | 3 +++
> 17 files changed, 45 insertions(+)
>
More information about the mesa-dev
mailing list