Thank you for the quick tips. I have posted some results at the end of this
post, but they seem inconsistent. glxspheres64 shows the correct renderer
respectively and the performance shows the 6x results I was expecting.
However I do not see the same gains in glmark2, even though it also reports
the correct renderer in each case. Again, I see a glmark of 2000+ when
running it in display :0.
In the meantime I have been trying to get the DE as a whole to run under
acceleration. I record my findings here as a possible clue to my VGL issues
above. In my .vnc/xstartup.turbovnc I use the following command:
#normal start - works with llvmpipe and vglrun
#exec startplasma-x11
#VGL start
exec vglrun +wm startplasma-x11
And I also start tvnc with:
$vncserver -3dwm
I'm not sure if vglrun, +wm or -3dwm are redundant or working against each
other, but I've also tried various combinations to no avail.
Interestingly I had to update the vglrun script to have the full paths to
/usr/lib/libdlfaker.so and the others otherwise I see the following in the
TVNC logs:
ERROR: ld.so: object 'libdlfaker.so' from LD_PRELOAD cannot be preloaded
(cannot open shared object file): ignored.
ERROR: ld.so: object 'libvglfaker.so' from LD_PRELOAD cannot be preloaded
(cannot open shared object file): ignored.
That said, my desktop is still broken even when these errors disappear.
Could my various issues be to do with KDE?
==== VGLRUN RENDERING TESTS====
#all run in tvnc session
$ /bin/glxspheres64
Polygons in scene: 62464 (61 spheres * 1024 polys/spheres)
GLX FB config ID of window: 0x119 (8/8/8/0)
Visual ID of window: 0x2da
Context is Direct
OpenGL Renderer: llvmpipe (LLVM 9.0.1, 256 bits)
19.610305 frames/sec - 20.304510 Mpixels/sec
$ vglrun /bin/glxspheres64
Polygons in scene: 62464 (61 spheres * 1024 polys/spheres)
GLX FB config ID of window: 0x6b (8/8/8/0)
Visual ID of window: 0x21
Context is Direct
OpenGL Renderer: Mesa DRI Intel(R) HD Graphics P4600/P4700 (HSW GT2)
105.728790 frames/sec - 109.471589 Mpixels/sec
$ glmark2
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh
rate.
=======================================================
glmark2 2017.07
=======================================================
OpenGL Information
GL_VENDOR: VMware, Inc.
GL_RENDERER: llvmpipe (LLVM 9.0.1, 256 bits)
GL_VERSION: 3.1 Mesa 20.0.4
=======================================================
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh
rate.
[build] use-vbo=false: FPS: 296 FrameTime: 3.378 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh
rate.
[build] use-vbo=true: FPS: 294 FrameTime: 3.401 ms
=======================================================
glmark2 Score: 295
=======================================================
$ vglrun glmark2
=======================================================
glmark2 2017.07
=======================================================
OpenGL Information
GL_VENDOR: Intel Open Source Technology Center
GL_RENDERER: Mesa DRI Intel(R) HD Graphics P4600/P4700 (HSW GT2)
GL_VERSION: 3.0 Mesa 20.0.4
=======================================================
[build] use-vbo=false: FPS: 390 FrameTime: 2.564 ms
[build] use-vbo=true: FPS: 427 FrameTime: 2.342 ms
=======================================================
glmark2 Score: 408
=======================================================
On Thursday, 16 April 2020 20:02:13 UTC+1, DRC wrote:
>
> You can't really determine which OpenGL renderer is in use by just looking
> at dlopen() calls. In a TurboVNC environment, swrast will be used for any
> GLX/OpenGL commands sent to the TurboVNC X server (the "2D X server"), and
> VirtualGL does send a couple of GLX/OpenGL commands to the 2D X server to
> probe its capabilities. That's probably why swrast is being loaded, but if
> everything is working properly, the OpenGL renderer string should still
> report that the Intel driver is in use for actual rendering. Compare the
> output of /opt/VirtualGL/bin/glxinfo on the local display with 'vglrun
> /opt/VirtualGL/bin/glxinfo' in TurboVNC, or just run
> /opt/VirtualGL/bin/glxspheres64 (using vglrun in TurboVNC), which reports
> the OpenGL renderer string as well.
>
> On 4/16/20 10:34 AM, Shak wrote:
>
> I am trying to set up VirtualGL + TurboVNC on Arch with the Plasma KDE
> desktop. The host is itself a VM using an passed through Intel P4600 IGD. I
> believe that the passthrough itself is successful as I see GL performance
> when running a desktop on display :0.
>
> I am using glmark2 to check what is happening. As a measure, I get a score
> of around 2000 on the host, and 300 when using llvmpipe and similar when
> using vglrun. vglrun glinfo is reporting that its using the Intel Mesa
> driver (vs llvmpipe), so the set up at least looks okay, but it seems that
> vglrun is still using software rendering.
>
> Passing +v +tr to vglrun in both cases shows me the traces at the end of
> this post, which aligns with what I am seeing (highlighted yellow). I've
> also highlighted green some other lines which confuse me.
>
> I read this
> <https://sourceforge.net/p/virtualgl/mailman/message/31296895/> that
> indicated that Mesa isn't supported and in the docs that Arch's VirtiualGL
> package might be broken. I do not know if these apply here (or are still
> valid).
>
> Also when trying to accelerate the whole DE using exec vglrun
> plasmastart-x11 in my xstartup.turbovnc, I seem to get a broken desktop. I
> am not sure if this is related to the above but have mentioned it at as
> another data point (if its unrelated then tips to fix would be
> appreciated!).
>
> Thanks,
>
> vglrun traces:
>
> ==== on host ====
>
> [VGL] NOTICE: Added /usr/lib to LD_LIBRARY_PATH
> [VGL] Shared memory segment ID for vglconfig: 131106
> [VGL] VirtualGL v2.6.3 64-bit (Build 20200214)
> [VGL 0x92aa5780] XOpenDisplay (name=NULL dpy=0x557453a35740(:0) ) 0.335932
> ms
> [VGL] dlopen (filename=libGL.so flag=4098[VGL] NOTICE: Replacing
> dlopen("libGL.so") with dlopen("libvglfaker.so")
> retval=0x7f2c935804f0)
> [VGL] Opening connection to 3D X server :0
> [VGL] dlopen (filename=libGLX_mesa.so.0 flag=1 retval=0x557453a53170)
> [VGL] dlopen (filename=libGLX_mesa.so.0 flag=258 retval=0x557453a53170)
> [VGL] dlopen (filename=/usr/lib/dri/tls/i965_dri.so flag=258
> retval=0x00000000)
> [VGL] dlopen (filename=/usr/lib/dri/i965_dri.so flag=258
> retval=0x557453a69340)
> [VGL 0x92aa5780] glXGetProcAddressARB ((char *)procName=glXSwapIntervalEXT
> [INTERPOSED]) 0.005960 ms
> [VGL 0x92aa5780] glXChooseFBConfig (dpy=0x557453a35740(:0) screen=0
> attrib_list=[0x8012=0x0001 0x8010=0x0001 0x8011=0x0001 0x0022=0x8002
> 0x0008=0x0001 0x0009=0x0001 0x000a=0x0001 0x000b=0x0001 0x000c=0x0001
> 0x000d=0x0000 0x0002=0x0001 0x0005=0x0001 ] glxattribs=[0x8010=0x0001
> 0x000c=0x0001 0x000d=0x0000 0x0002=0x0001 0x0005=0x0001 0x0008=0x0001
> 0x0009=0x0001 0x000a=0x0001 0x000b=0x0001 0x8011=0x0001 0x0022=0x8002 ]
> [VGL] dlopen (filename=libGLX_mesa.so.0 flag=258 retval=0x557453a53170)
> [VGL] dlopen (filename=/usr/lib/dri/tls/i965_dri.so flag=258
> retval=0x00000000)
> [VGL] dlopen (filename=/usr/lib/dri/i965_dri.so flag=258
> retval=0x557453a69340)
> configs[0]=0x557453b9a040(0x67) configs[1]=0x557453b9a7c0(0x6f)
> configs[2]=0x557453b9af40(0x77) configs[3]=0x557453b9b300(0x7b)
> configs[4]=0x557453b9bc60(0x85) configs[5]=0x557453b9c3e0(0x8d)
> configs[6]=0x557453b9bd50(0x86) configs[7]=0x557453b9c4d0(0x8e)
> configs[8]=0x557453b9b030(0x78) configs[9]=0x557453b9b3f0(0x7c)
> configs[10]=0x557453b9fa40(0xc7) configs[11]=0x557453b9fe00(0xcb)
> configs[12]=0x557453b9ffe0(0xcd) configs[13]=0x557453ba00d0(0xce)
> *nelements=14 ) 6.473064 ms
> [VGL 0x92aa5780] glXGetFBConfigAttrib (dpy=0x557453a35740(:0)
> config=0x557453b9a040(0x67) attribute=2(0x2) *value=32(0x20) ) 0.008106 ms
>
>
> ==== on tvnc ====
>
> [VGL] NOTICE: Added /usr/lib to LD_LIBRARY_PATH
> [VGL] Shared memory segment ID for vglconfig: 131076
> [VGL] VirtualGL v2.6.3 64-bit (Build 20200214)
> [VGL 0x9f624780] XOpenDisplay (name=NULL dpy=0x555b28562740(:1) ) 2.894163
> ms
> [VGL] dlopen (filename=libGL.so flag=4098[VGL] NOTICE: Replacing
> dlopen("libGL.so") with dlopen("libvglfaker.so")
> retval=0x7f90a00ff4f0)
> [VGL] Opening connection to 3D X server :0
> [VGL] dlopen (filename=libGLX_mesa.so.0 flag=1 retval=0x555b28583a20)
> [VGL] dlopen (filename=libGLX_mesa.so.0 flag=258 retval=0x555b28583a20)
> [VGL] dlopen (filename=/usr/lib/dri/tls/i965_dri.so flag=258
> retval=0x00000000)
> [VGL] dlopen (filename=/usr/lib/dri/i965_dri.so flag=258
> retval=0x555b285964a0)
> [VGL 0x9f624780] glXGetProcAddressARB ((char *)procName=glXSwapIntervalEXT
> [INTERPOSED]) 0.045061 ms
> [VGL 0x9f624780] glXChooseFBConfig (dpy=0x555b28562740(:1) screen=0
> attrib_list=[0x8012=0x0001 0x8010=0x0001 0x8011=0x0001 0x0022=0x8002
> 0x0008=0x0001 0x0009=0x0001 0x000a=0x0001 0x000b=0x0001 0x000c=0x0001
> 0x000d=0x0000 0x0002=0x0001 0x0005=0x0001 ] glxattribs=[0x8010=0x0001
> 0x000c=0x0001 0x000d=0x0000 0x0002=0x0001 0x0005=0x0001 0x0008=0x0001
> 0x0009=0x0001 0x000a=0x0001 0x000b=0x0001 0x8011=0x0001 0x0022=0x8002 ]
> [VGL] dlopen (filename=libGLX_mesa.so.0 flag=258 retval=0x555b28583a20)
> [VGL] dlopen (filename=/usr/lib/dri/tls/swrast_dri.so flag=258
> retval=0x00000000)
> [VGL] dlopen (filename=/usr/lib/dri/swrast_dri.so flag=258
> retval=0x555b28705370)
> configs[0]=0x555b286c7170(0x67) configs[1]=0x555b286c78f0(0x6f)
> configs[2]=0x555b286c8070(0x77) configs[3]=0x555b286c8430(0x7b)
> configs[4]=0x555b286c8d90(0x85) configs[5]=0x555b286c9510(0x8d)
> configs[6]=0x555b286c8e80(0x86) configs[7]=0x555b286c9600(0x8e)
> configs[8]=0x555b286c8160(0x78) configs[9]=0x555b286c8520(0x7c)
> configs[10]=0x555b286ccb70(0xc7) configs[11]=0x555b286ccf30(0xcb)
> configs[12]=0x555b286cd110(0xcd) configs[13]=0x555b286cd200(0xce)
> *nelements=14 ) 44.402122 ms
> [VGL 0x9f624780] glXGetFBConfigAttrib (dpy=0x555b28562740(:1)
> config=0x555b286c7170(0x67) attribute=2(0x2) *value=32(0x20) ) 0.003815 ms
> --
> You received this message because you are subscribed to the Google Groups
> "VirtualGL User Discussion/Support" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected] <javascript:>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/virtualgl-users/ada84490-cfbe-41c7-8919-c0f00241ba82%40googlegroups.com
>
> <https://groups.google.com/d/msgid/virtualgl-users/ada84490-cfbe-41c7-8919-c0f00241ba82%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
--
You received this message because you are subscribed to the Google Groups
"VirtualGL User Discussion/Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/virtualgl-users/f462fa23-9363-43f1-9001-ced5eae3f925%40googlegroups.com.