On 21.06.2016 14:17, Marek Olšák wrote:
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.

I like the overall cleanup, but I'd appreciate it if you could rearrange patch #3 and #5 a little to avoid the temporary deadlock. No need to risk someone running into that while bisecting.

I think it would suffice to add queue->lock locking around the queue->kill_threads already in patch #3, but tbh I'd also be fine with the slightly less-work option of squashing the two patches together.

Nicolai


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
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to