I ran glmark on the host display normally and then with software rendering. 
I've attached the results at the end of this message. I've attached this 
for completion rather than to contradict your hunch, but they do tie up 
with the numbers I see via VGL so I don't think this is a CPU/VNC issue.

I've tried repeating my experiments using gnome, in case the issue is with 
KDE. However I get the following when trying to run vglrun:

$ *vglrun glxspheres64*
/usr/bin/vglrun: line 191: hostname: command not found
[VGL] NOTICE: Automatically setting VGL_CLIENT environment variable to
[VGL]    10.10.7.1, the IP address of your SSH client.
Polygons in scene: 62464 (61 spheres * 1024 polys/spheres)
libGL error: failed to authenticate magic 1
libGL error: failed to load driver: i965
GLX FB config ID of window: 0x6b (8/8/8/0)
Visual ID of window: 0x21
Context is Direct
OpenGL Renderer: llvmpipe (LLVM 9.0.1, 256 bits)
17.228616 frames/sec - 17.859872 Mpixels/sec
16.580449 frames/sec - 17.187957 Mpixels/sec

I'm not sure what to make of these. I am using *vncserver -wm ~/gnome*, 
where gnome is the following script.

#!/bin/sh
dbus-launch gnome-session

I feel that I am close but still a way off. 

FWIW I have previously tried using nomachine which is able to give me the 
perceived GL acceleration by "mirroring" my host display, but that just 
feels like the wrong way to achieve this (not least because it requires a 
monitor attached to use).

Thanks,

==== RENDER TESTS ====

$ *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: 2493 FrameTime: 0.401 ms
=======================================================
                                  glmark2 Score: 2493
=======================================================

$ *LIBGL_ALWAYS_SOFTWARE=1 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: 420 FrameTime: 2.381 ms
=======================================================
                                  glmark2 Score: 420
=======================================================


On Thursday, 16 April 2020 23:21:59 UTC+1, DRC wrote:
>
> On 4/16/20 3:19 PM, Shak wrote:
>
> 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.
>
> I don't know much about glmark2, but as with any benchmark, Amdahl's Law 
> applies.  That means that the total speedup from any enhancement (such as a 
> GPU) is limited by the percentage of clock time during which that 
> enhancement is used.  Not all OpenGL workloads are GPU-bound in terms of 
> performance.  If the geometry and window size are both really small, then 
> the performance could very well be CPU-bound.  That's why, for instance, 
> GLXgears is a poor OpenGL benchmark.  Real-world applications these days 
> assume the presence of a GPU, so they're going to have no qualms about 
> trying to render geometries with hundreds of thousands or even millions of 
> polygons.  When you try to do that with software OpenGL, you'll see a big 
> difference vs. GPU acceleration-- a difference that won't necessarily show 
> up with tiny geometries. 
>
> You can confirm that that's the case by running glmark2 on your local 
> display without VirtualGL and forcing the use of the swrast driver.  I 
> suspect that the difference between swrast and i965 won't be very great in 
> that scenario, either.  (I should also mention that Intel GPUs aren't the 
> fastest in the world, so you're never going to see as much of a speedup-- 
> nor as large of a speedup in as many cases-- as you would see with AMD or 
> nVidia.)
>
> The other thing is, if the benchmark is attempting to measure unrealistic 
> frame rates-- like hundreds or thousands of frames per second-- then there 
> is a small amount of per-frame overhead introduced by VirtualGL that may be 
> limiting that frame rate.  But the reality is that human vision can't 
> usually detect more than 60 fps anyhow, so the difference between, say, 200 
> fps and 400 fps is not going to matter to an application user.  At more 
> realistic frame rates, VGL's overhead won't be noticeable.
>
> Performance measurement in a VirtualGL environment is more complicated 
> than performance measurement in a local display environment, which is why 
> there's a whole section of the VirtualGL User's Guide dedicated to it.  
> Basically, since VGL introduces a small amount of per-frame overhead but no 
> per-vertex overhead, at realistic frame rates and with modern server and 
> client hardware, it will not appear any slower than a local display.  
> However, some synthetic benchmarks may record slower performance due to the 
> aforementioned overhead.
>
>
> 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.
>
> Just use the default xstartup.turbovnc script ('rm 
> ~/.vnc/xstartup.turbovnc' and re-run /opt/TurboVNC/bin/vncserver to create 
> it) and start TurboVNC with '-wm startplasma-x11 -vgl'.
>
> * -3dwm is deprecated.  Use -vgl instead.  -3dwm/-vgl (or setting '$useVGL 
> = 1;' in /etc/turbovncserver.conf or ~/.vnc/turbovncserver.conf) simply 
> instructs xstartup.turbovnc to run the window manager startup script using 
> 'vglrun +wm'.
>
> * Passing -wm to /opt/TurboVNC/bin/vncserver (or setting '$wm = {script};' 
> in turbovncserver.conf) instructs xstartup.turbovnc to execute the 
> specified window manager startup script rather than /etc/X11/xinit/xinitrc.
>
> * +wm is a feature of VirtualGL, not TurboVNC.  Normally, if VirtualGL 
> detects that an OpenGL application is not monitoring StructureNotify 
> events, VGL will monitor those events on behalf of the application (which 
> allows VGL to be notified when the window changes size, thus allowing VGL 
> to change the size of the corresponding Pbuffer.)  This is, however, 
> unnecessary with window managers and interferes with some of them (compiz, 
> specifically), so +wm disables that behavior in VirtualGL.  It's also a 
> placeholder in case future issues are discovered that are specific to 
> compositing window managers (+wm could easily be extended to handle those 
> issues as well.)
>
> 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? 
>
> The LD_PRELOAD issues can be fixed as described here:
>
> https://cdn.rawgit.com/VirtualGL/virtualgl/2.6.3/doc/index.html#hd0012
>
> All of that aside, I have not personally tested the bleeding-edge KDE 
> Plasma release, which is what Arch presumably ships, so I have no idea 
> whether it works with VirtualGL or TurboVNC.  The window managers I have 
> tested are listed here:
>
> https://turbovnc.org/Documentation/Compatibility22
>
>
> 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].
>> 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] <javascript:>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/virtualgl-users/f462fa23-9363-43f1-9001-ced5eae3f925%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/virtualgl-users/f462fa23-9363-43f1-9001-ced5eae3f925%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/bd7beb3a-2cfe-4f2b-8440-4ddd2dd812a8%40googlegroups.com.

Reply via email to