[Mesa-dev] [PATCH 00/10] mesa: support for EGL_ANDROID_native_fence_sync (vN+1)
Rob Clark
robdclark at gmail.com
Fri Nov 18 13:39:29 UTC 2016
This patchset implements support for EGL_ANDROID_native_fence_sync[1]
for egl and gallium. This extension provides support for native fence
fd's (file descriptors) for the GPU. In a similar way to dma-buf fd's,
which provide a reference-counted userspace handle to buffers which
can be shared across drivers and across processes, native fence fd's
provide a reference-counted userspace handle to fences which can be
shared across drivers and across processes.
This extension is already in use on android, and should be useful in
other environments.
Patch 04/10 has some fixes from Chad squashed in, as well as a couple
fixes for issues that Rafael found while writing piglit tests.
The kernel patches for freedreno (drm/msm) are upstream (v4.9) and the
libdrm patches are in v2.4.72. Kernel patches for drm/virtio are in
flight (so corresponding gallium patch is not ready to push). Kernel
plus libdrm plus mesa patches for i965 are in flight.
This has been tested on piglit[2] (i965, freedreno), kmscube[3] (virgl,
freedreno), and drm-hwc2[4] (virgl, freedreno).
[1] https://www.khronos.org/registry/egl/extensions/ANDROID/EGL_ANDROID_native_fence_sync.txt
[2] https://patchwork.freedesktop.org/series/14498/
[3] https://github.com/robclark/kmscube/commits/atomic-fence
[4] https://git.collabora.com/cgit/user/robertfoss/drm_hwcomposer.git/log/?h=hwc2_fence_v2
Gustavo Padovan (1):
RFC: virgl: native fence fd support
Rob Clark (9):
egl: initialize SyncCondition after attr parsing
egl: un-fallthrough sync attr parsing
dri: extend fence extension to support native fd fences
egl: add EGL_ANDROID_native_fence_sync
gallium: wire up server_wait_sync
gallium: support for native fence fd's
freedreno: some fence cleanup
freedreno: native fence fd support
freedreno: no-op render when we need a fence
configure.ac | 2 +-
include/GL/internal/dri_interface.h | 44 +++++++++++-
src/egl/drivers/dri2/egl_dri2.c | 58 +++++++++++++++-
src/egl/main/eglapi.c | 38 ++++++++++-
src/egl/main/eglapi.h | 2 +
src/egl/main/egldisplay.h | 1 +
src/egl/main/eglfallbacks.c | 1 +
src/egl/main/eglsync.c | 31 +++++++--
src/egl/main/eglsync.h | 1 +
src/gallium/drivers/freedreno/freedreno_batch.c | 7 +-
src/gallium/drivers/freedreno/freedreno_batch.h | 3 +
.../drivers/freedreno/freedreno_batch_cache.c | 4 +-
.../drivers/freedreno/freedreno_batch_cache.h | 2 +-
src/gallium/drivers/freedreno/freedreno_context.c | 27 +++++---
src/gallium/drivers/freedreno/freedreno_context.h | 2 +-
src/gallium/drivers/freedreno/freedreno_fence.c | 51 ++++++++++++--
src/gallium/drivers/freedreno/freedreno_fence.h | 16 +++--
src/gallium/drivers/freedreno/freedreno_gmem.c | 32 ++++++++-
src/gallium/drivers/freedreno/freedreno_gmem.h | 1 +
src/gallium/drivers/freedreno/freedreno_screen.c | 7 +-
src/gallium/drivers/i915/i915_screen.c | 1 +
src/gallium/drivers/ilo/ilo_screen.c | 1 +
src/gallium/drivers/llvmpipe/lp_screen.c | 1 +
src/gallium/drivers/nouveau/nv30/nv30_screen.c | 1 +
src/gallium/drivers/nouveau/nv50/nv50_screen.c | 1 +
src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 1 +
src/gallium/drivers/r300/r300_screen.c | 1 +
src/gallium/drivers/r600/r600_pipe.c | 1 +
src/gallium/drivers/radeonsi/si_pipe.c | 1 +
src/gallium/drivers/softpipe/sp_screen.c | 1 +
src/gallium/drivers/svga/svga_screen.c | 1 +
src/gallium/drivers/vc4/vc4_screen.c | 1 +
src/gallium/drivers/virgl/virgl_context.c | 47 +++++++++++--
src/gallium/drivers/virgl/virgl_screen.c | 12 ++++
src/gallium/drivers/virgl/virgl_winsys.h | 16 ++++-
src/gallium/include/pipe/p_context.h | 19 ++++++
src/gallium/include/pipe/p_defines.h | 2 +
src/gallium/include/pipe/p_screen.h | 10 +++
src/gallium/state_trackers/dri/dri2.c | 58 +++++++++++++++-
src/gallium/winsys/virgl/drm/virgl_drm_winsys.c | 78 +++++++++++++++++++++-
src/gallium/winsys/virgl/drm/virgl_drm_winsys.h | 2 +
src/gallium/winsys/virgl/drm/virtgpu_drm.h | 16 ++++-
.../winsys/virgl/vtest/virgl_vtest_winsys.c | 8 ++-
43 files changed, 549 insertions(+), 61 deletions(-)
--
2.7.4
More information about the mesa-dev
mailing list