#2466 closed defect (fixed)
GTK3 OpenGL win32 window is transparent
Reported by: | Antoine Martin | Owned by: | alas |
---|---|---|---|
Priority: | blocker | Milestone: | 4.0 |
Component: | platforms | Version: | 3.0.x |
Keywords: | Cc: |
Description (last modified by )
Like it's not getting painted at all.
Tried 2.5.3 and 3.0.x on a win7 system with a Quadro M4000.
The code was originally added in r16993 + r16964, see ticket:1569#comment:5.
See also:
Attachments (4)
Change History (20)
comment:1 Changed 16 months ago by
Description: | modified (diff) |
---|---|
Status: | new → assigned |
comment:2 Changed 16 months ago by
comment:3 Changed 16 months ago by
Priority: | critical → blocker |
---|
Turns out that we may be able to use GTK.GLArea with legacy contexts: GTK Bug 756142 - Bring back support for legacy OpenGL contexts using the undocumented env var GDK_GL=legacy
. (patch hooks the widget)
As per gdkglcontext-win32.c: OpenGL does not work with WS_EX_LAYERED enabled, so we need to disable WS_EX_LAYERED when we acquire a valid HGLRC
I've tried doing the same thing in the window style fixup code (removing WS_EX_LAYERED
), but that did not help.
comment:4 Changed 16 months ago by
This may help if we have to use gtk.glarea: #2467 move to opengl core profile
comment:6 Changed 16 months ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:7 Changed 16 months ago by
Resolution: | fixed |
---|---|
Status: | closed → reopened |
The fix is incorrect, it ends up disabling opengl because this now triggers a rendering error:
Error presenting FBO Traceback (most recent call last): File "E:\Xpra\trunk\src/xpra/client/gl/gl_window_backing_base.py", line 666, in present_fbo self.do_present_fbo() File "E:\Xpra\trunk\src/xpra/client/gl/gl_window_backing_base.py", line 691, in do_present_fbo glBindFramebuffer(GL_FRAMEBUFFER, 0) File "E:\Xpra\trunk\src\dist\lib\library.zip\OpenGL\error.py", line 223, in glCheckError raise GLError( OpenGL.error.GLError: GLError( err = 1282, description = b'invalid operation', baseOperation = glBindFramebuffer, cArguments = (GL_FRAMEBUFFER, 0) ) EndPaint
comment:8 Changed 16 months ago by
The rendering error is fixed in r24365, but the window remains transparent..
comment:9 Changed 16 months ago by
comment:10 Changed 16 months ago by
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
comment:11 Changed 16 months ago by
XPRA_OPENGL_DRAW_REFRESH=1
seems to have caused a performance regression: #2481
Changed 14 months ago by
Attachment: | ticket-1797-opengl-log.txt added |
---|
Long client logs with -d opengl, including launch of chromium-browser from xterm.
Changed 14 months ago by
Attachment: | ticket-1797-opengl-log2.txt added |
---|
Short client logs with -d opengl, connecting to session with chromium-browser already launched.
Changed 14 months ago by
Attachment: | ticket-1797-opengl-off-log.txt added |
---|
Very short client logs with -d opengl, but oengl=off.
comment:12 Changed 14 months ago by
Resolution: | fixed |
---|---|
Status: | closed → reopened |
I guess I'm reopening this ticket.
With Xpra-Python3_Setup_3.0.4-r24778.exe (on windows 7) launched against Fedora 30 server with xpra v3.0.4-r24778 (I don't see a r24903 or later server version, mentioned in #1797, or client version available with dnf update on stable or pulling from /dists directory) with my new-usual server launch command of:
xpra start :13 --no-daemon --bind-tcp=0.0.0.0:1234 --bind-ws=0.0.0.0:1237 --bind-wss=0.0.0.0:1239 --ssl-cert=/etc/xpra/148-ssl.pem --start-child=xterm --start-child=xterm --exit-with-children
When the python client connects with opengl enabled, I am unable to display a chromium-browser launched from an xterm... though I am able to display firefox.
Attached new log.txt with a long list of client-side logs with -d opengl... which started with initial launch of session and then all the time it took to launch the chromium-browser in one of the xterms (which didn't display).
Attached log2.txt which is shorter, client-side logs from simply re-connecting to the same session with that chromium-browser application already running (which doesn't display) and then disconnecting within a second or three.
And, just for comparison, included opengl-off-log.txt capturing the logs with opengl disabled - which unsurprisingly results in a very short bit of logs, but seemed like it ought to be included just for completeness?
comment:13 Changed 14 months ago by
Owner: | changed from Antoine Martin to alas |
---|---|
Status: | reopened → new |
Happening again with a chromium window, but not the xterm. (just like #2514 - maybe should have gone there?)
Key elements from the logs:
OpenGL enabled with Intel(R) HD Graphics 530
Intel driver, we meet again.
Desktop-scaling is triggered by the large desktop size:
desktop size is 5760x2160 with 1 screen: Default (1524x571 mm - DPI: 96x96) Lenovo Wide viewing angle & High density FlexView Display 1920x1080 1920x1080 at 3840x1080 (344x194 mm - DPI: 141x141) workarea: 1920x1040 (Standard monitor types) DELL UP3214Q 3840x2160 (698x392 mm - DPI: 139x139) workarea: 3840x2160 upscaled to 125%, virtual screen size: 4608x1728 Default (1524x571 mm - DPI: 76x76) Lenovo Wide viewing angle & High density FlexView Display 1920x1080 1536x864 at 3072x864 (344x194 mm - DPI: 113x113) workarea: 1536x832 (Standard monitor types) DELL UP3214Q 3072x1728 (698x392 mm - DPI: 111x111) workarea: 3072x1728
The xterm window which does show up:
Initializing GL context for window size (624, 395), backing size (499, 316), max texture size=16384
I am guessing that the chromium window must be this one:
Initializing GL context for window size (1313, 853), backing size (1050, 682), max texture size=16384
Lots of h264 screen updates quite early on, but nothing unexpected otherwise.
@afarr: Looks to me like r24727 isn't doing what it is supposed to. As per ticket:2514#comment:8: GTK3 is just buggy on win32 with undecorated windows, we are not supposed to use opengl on win32 with GTK3 if the window is not decorated. (I believe your chromium window draws its own decorations and does not use the default window manager decorations) Yet, from the logs, opengl seems to be used to try to draw it. Weird.
The only other possibility is some bad interaction between desktop-scaling and r24441 / r24483, does the problem go away if you turn it off? (either using --desktop-scaling=no
or using the system tray menu).
If not, please post the -d window
log of just when chromium is launched.
comment:14 Changed 14 months ago by
Using the same versions, when I launch the client with --desktop-scaling=no
the chromium-browser still fails to display when launched (with greylisted but on opengl).
Got this from the -d window
in client-side logs when launching the chromium-browser.
2020-01-06 12:50:52,119 make_new_window(..) client_window_classes=(<class 'xpra.client.gl.gtk3.nativegl_client_window.GLClientWindow'>, <class 'xpra.client.gtk3.client_window.ClientWindow'>), group_leader_window=<__gi__.GdkWin32Window object at 0x000000003c18dc80 (GdkWin32Window at 0x0000000003004960)> 2020-01-06 12:50:52,120 <class 'xpra.client.gl.gtk3.nativegl_client_window.GLClientWindow'>(gtk3.client, <__gi__.GdkWin32Window object at 0x000000003c18dc80 (GdkWin32Window at 0x0000000003004960)>, 0, 4, 395, 1030, 1050, 682, 1050, 682, {b'xid': b'0xc00001', b'client-machine': b'xpra-lib-fed30-2', b'pid': 13942, b'title': b'New Tab - Chromium', b'role': b'browser', b'class-instance': (b'chromium-browser', b'Chromium-browser'), b'window-type': (b'NORMAL',), b'size-constraints': {b'position': (395, 1030), b'minimum-size': (508, 87)}, b' icon-title': b'', b'decorations': 0, b'set-initial-position': True, b'iconic': False}, False, {}, WindowBorder(False, 0xD41D8C, 0.6, 5), (32767, 32767), [4096, 2048, 16, 16, 7, 7, 1, b'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xf f\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xf f\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xf f\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x0 0\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xf f\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xf f\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff', b''], 0) 2020-01-06 12:50:52,135 setup_window(1050, 682) 2020-01-06 12:50:52,137 new_backing(1050, 682) backing_class=<class 'xpra.client.gl.gtk_base.gl_drawing_area.GLDrawingArea'> 2020-01-06 12:50:52,138 make_new_backing(<class 'xpra.client.gl.gtk_base.gl_drawing_area.GLDrawingArea'>, 1050, 682, 1050, 682) effective backing class=<class 'xpra.client.gl.gtk_b ase.gl_drawing_area.GLDrawingArea'>, server alpha=False, window alpha=False 2020-01-06 12:50:52,140 set_window_type(['NORMAL']) hints=0 2020-01-06 12:50:52,141 make_new_window(..) window(4)=GLClientWindow(4 : gtk3.GLDrawingArea(4, (1050, 682), None)) 2020-01-06 12:50:52,147 Win32Hooks: window frame size is 8x8 2020-01-06 12:50:52,148 Win32Hooks: message_map={36: <bound method Win32Hooks.on_getminmaxinfo of <xpra.platform.win32.window_hooks.Win32Hooks object at 0x000000003ae24640>>} 2020-01-06 12:50:52,155 GL do_configure_event(<Gdk.EventConfigure object at 0x000000003c18b950 (void at 0x000000001b394510)>) 2020-01-06 12:50:52,158 GLClientWindow(4 : gtk3.GLDrawingArea(4, (1050, 682), None)).do_map_event(<Gdk.EventAny object at 0x000000003ae254f0 (void at 0x000000001b394b50)>) OR=False 2020-01-06 12:50:52,160 GL do_configure_event(<Gdk.EventConfigure object at 0x000000003ae254f0 (void at 0x000000001b394bf0)>) 2020-01-06 12:50:52,229 cairo_paint_border(<cairo.Context object at 0x000000003c189830>, None) 2020-01-06 12:50:52,242 cairo_paint_border(<cairo.Context object at 0x000000003c189910>, None) 2020-01-06 12:50:52,246 cairo_paint_border(<cairo.Context object at 0x000000003ae13f10>, None) 2020-01-06 12:50:52,265 cairo_paint_border(<cairo.Context object at 0x000000003c1899f0>, None) 2020-01-06 12:50:52,267 cairo_paint_border(<cairo.Context object at 0x000000003c189470>, None) 2020-01-06 12:50:52,282 cairo_paint_border(<cairo.Context object at 0x000000003c189c50>, None) 2020-01-06 12:50:52,284 cairo_paint_border(<cairo.Context object at 0x000000003c189070>, None) 2020-01-06 12:50:52,294 cairo_paint_border(<cairo.Context object at 0x000000003c189750>, None) 2020-01-06 12:50:52,296 cairo_paint_border(<cairo.Context object at 0x000000003ae13e10>, None) 2020-01-06 12:50:52,308 cairo_paint_border(<cairo.Context object at 0x000000003ae13e10>, None) 2020-01-06 12:50:52,310 cairo_paint_border(<cairo.Context object at 0x000000003ae13e50>, None) 2020-01-06 12:50:52,325 cairo_paint_border(<cairo.Context object at 0x000000003c189830>, None) 2020-01-06 12:50:52,327 cairo_paint_border(<cairo.Context object at 0x000000003ae13e10>, None) 2020-01-06 12:50:52,342 cairo_paint_border(<cairo.Context object at 0x000000003c189090>, None) 2020-01-06 12:50:52,345 cairo_paint_border(<cairo.Context object at 0x000000003ae13e50>, None) 2020-01-06 12:50:52,359 cairo_paint_border(<cairo.Context object at 0x000000003ae13f10>, None) 2020-01-06 12:50:52,361 cairo_paint_border(<cairo.Context object at 0x000000003ae13e10>, None) 2020-01-06 12:50:52,376 cairo_paint_border(<cairo.Context object at 0x000000003c189c50>, None) 2020-01-06 12:50:52,378 cairo_paint_border(<cairo.Context object at 0x000000003ae13e50>, None) 2020-01-06 12:50:52,392 cairo_paint_border(<cairo.Context object at 0x000000003c189750>, None) 2020-01-06 12:50:52,394 cairo_paint_border(<cairo.Context object at 0x000000003ae13e50>, None) 2020-01-06 12:50:52,408 cairo_paint_border(<cairo.Context object at 0x000000003c189cb0>, None) 2020-01-06 12:50:52,410 cairo_paint_border(<cairo.Context object at 0x000000003ae13e50>, None) 2020-01-06 12:50:52,425 cairo_paint_border(<cairo.Context object at 0x000000003c189050>, None) 2020-01-06 12:50:52,427 cairo_paint_border(<cairo.Context object at 0x000000003ae13a30>, None) 2020-01-06 12:50:52,443 cairo_paint_border(<cairo.Context object at 0x000000003c189970>, None) 2020-01-06 12:50:52,446 cairo_paint_border(<cairo.Context object at 0x000000003ae13e50>, None) 2020-01-06 12:50:57,270 cairo_paint_border(<cairo.Context object at 0x000000003c18fc70>, None) 2020-01-06 12:50:57,287 cairo_paint_border(<cairo.Context object at 0x000000003c18f530>, None) 2020-01-06 12:50:57,304 cairo_paint_border(<cairo.Context object at 0x000000003c18ffd0>, None) 2020-01-06 12:50:57,322 cairo_paint_border(<cairo.Context object at 0x000000003c18f730>, None) 2020-01-06 12:50:57,338 cairo_paint_border(<cairo.Context object at 0x000000003c18fc90>, None) 2020-01-06 12:50:57,353 cairo_paint_border(<cairo.Context object at 0x000000003c18fc90>, None) 2020-01-06 12:50:57,370 cairo_paint_border(<cairo.Context object at 0x000000003c18fc90>, None) 2020-01-06 12:50:57,387 cairo_paint_border(<cairo.Context object at 0x000000003c18feb0>, None) 2020-01-06 12:50:57,403 cairo_paint_border(<cairo.Context object at 0x000000003c18fb70>, None) 2020-01-06 12:50:57,420 cairo_paint_border(<cairo.Context object at 0x000000003c18fb50>, None) 2020-01-06 12:50:57,437 cairo_paint_border(<cairo.Context object at 0x000000003c18ffd0>, None) 2020-01-06 12:50:57,454 cairo_paint_border(<cairo.Context object at 0x000000003c18fdf0>, None) 2020-01-06 12:50:57,470 cairo_paint_border(<cairo.Context object at 0x000000003c18f9d0>, None)
comment:15 Changed 14 months ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Thanks for the logs afarr!
It was a patch problem: ticket:2514#comment:12.
comment:16 Changed 6 weeks ago by
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2466
Using v3.0.1-r24295, and just showing an xterm: