[Mesa-dev] [PATCH 0/6] radeonsi: always compile asynchronously from shader (selector) creation

Nicolai Hähnle nhaehnle at gmail.com
Sun Oct 22 18:45:34 UTC 2017


Hi all,

We compile the main shader part of when creating a shader CSO. This
happens asynchronously by default, except for debug contexts due to
the way shader printing works. This is one reason why ddebug doesn't
work with threaded Gallium (because threaded Gallium want to create
shader CSOs from arbitrary threads).

Since I really want to be able to use ddebug with threaded Gallium,
this series fixes the shader printing issues so that we can always
do the compile asynchronously. Now shader CSO creation is truly
a per-screen operation.

Please review!
Thanks,
Nicolai
--
 src/gallium/auxiliary/Makefile.sources       |   2 +
 src/gallium/auxiliary/meson.build            |   2 +
 src/gallium/auxiliary/os/os_thread.h         |  76 -----------
 src/gallium/auxiliary/util/u_async_debug.c   | 113 +++++++++++++++++
 src/gallium/auxiliary/util/u_async_debug.h   |  74 +++++++++++
 src/gallium/drivers/llvmpipe/lp_rast.c       |   9 +-
 src/gallium/drivers/llvmpipe/lp_rast_priv.h  |   4 +-
 .../drivers/radeon/r600_pipe_common.c        |  12 --
 .../drivers/radeon/r600_pipe_common.h        |   1 -
 src/gallium/drivers/radeonsi/si_compute.c    |  46 ++++---
 src/gallium/drivers/radeonsi/si_pipe.c       |  16 +++
 src/gallium/drivers/radeonsi/si_pipe.h       |   1 +
 .../drivers/radeonsi/si_state_shaders.c      |  46 ++++---
 src/gallium/tests/unit/pipe_barrier_test.c   |  12 +-
 src/util/u_queue.c                           |  35 +++++
 src/util/u_queue.h                           |   2 +
 src/util/u_thread.h                          |  74 +++++++++++
 17 files changed, 386 insertions(+), 139 deletions(-)
--
 src/gallium/auxiliary/Makefile.sources       |   2 +
 src/gallium/auxiliary/meson.build            |   2 +
 src/gallium/auxiliary/os/os_thread.h         |  76 -----------
 src/gallium/auxiliary/util/u_async_debug.c   | 113 +++++++++++++++++
 src/gallium/auxiliary/util/u_async_debug.h   |  74 +++++++++++
 src/gallium/drivers/llvmpipe/lp_rast.c       |   9 +-
 src/gallium/drivers/llvmpipe/lp_rast_priv.h  |   4 +-
 .../drivers/radeon/r600_pipe_common.c        |  12 --
 .../drivers/radeon/r600_pipe_common.h        |   1 -
 src/gallium/drivers/radeonsi/si_compute.c    |  46 ++++---
 src/gallium/drivers/radeonsi/si_pipe.c       |  16 +++
 src/gallium/drivers/radeonsi/si_pipe.h       |   1 +
 .../drivers/radeonsi/si_state_shaders.c      |  46 ++++---
 src/gallium/tests/unit/pipe_barrier_test.c   |  12 +-
 src/util/u_queue.c                           |  35 +++++
 src/util/u_queue.h                           |   2 +
 src/util/u_thread.h                          |  74 +++++++++++
 17 files changed, 386 insertions(+), 139 deletions(-)



More information about the mesa-dev mailing list