[Bug 792407] Windows: GL context sharing fails in async loading mode.

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sun Jan 14 11:18:33 UTC 2018


https://bugzilla.gnome.org/show_bug.cgi?id=792407

--- Comment #3 from Petros <petroskataras at gmail.com> ---
Thanks for your reply Matthew.

What puzzles me is that as can see from the logs wglCreateContextAttribsARB()
seems to succeed in the case of the sync loading but fails in the async case
where it tries to fallback to wglShareLists().

Relevant parts for sync case:

0:00:00.232938009  3816 000002237BFB9280 DEBUG               glwindow
gstglwindow_win32.c:276:gst_gl_window_win32_create_window: gl window created:
5047178
0:00:00.233103134  3816 000002237BFB9280 LOG                 glwindow
gstglwindow_win32.c:287:gst_gl_window_win32_create_window: Created a win32
window
0:00:00.237788218  3816 000002237BFB9280 INFO               glcontext
gstglcontext.c:1231:gst_gl_context_create_thread:<glcontextwgl0> Attempting to
create opengl context. user chosen api(s) (any), compiled api support (opengl
opengl3) display api (any)
0:00:00.238253707  3816 000002237BFB9280 DEBUG              glcontext
gstglcontext_wgl.c:174:gst_gl_context_wgl_create_context: gl context created:
65537
0:00:00.260883084  3816 000002237BFB9280 DEBUG              glcontext
gstglcontext_wgl.c:212:gst_gl_context_wgl_create_context:<glcontextwgl0> trying
to create a GL 4.5 context
0:00:00.261583431  3816 000002237BFB9280 LOG                glcontext
gstglcontext_wgl.c:261:gst_gl_context_wgl_create_context: gl context id: 131073
0:00:00.261605468  3816 000002237BFB9280 INFO               glcontext
gstglcontext.c:1242:gst_gl_context_create_thread:<glcontextwgl0> created
context
0:00:00.261623581  3816 000002237BFB9280 DEBUG              glcontext
gstglcontext.c:749:gst_gl_context_activate:<glcontextwgl0> activate:1
0:00:00.262248158  3816 000002237BFB9280 INFO               glcontext
gstglcontext.c:1258:gst_gl_context_create_thread:<glcontextwgl0> available GL
APIs: opengl3
0:00:00.262269591  3816 000002237BFB9280 DEBUG              glcontext
gstglcontext.c:1277:gst_gl_context_create_thread:<glcontextwgl0> Filling info
0:00:00.266241648  3816 000002237BFB9280 INFO               glcontext
gstglcontext.c:1071:_create_context_info:<glcontextwgl0> GL_VERSION: 4.5.0
NVIDIA 382.66
0:00:00.266280892  3816 000002237BFB9280 INFO               glcontext
gstglcontext.c:1074:_create_context_info:<glcontextwgl0>
GL_SHADING_LANGUAGE_VERSION: 4.50 NVIDIA
0:00:00.266312287  3816 000002237BFB9280 INFO               glcontext
gstglcontext.c:1076:_create_context_info:<glcontextwgl0> GL_VENDOR: NVIDIA
Corporation
0:00:00.266385038  3816 000002237BFB9280 INFO               glcontext
gstglcontext.c:1078:_create_context_info:<glcontextwgl0> GL_RENDERER: GeForce
GTX 1080 Ti/PCIe/SSE2

and for the async case :

