Bug 196200
Summary: | [Texmap][GStreamer]: Map video frames as early as possible and wait via GL sync meta before using texture ids | ||
---|---|---|---|
Product: | WebKit | Reporter: | Víctor M. Jáquez L. <vjaquez> |
Component: | WebKitGTK | Assignee: | Nobody <webkit-unassigned> |
Status: | REOPENED | ||
Severity: | Normal | CC: | bugs-noreply, pnormand, zan |
Priority: | P2 | ||
Version: | WebKit Nightly Build | ||
Hardware: | Unspecified | ||
OS: | Linux | ||
See Also: | https://bugs.webkit.org/show_bug.cgi?id=132869 | ||
Bug Depends on: | 196966 | ||
Bug Blocks: |
Víctor M. Jáquez L.
This report is inspired on https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/commit/b5aa304f201d0805de2b33ab97d293654baa12cd?merge_request_iid=156
We should fence [1] the texture to render in its internal GL context, and wait [2] for its rendering in our application GL context, otherwise the GL pipeline could be working on the texture when painting it.
1. https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glFenceSync.xhtml
2. https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glWaitSync.xhtml
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Víctor M. Jáquez L.
Well, I guess this enhancement doesn't make much sense since it uses OpenGL API 3.5 while webkitgtk uses 3.0
Philippe Normand
Could this be useful for WPE though?
Philippe Normand
For EGL there's an equiivalent but it doesn't seem to be supported in GStreamer:
https://www.khronos.org/registry/EGL/extensions/KHR/EGL_KHR_fence_sync.txt
Víctor M. Jáquez L.
(In reply to Philippe Normand from comment #3)
> For EGL there's an equiivalent but it doesn't seem to be supported in
> GStreamer:
>
> https://www.khronos.org/registry/EGL/extensions/KHR/EGL_KHR_fence_sync.txt
If I understand correctly, at least in i915, the implementation is the same for both
https://gitlab.freedesktop.org/mesa/mesa/blob/master/src/mesa/drivers/dri/i915/intel_syncobj.c#L30
And in another spec I read that the glFenceSync spec is newer, thus it is expected to cover the EGL usage.
Víctor M. Jáquez L.
Reopening because it's required for other context, specially on EGL.