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(+)

_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to