0:00:00.175514642 11992 0000022C62A4A280 LOG                 glwindow
gstglwindow_win32.c:226:gst_gl_window_win32_create_window: Attempting to create
a win32 window
0:00:00.176678366 11992 0000022C62A4A280 TRACE               glwindow
gstglwindow_win32.c:394:window_proc: WM_CREATE
0:00:00.176752627 11992 0000022C62A4A280 DEBUG               glwindow
gstglwindow_win32.c:276:gst_gl_window_win32_create_window: gl window created:
4131516
0:00:00.176780399 11992 0000022C62A4A280 LOG                 glwindow
gstglwindow_win32.c:287:gst_gl_window_win32_create_window: Created a win32
window
0:00:00.180643480 11992 0000022C62A4A280 INFO               glcontext
gstglcontext.c:1231:gst_gl_context_create_thread:<glcontextwgl0> Attempting to
create opengl context. user chosen api(s) (any), compiled api support (opengl
opengl3) display api (any)
0:00:00.181140969 11992 0000022C62A4A280 DEBUG              glcontext
gstglcontext_wgl.c:174:gst_gl_context_wgl_create_context: gl context created:
65537
0:00:00.193910840 11992 0000022C62A4A280 DEBUG              glcontext
gstglcontext_wgl.c:212:gst_gl_context_wgl_create_context:<glcontextwgl0> trying
to create a GL 4.5 context
0:00:00.194472024 11992 0000022C62A4A280 DEBUG              glcontext
gstglcontext_wgl.c:212:gst_gl_context_wgl_create_context:<glcontextwgl0> trying
to create a GL 4.4 context
0:00:00.194989134 11992 0000022C62A4A280 DEBUG              glcontext
gstglcontext_wgl.c:212:gst_gl_context_wgl_create_context:<glcontextwgl0> trying
to create a GL 4.3 context
0:00:00.195507149 11992 0000022C62A4A280 DEBUG              glcontext
gstglcontext_wgl.c:212:gst_gl_context_wgl_create_context:<glcontextwgl0> trying
to create a GL 4.2 context
0:00:00.196016713 11992 0000022C62A4A280 DEBUG              glcontext
gstglcontext_wgl.c:212:gst_gl_context_wgl_create_context:<glcontextwgl0> trying
to create a GL 4.1 context
0:00:00.196531408 11992 0000022C62A4A280 DEBUG              glcontext
gstglcontext_wgl.c:212:gst_gl_context_wgl_create_context:<glcontextwgl0> trying
to create a GL 4.0 context
0:00:00.197033122 11992 0000022C62A4A280 DEBUG              glcontext
gstglcontext_wgl.c:212:gst_gl_context_wgl_create_context:<glcontextwgl0> trying
to create a GL 3.3 context
0:00:00.197541176 11992 0000022C62A4A280 DEBUG              glcontext
gstglcontext_wgl.c:212:gst_gl_context_wgl_create_context:<glcontextwgl0> trying
to create a GL 3.2 context
0:00:00.198905043 11992 0000022C62A4A280 WARN               glcontext
gstglcontext.c:1235:gst_gl_context_create_thread:<glcontextwgl0> Failed to
create context
0:00:00.198932815 11992 0000022C5CEBED40 INFO               glcontext
gstglcontext.c:1037:gst_gl_context_create:<glcontextwgl0> gl thread created
0:00:00.198963606 11992 0000022C5CEBED40 WARN            glbasefilter
gstglbasefilter.c:393:gst_gl_base_filter_decide_allocation:<convert> error:
failed to share contexts through wglShareLists 0xaa

On top of that I tried the same code on Windows VM ( VMware with mesa drivers
and Core Profile support enabled ) and there wglCreateContextAttribsARB() seems
that its working properly for both the sync and the async case. Relevant parts
of the log file :

