[Mesa-dev] [PATCH 0/6] Gallium multithreaded queue - cleanup and multiple threads per queue

Marek Olšák maraeo at gmail.com
Tue Jun 21 12:17:28 UTC 2016


Hi,

This improves u_queue to be more usable in more cases.

With this, the size of the queue (maximum number of jobs waiting) is configurable as well as the number of threads executing the jobs. The semaphores are ditched in favor of simpler condvars, and multiple waiters on fences are allowed as well.

This is a prerequisite for a later series that will add multithreaded shader compilation into radeonsi.

Please review,

 src/gallium/auxiliary/util/u_queue.c              | 214 +++++++++++++++++-----
 src/gallium/auxiliary/util/u_queue.h              |  41 +++--
 src/gallium/winsys/amdgpu/drm/amdgpu_cs.c         |   7 +-
 src/gallium/winsys/amdgpu/drm/amdgpu_cs.h         |   2 +-
 src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c     |   2 +-
 src/gallium/winsys/radeon/drm/radeon_drm_cs.c     |   7 +-
 src/gallium/winsys/radeon/drm/radeon_drm_cs.h     |   2 +-
 src/gallium/winsys/radeon/drm/radeon_drm_winsys.c |   3 +-
 8 files changed, 205 insertions(+), 73 deletions(-)

Marek


More information about the mesa-dev mailing list