Summary: | GL/DRI3 over ssh broken | ||||||
---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | poma <pomidorabelisima> | ||||
Component: | Server/General | Assignee: | Xorg Project Team <xorg-team> | ||||
Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> | ||||
Severity: | major | ||||||
Priority: | high | CC: | rdieter, tibbs | ||||
Version: | git | ||||||
Hardware: | x86-64 (AMD64) | ||||||
OS: | Linux (All) | ||||||
See Also: | https://bugzilla.redhat.com/show_bug.cgi?id=1174257 | ||||||
Whiteboard: | |||||||
i915 platform: | i915 features: | ||||||
Attachments: |
|
I can reproduce the issue, I will investigate this issue this week! This can be solved in xserver with these two patches: https://patchwork.freedesktop.org/patch/67759/ https://patchwork.freedesktop.org/patch/67337/ (In reply to Michel Dänzer from comment #2) > This can be solved in xserver with these two patches: > > https://patchwork.freedesktop.org/patch/67759/ > https://patchwork.freedesktop.org/patch/67337/ $ LIBGL_DEBUG=verbose vblank_mode=0 glxgears libGL: screen 0 does not appear to be DRI2 capable libGL: OpenDriver: trying /usr/lib64/dri/tls/swrast_dri.so libGL: OpenDriver: trying /usr/lib64/dri/swrast_dri.so libGL: Can't open configuration file /home/test/.drirc: No such file or directory. ATTENTION: default value of option vblank_mode overridden by environment. libGL: Can't open configuration file /home/test/.drirc: No such file or directory. 100 frames in 5.0 seconds = 19.937 FPS 112 frames in 5.0 seconds = 22.251 FPS 105 frames in 5.0 seconds = 20.843 FPS 105 frames in 5.0 seconds = 20.835 FPS 100 frames in 5.0 seconds = 19.870 FPS ^C Uber slow, but works, thanks. Tested with: xorg-x11-server-Xorg-1.17.4-3.fc22.x86_64 xorg-x11-server-Xorg-1.18.0-4.fc24.x86_64 Tested-by: poma <pomidorabelisima@gmail.com> https://patchwork.freedesktop.org/patch/67759 still ain't in down/up/stream. commit adefbaee499b9679c6cac21f52ec6545af2b36b5 Author: Adam Jackson <ajax@redhat.com> Date: Mon Mar 28 18:11:09 2016 +0900 os: Treat ssh as a non-local client (v4) With this patch DRI/DRI2 over ssh is now broken. There are legitimate and perfectly working scenarios where one would want DRI/DRI2 over ssh (e.g. containers running players/browsers with accelerated video support or opengl applications, etc.). If I'm not missing any obvious solution, you should revert this patch or allow non local clients to use DRI/DRI2. $ vainfo error: XDG_RUNTIME_DIR not set in the environment. libva info: VA-API version 0.36.0 X Error of failed request: BadRequest (invalid request code or no such operation) Major opcode of failed request: 153 (DRI2) Minor opcode of failed request: 1 (DRI2Connect) Serial number of failed request: 11 Current serial number in output stream: 11 $ LIBGL_DEBUG=verbose glxgears libGL: screen 0 does not appear to be DRI2 capable Thanks. (In reply to skodde from comment #6) > With this patch DRI/DRI2 over ssh is now broken. That's a different issue from what this report is about. Please file your own report for it. (In reply to Michel Dänzer from comment #7) > That's a different issue from what this report is about. Please file your > own report for it. For reference: bug #94834 |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.
Created attachment 120365 [details] gdb dri3 remote $ cat /etc/X11/xorg.conf.d/nouveau-dri3.conf Section "Device" Identifier "nvidia0" Driver "nouveau" Option "DRI" "3" EndSection $ grep DRI /var/log/Xorg.0.log [ 45.046] (**) NOUVEAU(0): Option "DRI" "3" [ 45.046] (**) NOUVEAU(0): Allowed maximum DRI level 3. ... [ 46.363] (II) NOUVEAU(0): DRI3 on EXA enabled ... $ ssh -Y user@hostname $ gdb glxinfo ... Reading symbols from glxinfo...Reading symbols from /usr/lib/debug/usr/lib64/mesa/glxinfo.debug...done. done. (gdb) run Starting program: /usr/bin/glxinfo [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". name of display: localhost:10.0 ^C Program received signal SIGINT, Interrupt. 0x00007ffff7531a40 in __poll_nocancel () at ../sysdeps/unix/syscall-template.S:84 84 T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS) (gdb) backtrace full #0 0x00007ffff7531a40 in __poll_nocancel () at ../sysdeps/unix/syscall-template.S:84 No locals. #1 0x00007ffff4f36272 in poll (__timeout=-1, __nfds=1, __fds=0x7fffffffdd60) at /usr/include/bits/poll2.h:46 No locals. #2 _xcb_conn_wait (c=c@entry=0x555555762ea0, cond=cond@entry=0x7fffffffde80, vector=vector@entry=0x0, count=count@entry=0x0) at xcb_conn.c:459 ret = <optimized out> fd = {fd = 3, events = 1, revents = 0} #3 0x00007ffff4f37c27 in wait_for_reply (c=c@entry=0x555555762ea0, request=23, e=e@entry=0x0) at xcb_in.c:516 cond = {__data = {__wseq = 0, __signals_sent = 0, __confirmed = 0, __generation = 0, __mutex = 0x0, __quiescence_waiters = 0, __clockid = 0}, __size = '\000' <repeats 47 times>, __align = 0} reader = {request = 23, data = 0x7fffffffde80, next = 0x0} ret = 0x0 #4 0x00007ffff4f37d31 in xcb_wait_for_reply (c=0x555555762ea0, request=23, e=0x0) at xcb_in.c:546 ret = <optimized out> #5 0x00007ffff7b8d225 in loader_dri3_open () from /lib64/libGL.so.1 No symbol table info available. #6 0x00007ffff7b88018 in dri3_create_screen () from /lib64/libGL.so.1 No symbol table info available. #7 0x00007ffff7b5c911 in __glXInitialize () from /lib64/libGL.so.1 No symbol table info available. #8 0x00007ffff7b58ccb in GetGLXPrivScreenConfig.part.2 () from /lib64/libGL.so.1 No symbol table info available. #9 0x00007ffff7b58e2e in glXChooseVisual () from /lib64/libGL.so.1 No symbol table info available. #10 0x0000555555556eb3 in mesa_hack (scrnum=0, dpy=0x555555760010) at glxinfo.c:1168 visinfo = <optimized out> attribs = {4, 8, 1, 9, 1, 10, 1, 12, 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 5, 0} #11 main (argc=<optimized out>, argv=<optimized out>) at glxinfo.c:1257 dpy = <optimized out> numScreens = 1 scrnum = 0 opts = {mode = Normal, findBest = 0 '\000', limits = 0 '\000', singleLine = 0 '\000', displayName = 0x0, allowDirect = 1 '\001'} coreWorked = <optimized out> (gdb) q A debugging session is active. Inferior 1 [process 4281] will be killed. Quit anyway? (y or n) y $ LIBGL_DEBUG=verbose LIBGL_DRI3_DISABLE=1 glxinfo name of display: localhost:10.0 libGL error: failed to authenticate magic 1 libGL error: failed to load driver: nouveau libGL: OpenDriver: trying /usr/lib64/dri/tls/swrast_dri.so libGL: OpenDriver: trying /usr/lib64/dri/swrast_dri.so libGL: Can't open configuration file /home/test/.drirc: No such file or directory. libGL: Can't open configuration file /home/test/.drirc: No such file or directory. display: localhost:10 screen: 0 direct rendering: Yes server glx vendor string: SGI server glx version string: 1.4 server glx extensions: ... client glx vendor string: Mesa Project and SGI client glx version string: 1.4 client glx extensions: ... GLX version: 1.4 GLX extensions: ... Extended renderer info (GLX_MESA_query_renderer): Vendor: VMware, Inc. (0xffffffff) Device: llvmpipe (LLVM 3.7, 128 bits) (0xffffffff) Version: 11.2.0 Accelerated: no Video memory: 1754MB Unified memory: no Preferred profile: compat (0x2) Max core profile version: 0.0 Max compat profile version: 2.1 Max GLES1 profile version: 1.1 Max GLES[23] profile version: 2.0 OpenGL vendor string: VMware, Inc. OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.7, 128 bits) OpenGL version string: 2.1 Mesa 11.2.0-devel (git-56aff6b) OpenGL shading language version string: 1.30 OpenGL extensions: ... OpenGL ES profile version string: OpenGL ES 2.0 Mesa 11.2.0-devel (git-56aff6b) OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16 OpenGL ES profile extensions: ...