0:00:00.632404185  7544 0000020741299580 LOG                 glwindow
gstglwindow_win32.c:226:gst_gl_window_win32_create_window: Attempting to create
a win32 window
0:00:00.643493634  7544 0000020741299580 TRACE               glwindow
gstglwindow_win32.c:394:window_proc: WM_CREATE
0:00:00.644985625  7544 0000020741299580 DEBUG               glwindow
gstglwindow_win32.c:276:gst_gl_window_win32_create_window: gl window created:
459564
0:00:00.648208861  7544 0000020741299580 LOG                 glwindow
gstglwindow_win32.c:287:gst_gl_window_win32_create_window: Created a win32
window
0:00:00.650459284  7544 0000020741299580 INFO               glcontext
gstglcontext.c:1231:gst_gl_context_create_thread:<glcontextwgl0> Attempting to
create opengl context. user chosen api(s) (any), compiled api support (opengl
opengl3) display api (any)
0:00:00.659322789  7544 0000020741299580 DEBUG              glcontext
gstglcontext_wgl.c:174:gst_gl_context_wgl_create_context: gl context created:
65537
0:00:00.706056952  7544 0000020741299580 DEBUG              glcontext
gstglcontext_wgl.c:212:gst_gl_context_wgl_create_context:<glcontextwgl0> trying
to create a GL 4.5 context
0:00:00.707850578  7544 0000020741299580 DEBUG              glcontext
gstglcontext_wgl.c:212:gst_gl_context_wgl_create_context:<glcontextwgl0> trying
to create a GL 4.4 context
0:00:00.709045276  7544 0000020741299580 DEBUG              glcontext
gstglcontext_wgl.c:212:gst_gl_context_wgl_create_context:<glcontextwgl0> trying
to create a GL 4.3 context
0:00:00.710477255  7544 0000020741299580 DEBUG              glcontext
gstglcontext_wgl.c:212:gst_gl_context_wgl_create_context:<glcontextwgl0> trying
to create a GL 4.2 context
0:00:00.768884399  7544 0000020741299580 DEBUG              glcontext
gstglcontext_wgl.c:212:gst_gl_context_wgl_create_context:<glcontextwgl0> trying
to create a GL 4.1 context
0:00:00.818529503  7544 0000020741299580 DEBUG              glcontext
gstglcontext_wgl.c:212:gst_gl_context_wgl_create_context:<glcontextwgl0> trying
to create a GL 4.0 context
0:00:00.834999435  7544 0000020741299580 DEBUG              glcontext
gstglcontext_wgl.c:212:gst_gl_context_wgl_create_context:<glcontextwgl0> trying
to create a GL 3.3 context
0:00:00.871651707  7544 0000020741299580 LOG                glcontext
gstglcontext_wgl.c:261:gst_gl_context_wgl_create_context: gl context id: 327681
0:00:00.872887860  7544 0000020741299580 INFO               glcontext
gstglcontext.c:1242:gst_gl_context_create_thread:<glcontextwgl0> created
context
0:00:00.873748548  7544 0000020741299580 DEBUG              glcontext
gstglcontext.c:749:gst_gl_context_activate:<glcontextwgl0> activate:1
0:00:00.875465581  7544 0000020741299580 INFO               glcontext
gstglcontext.c:1258:gst_gl_context_create_thread:<glcontextwgl0> available GL
APIs: opengl3
0:00:00.876377989  7544 0000020741299580 DEBUG              glcontext
gstglcontext.c:1277:gst_gl_context_create_thread:<glcontextwgl0> Filling info
0:00:00.885748036  7544 0000020741299580 INFO               glcontext
gstglcontext.c:1071:_create_context_info:<glcontextwgl0> GL_VERSION: 3.3 (Core
Profile) Mesa 10.6.0 (git-beb7765)
0:00:00.886978662  7544 0000020741299580 INFO               glcontext
gstglcontext.c:1074:_create_context_info:<glcontextwgl0>
GL_SHADING_LANGUAGE_VERSION: 3.30
0:00:00.889731284  7544 0000020741299580 INFO               glcontext
gstglcontext.c:1076:_create_context_info:<glcontextwgl0> GL_VENDOR: VMware,
Inc.
0:00:00.891676912  7544 0000020741299580 INFO               glcontext
gstglcontext.c:1078:_create_context_info:<glcontextwgl0> GL_RENDERER: Gallium
0.4 on SVGA3D; build: RELEASE;  LLVM;

These tests make me wonder if I m hitting some kind of driver issue. 

In any case, I would like to provide proper fallback support when
wglCreateContextAttribsARB() fails so my question would be at which point
exactly should one disable and then (re)enable the application context ( in
this case the one coming from Cinder ) on a playbin - appsink based pipeline so
that wglShareLists() doesn't fail when GStreamer tries to setup/share the
context internally ?

Thanks again!

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list