[Mesa-dev] [RFC 00/12] egl, i965: Support EGL_ANDROID_native_fence_sync (v2)

Emil Velikov emil.l.velikov at gmail.com
Tue Oct 11 11:21:35 UTC 2016


On 10 October 2016 at 20:41, Rob Clark <robdclark at gmail.com> wrote:
> On Mon, Oct 10, 2016 at 1:43 PM, Chad Versace <chadversary at chromium.org> wrote:
>> Background:
>>
>>     This extension is needed by Android (via ARC++) on Chrome OS.
>>     Essentially, this extension provides a translation between EGLSync and
>>     explicit cross-process synchronization points, represented as "sync
>>     fds".  The relevant documentation is:
>>
>>       [1]: https://www.khronos.org/registry/egl/extensions/ANDROID/EGL_ANDROID_native_fence_sync.txt
>>       [2]: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/sync_file.txt?id=refs/tags/v4.7-rc6
>>       [3]: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/sync_file.h?id=refs/tags/v4.7-rc6
>>       [4]: https://source.android.com/devices/graphics/index.html#synchronization_framework
>>       [5]: https://source.android.com/devices/graphics/implement.html#explicit_synchronization
>>
>>     This series is only an RFC because the i915 kernel interface is not yet
>>     upstream. Here's the upstream status:
>>
>>       - Core kernel support for sync files was merged into Linux 4.7. See
>>        [2] and [3] above.
>>
>>       - Chris Wilson is actively working on the i915 interface.
>>
>>     This series builds on some of Rob Clark's previous RFC patches, which
>>     are included here. Some of my patches make changes to Rob's or document
>>     open questions about Rob's; those patches are prefixed with either
>>     'squash!' or 'todo!'.
>>
>> Testing:
>>
>>     I haven't yet tested EGL_ANDROID_native_fence_sync with these patches, but
>>     the series does build. I just wanted to get these patches on the list as a
>>     status-update.  I'm slowly working on getting Rob Clark's hacked-up kmscube to
>>     work on this series.
>>
>>     I did test that this series doesn't break any dEQP-EGL sync tests. But my
>>     dEQP doesn't include any EGL_ANDROID_native_fence_sync tests.
>>
>From a quick skim neither one of CTS/dEQP/piglit had
EGL_ANDROID_native_fence_sync tests. I've mentioned to Rob F that
adding a few piglits might be a good idea. It would be good to
coordinate to avoid writing the same tests twice ;-)

>> Branches:
>>
>>     mesa: This exact patch series lives at
>>       http://cgit.kiwitree.net/~chadv/mesa/log/?h=review/fences-v02
>>
>>     mesa: My up-to-date, work-in-progress branch lives at
>>       http://cgit.kiwitree.net/~chadv/mesa/log/?h=wip/fences
>>
>>     libdrm: If you want to build this, you also need my libdrm branch:
>>       http://cgit.kiwitree.net/~chadv/libdrm/log/?h=wip/fences
>
> btw, we might want a sync-fd ioctl wrapper somewhere..  I had stuck it
> in libdrm (I might have needed it, or at least anticipated needing it
> both in mesa and libdrm??)
>
> https://github.com/freedreno/libdrm/commit/03479dee4fcaa85a81ed67e5112613f866b55467
>
> Also, I should mention that Robert Foss was debugging some issue w/
> this with drm/hwc2 on android.  Not entirely sure if the problem was
> with the virgl backend code, or something more core/shared..  it is
> only doing something slightly differently from kmscube
> (eglCreateSync(EGL_NO_NATIVE_FENCE_FD_ANDROID) followed by glFlush()
> instead of eglSwapBuffers() before eglDupNativeFence())  I was going
> to debug that over the weekend but atm kernel is a bit broken on the
> boards I have so didn't get very far yet..
>
Mildly related bug report + proposed fix:

https://bugs.freedesktop.org/show_bug.cgi?id=98172

-Emil


More information about the mesa-dev mailing list