VirtualBox

Ticket #10190 (new defect)

Opened 2 years ago

Last modified 4 weeks ago

MS Flight beta report "no Shader 3 support" and close

Reported by: efa Owned by:
Priority: major Component: 3D support
Version: VirtualBox 4.1.8 Keywords:
Cc: Guest type: Windows
Host type: Linux

Description

I tried to install the new MS Flight beta on WinXP in VB4.1.8 I keep 3D acceleration activated with 128 MB dedicated to VideoRAM. My Host is Linux Ubuntu 11.10, and the card is a NVidia G104M The installation work, but on Flight start it detect "no Shader 3 support" and close.

Attachments

VBox.log Download (87.5 KB) - added by efa 2 years ago.
VB4.1.8_WinXP_Flight.jpg Download (234.0 KB) - added by efa 2 years ago.
error dialog box
VBox.log.1 Download (121.7 KB) - added by linuxloon 17 months ago.
VB log file

Change History

comment:1 Changed 2 years ago by misha

Please attach a VM session log here. The Shader 3 is supported in case it can be implemented by means of host's opengl capabilities the host graphics provides.

comment:2 Changed 2 years ago by efa

can you please explain me how to recover the VM session log?

comment:3 Changed 2 years ago by misha

It's in the Logs directory of your VM directory, which is ~/VirtualBox VMs/<vm_name> by default.

Changed 2 years ago by efa

Changed 2 years ago by efa

error dialog box

comment:4 Changed 2 years ago by efa

I just started the VM, started Flight, shutdown VM

comment:5 Changed 2 years ago by efa

opss, my video card is a NVidia Geforce G102M (not G104M) with 512 MB videoram and should support Shader 3 model:
 http://en.wikipedia.org/wiki/Comparison_of_Nvidia_graphics_processing_units#GeForce_100_Series
 http://en.wikipedia.org/wiki/GeForce_100_Series

comment:6 Changed 2 years ago by Turin

I'm getting a similar error regarding SM3, I think it may be related to the use of GL_ARB_shader_texture_lod versus GL_EXT_gpu_shader4 in glsl_shader.c

Looking at the code, it appears that either of these functions can be used, however in my testing systems that support GL_EXT_gpu_shader4 (but not GL_ARB_shader_texture_lod) generate the SM3 error when trying to launch a game that requires SM3 support.

From the "NVIDIA 280.13" in your log file I'm guessing you may have the same issue. I don't have VirtualBox OSE building yet locally to try recompiling the guest addons (my current suspision is that building locally will generate the correct binaries for my graphics drivers which support EXT_gpu_shader4) so I can't say for sure that this is the problem though.

comment:7 Changed 2 years ago by Turin

I've been able to track down the problem to a lack of pass-through on OpenGL extensions used by wind3d. Using  http://www.realtech-vr.com/glview/ in my windows guest I was able to determine that both the NV_FRAGMENT_PROGRAM2 and NV_VERTEX_PROGRAM3 extensions were not supported in the guest despite being present on the host. These extensions are used by wine to determine whether nvidia cards support Shader Model 3, and when it cannot detect these extensions in the guest, wined3d downgrades the capabilities it reports out to shader model 2.

I was able to get around this by commenting out the checks for these extensions in the wined3d files of the OSE, and rebuilding/reinstalling the win.x86 guest additions, however there do appear to be some compatability and performance issues with this (unsurprisingly). In addition to the 2 extensions listed above, there are numerous other extensions used by wined3d (in src\VBox\Additions\WINNT\Graphics\Wine\wined3d\directx.c) that are also not passed through to the guest, although I don’t know for sure what or if anything else is being broken by this.

src\VBox\Additions\WINNT\Graphics\Wine\wined3d\glsl_shader.c:
    if (/*(gl_info->supported[NV_FRAGMENT_PROGRAM] && !gl_info->supported[NV_FRAGMENT_PROGRAM2])
            ||*/ gl_info->limits.arb_ps_instructions <= 512)
        pCaps->PixelShaderVersion = WINED3DPS_VERSION(2,0);
    else
        pCaps->PixelShaderVersion = WINED3DPS_VERSION(3,0);

…

    if (/*(gl_info->supported[NV_VERTEX_PROGRAM2] && !gl_info->supported[NV_VERTEX_PROGRAM3])
            ||*/ gl_info->limits.arb_ps_instructions <= 512)
        pCaps->VertexShaderVersion = WINED3DVS_VERSION(2,0);
    else
        pCaps->VertexShaderVersion = WINED3DVS_VERSION(3,0);
src\VBox\Additions\WINNT\Graphics\Wine\wined3d\arb_program_shader.c
        /*if (gl_info->supported[NV_FRAGMENT_PROGRAM2])
        {
            pCaps->PixelShaderVersion    = WINED3DPS_VERSION(3,0);
            TRACE_(d3d_caps)("Hardware pixel shader version 3.0 enabled (NV_FRAGMENT_PROGRAM2)\n");
        }
        Else*/ if (ps_consts >= 32)
        {
            /* Shader Model 2.0 requires at least 32 pixel shader constants */
            pCaps->PixelShaderVersion    = WINED3DPS_VERSION(3,0);
            TRACE_(d3d_caps)("Hardware pixel shader version 2.0 enabled (ARB_PROGRAM)\n");
        }

…

        /*if (gl_info->supported[NV_VERTEX_PROGRAM3])
        {
            pCaps->VertexShaderVersion = WINED3DVS_VERSION(3,0);
            TRACE_(d3d_caps)("Hardware vertex shader version 3.0 enabled (NV_VERTEX_PROGRAM3)\n");
        }
        Else*/ if (vs_consts >= 256)
        {
            /* Shader Model 2.0 requires at least 256 vertex shader constants */
            pCaps->VertexShaderVersion = WINED3DVS_VERSION(3,0);
            TRACE_(d3d_caps)("Hardware vertex shader version 2.0 enabled (ARB_PROGRAM)\n");
        }

comment:8 Changed 2 years ago by misha

Thanks for your research and for the info. We will check if we can easily add support for NV_*_PROGRAM easily.

Changed 17 months ago by linuxloon

VB log file

comment:9 Changed 17 months ago by linuxloon

VB 4.2.4 , kernel 3.6.5-2 Host is fedora 16 VM is win7 message in messages is

kernel: [ 989.349111] ShCrOpenGL[15247]: segfault at b460020 ip 0000000041946e31 sp 00007fa86bbac4e8 error 4 in glo9wvHd (deleted)[41945000+2000]

attached the VB log file

comment:10 Changed 5 months ago by efferre

Which is the status for this bug? I still se shader level 2.0 supported with latest VirtualBox 4.3.2 and Guest Additions 4.3.2 r90405

comment:11 Changed 5 months ago by efa

MS Flight was a total selling failure, anyway about every recent game will use a Shader level >2, so I think must be fixed

comment:12 Changed 4 weeks ago by msteele

Is there any progress on SM3 support? I'd like to ditch Parallels and Fusion in favor of VirtualBox for our Macs, but this limitation is a deal killer.

Thank you for your ongoing support of this great product.

Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use