Page 1 of 1

6.0.x: How to tell the vGPU from the logs

Posted: 7. Jan 2019, 05:35
by socratis
If you're analyzing a VBox.log and you want to see which vGPU is in use, the easiest way is to look at the following section:
[/Devices/vga/0/Config/] (level 4)
  3DEnabled        <integer> = 0x0000000000000001 (1)        <-- self-explanatory
...
  VMSVGA3dEnabled  <integer> = 0x0000000000000001 (1)        <-- VMSVGA and VBoxSVGA
  VMSVGAEnabled    <integer> = 0x0000000000000001 (1)        <-- VMSVGA and VBoxSVGA
  VMSVGAPciId      <integer> = 0x0000000000000001 (1)        <-- VMSVGA only
Another clue is that in the VBoxVGA+3D case (the old, legacy one), something like the following would appear in the very beginning of the log, before the "CFGM dump" section. The following is from my 2015 MacBookPro11,5. Note the OpenGL version is 2.1, which is weird, because the MBP supports OpenGL 4.1 according to the OpenGL Extensions Viewer:
OpenGL: Offline rendering support is OFF (pid=9436)
OpenGL Info: 3D test passed
OpenGL: Offline rendering support is OFF (pid=9436)
OpenGL Info: Render SPU: GL_VENDOR:   ATI Technologies Inc.
OpenGL Info: Render SPU: GL_RENDERER: AMD Radeon R9 M370X OpenGL Engine
OpenGL Info: Render SPU: GL_VERSION:  2.1 ATI-1.42.15
...
OpenGL Info: Render SPU: GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB=4096
OpenGL Info: Host supports version 2.1 [2.1 ATI-1.42.15]
OpenGL Info: Cfg: u32Caps(0x1f), fVisualBitsDefault(0x23)
Shared OpenGL service loaded -- 3D enabled
************************* CFGM dump *************************
With 6.0.0, using the VBoxSVGA or VMSVGA with 3D enabled, the host's GPU info appears right after the "CPUID dump" section:
******************** End of CPUID dump **********************
...
Changing the VM state from 'CREATED' to 'POWERING_ON'
VMSVGA3d: OpenGL version: 2.1 ATI-1.42.15
VMSVGA3d: OpenGL Vendor: ATI Technologies Inc.
VMSVGA3d: OpenGL Renderer: AMD Radeon R9 M370X OpenGL Engine
VMSVGA3d: OpenGL shader language version: 1.20
VMSVGA3d: OpenGL extensions (156):
...
VMSVGA3d: Alternative OpenGL version: 4.1 ATI-1.42.15
VMSVGA3d: Alternative OpenGL Vendor: ATI Technologies Inc.
VMSVGA3d: Alternative OpenGL Renderer: AMD Radeon R9 M370X OpenGL Engine
VMSVGA3d: Alternative OpenGL shader language version: 4.10
VMSVGA3d: Alternative OpenGL extensions (114):
...
Changing the VM state from 'POWERING_ON' to 'RUNNING'
Note that there are two versions of OpenGL showing; 2.1 which is the "Compatibility" one according to the OpenGL ExtViewer, and the "Alternative" 4.1 which is the "Core" according to the same program.

Hope it helps you figure out those logs a little bit easier...

Re: 6.0.x: How to tell the vGPU from the logs

Posted: 7. Jan 2019, 10:49
by mpack
Interesting that you detect both compatibility and core versions on an OS X host. I just Googled to remind myself of why you'd prefer one over the other, and the first hit said that Macs didn't implement the compatibility API - mind you the discussion was from 2011.

The compatibility layer is what I expect most business users would want: more convenience, less bling. The core profile would be for gamers. The OpenGL people have been trying to noodge us away from the old direct call API for about twenty years (*), but as long as it exists that ain't gonna happen. :)

(*) Actually I suspect most business apps use a compromise of storing all vertex data in buffer objects to minimize data transfers, and the rest is direct calls. Minimal use of shader language.

Hierarchy:
OpenGL 1.1 still exists as the built in software renderer in Windows. Direct mode only, no buffer objects except for textures. Useless.
OpenGL 2.1 you see a lot in VirtualBox, the fact that compatibility layers claim to be 2.1 is a surprise to me. Supports vertex buffer objects, hence gives very good performance on business graphics.
OpenGL > 3.x : increasingly deprecates (but still supports) direct mode API, trends towards shader languages: scripts that get downloaded into the card and run independantly. Features mostly driven by marketing to gamers.

Re: 6.0.x: How to tell the vGPU from the logs

Posted: 7. Jan 2019, 13:53
by socratis
Don, I'm going to do some research later today on what exactly those reports mean. In the mean time, I'm going to move this from the "Forum Volunteers" to "Using VirtualBox", I don't see why restrict it to volunteers/moderators/administrators only. And I don't even know why I didn't post it there from the beginning...

Re: 6.0.x: How to tell the vGPU from the logs

Posted: 23. Jan 2019, 12:10
by cremor
I can't find any mention of "OpenGL" at all in my logs. Are those logs only written on a OS X host? I've tried it both with 3D enabled and disabled with VBoxSVGA.

Re: 6.0.x: How to tell the vGPU from the logs

Posted: 23. Jan 2019, 15:32
by mpack
OpenGL will only be mentioned if 2D or 3D acceleration is enabled in the VM settings, as OpenGL on the host is needed to provide that feature for guests.

Re: 6.0.x: How to tell the vGPU from the logs

Posted: 23. Jan 2019, 15:35
by cremor
In case you only read my initial message:
I've edited my post to mention that the logs also don't show anything about OpenGL if 3D acceleration is enabled.

Re: 6.0.x: How to tell the vGPU from the logs

Posted: 23. Jan 2019, 16:21
by mpack
Then I'll need to see the log (as a zipped attachment please).

Re: 6.0.x: How to tell the vGPU from the logs

Posted: 23. Jan 2019, 16:58
by cremor
Here are the logs.

Re: 6.0.x: How to tell the vGPU from the logs

Posted: 23. Jan 2019, 17:58
by mpack
Your log does not mention OpenGL, but it does have a long list of Direct3D capabilities (D3Dxxxxx) located exactly where Socratis said that OpenGL stuff appeared in his log. I believe it's the first time I've ever seen Direct3D referenced in a host log.

Socratis was on a Mac host. I'm guessing that on Windows hosts the VBoxSVGA controller must rely on the host implemention of Direct3D instead of OpenGL? That should certainly lead to a more reliable foundation on Windows hosts.