Hi all, here's a re-spin of the series, v1 was here: https://patchwork.freedesktop.org/series/32427, and the updated patches in a larger context are here: https://cgit.freedesktop.org/~nh/mesa/log/?h=fences-threads-ddebug
Changes in v2: - patch 3: Windows build issues should be fixed now (tested with Appveyor) - added patch 7 and updated patch 10 to handle server waits on (asynchronous) flushes correctly / more robustly - patch 14: remove a hunk that was made redundant by the above - patch 15: change the buffer allocation for fine fences Please take a look, especially at the mentioned patches! Thanks, Nicolai -- include/c11/threads.h | 11 - include/c11/threads_posix.h | 39 +- include/c11/threads_win32.h | 50 +- src/egl/drivers/dri2/egl_dri2.c | 24 +- src/gallium/auxiliary/Makefile.sources | 3 - src/gallium/auxiliary/gallivm/lp_bld_init.c | 2 +- src/gallium/auxiliary/hud/hud_cpu.c | 2 +- src/gallium/auxiliary/hud/hud_cpufreq.c | 2 +- src/gallium/auxiliary/hud/hud_diskstat.c | 2 +- src/gallium/auxiliary/hud/hud_driver_query.c | 2 +- src/gallium/auxiliary/hud/hud_fps.c | 2 +- src/gallium/auxiliary/hud/hud_nic.c | 2 +- src/gallium/auxiliary/hud/hud_sensors_temp.c | 2 +- src/gallium/auxiliary/meson.build | 3 - .../auxiliary/pipebuffer/pb_bufmgr_cache.c | 1 - .../auxiliary/pipebuffer/pb_bufmgr_debug.c | 1 - .../auxiliary/pipebuffer/pb_bufmgr_slab.c | 1 - src/gallium/auxiliary/pipebuffer/pb_cache.c | 2 +- src/gallium/auxiliary/util/u_debug.c | 19 +- src/gallium/auxiliary/util/u_dump.h | 9 + src/gallium/auxiliary/util/u_dump_defines.c | 53 + src/gallium/auxiliary/util/u_dump_state.c | 16 +- .../auxiliary/util/u_threaded_context.c | 212 +++- .../auxiliary/util/u_threaded_context.h | 61 +- .../util/u_threaded_context_calls.h | 2 + src/gallium/auxiliary/util/u_time.h | 150 --- src/gallium/docs/source/context.rst | 23 + src/gallium/drivers/ddebug/dd_context.c | 130 +- src/gallium/drivers/ddebug/dd_draw.c | 1049 ++++++++++------ src/gallium/drivers/ddebug/dd_pipe.h | 93 +- src/gallium/drivers/ddebug/dd_screen.c | 168 ++- src/gallium/drivers/ddebug/dd_util.h | 32 +- .../drivers/etnaviv/etnaviv_query_sw.c | 2 +- src/gallium/drivers/etnaviv/etnaviv_screen.c | 2 +- .../drivers/freedreno/freedreno_query_sw.c | 2 +- .../drivers/freedreno/freedreno_screen.c | 2 +- src/gallium/drivers/llvmpipe/lp_query.c | 2 +- src/gallium/drivers/llvmpipe/lp_rast.c | 2 +- src/gallium/drivers/llvmpipe/lp_screen.c | 2 +- src/gallium/drivers/llvmpipe/lp_setup.c | 2 +- src/gallium/drivers/llvmpipe/lp_state_fs.c | 2 +- .../drivers/llvmpipe/lp_state_setup.c | 2 +- src/gallium/drivers/nouveau/nouveau_fence.c | 2 +- src/gallium/drivers/nouveau/nouveau_screen.c | 2 +- src/gallium/drivers/r300/r300_context.c | 2 +- src/gallium/drivers/r300/r300_flush.c | 2 +- src/gallium/drivers/r300/r300_screen.c | 2 +- src/gallium/drivers/r600/r600_gpu_load.c | 2 +- src/gallium/drivers/r600/r600_pipe.c | 2 +- src/gallium/drivers/r600/r600_pipe_common.c | 2 +- src/gallium/drivers/r600/r600_query.c | 2 +- src/gallium/drivers/r600/r600_texture.c | 2 +- src/gallium/drivers/r600/sb/sb_core.cpp | 2 +- src/gallium/drivers/radeon/r600_gpu_load.c | 2 +- .../drivers/radeon/r600_pipe_common.c | 269 +--- src/gallium/drivers/radeon/r600_query.c | 2 +- src/gallium/drivers/radeon/r600_texture.c | 2 +- src/gallium/drivers/radeon/radeon_winsys.h | 4 +- .../drivers/radeonsi/Makefile.sources | 1 + src/gallium/drivers/radeonsi/meson.build | 1 + src/gallium/drivers/radeonsi/si_debug.c | 5 +- src/gallium/drivers/radeonsi/si_fence.c | 467 +++++++ src/gallium/drivers/radeonsi/si_hw_context.c | 3 + src/gallium/drivers/radeonsi/si_pipe.c | 16 +- src/gallium/drivers/radeonsi/si_pipe.h | 7 + src/gallium/drivers/rbug/rbug_core.c | 2 +- src/gallium/drivers/softpipe/sp_query.c | 2 +- src/gallium/drivers/softpipe/sp_screen.c | 2 +- src/gallium/drivers/svga/svga_context.h | 2 +- src/gallium/drivers/svga/svga_pipe_draw.c | 1 - src/gallium/drivers/swr/swr_fence.cpp | 2 +- src/gallium/drivers/swr/swr_query.cpp | 2 +- src/gallium/drivers/trace/tr_dump.c | 2 +- src/gallium/drivers/virgl/virgl_screen.c | 2 +- src/gallium/include/pipe/p_context.h | 19 +- src/gallium/include/pipe/p_defines.h | 4 + .../state_trackers/wgl/stw_framebuffer.c | 2 +- src/gallium/tests/unit/pipe_barrier_test.c | 3 +- src/gallium/winsys/amdgpu/drm/amdgpu_bo.c | 2 +- src/gallium/winsys/amdgpu/drm/amdgpu_cs.c | 24 +- src/gallium/winsys/amdgpu/drm/amdgpu_cs.h | 9 +- .../winsys/radeon/drm/radeon_drm_bo.c | 2 +- .../winsys/radeon/drm/radeon_drm_cs.c | 21 +- .../winsys/virgl/drm/virgl_drm_winsys.c | 2 +- .../winsys/virgl/vtest/virgl_vtest_winsys.c | 2 +- src/util/Makefile.sources | 2 + src/util/futex.h | 9 +- src/util/meson.build | 2 + src/{gallium/auxiliary/os => util}/os_time.c | 19 +- src/{gallium/auxiliary/os => util}/os_time.h | 23 +- src/util/simple_mtx.h | 2 +- src/util/u_queue.c | 82 +- src/util/u_queue.h | 54 +- 93 files changed, 2039 insertions(+), 1250 deletions(-) _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev