VirtualBox

Ignore:
Timestamp:
Jul 10, 2024 4:37:59 PM (7 months ago)
Author:
vboxsync
Message:

Devices/Graphics: suppress multisample flag for some formats. bugref:10717

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-dx-dx11.cpp

    r105118 r105264  
    849849}
    850850
     851static int dxFormatAllowMultisample(DXGI_FORMAT dxgiFormat)
     852{
     853    /* Windows 11 guest does not allow multisample flag for a number of formats.
     854     * D3D11 implementation on non-Windows hosts might return such flag.
     855     */
     856    switch (dxgiFormat)
     857    {
     858        case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS:
     859        case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT:
     860        case DXGI_FORMAT_R24_UNORM_X8_TYPELESS:
     861        case DXGI_FORMAT_X24_TYPELESS_G8_UINT:
     862            return false;
     863        default: break;
     864    }
     865    return true;
     866}
     867
    851868static int vmsvgaDXCheckFormatSupport(PVMSVGA3DSTATE pState, SVGA3dSurfaceFormat enmFormat, uint32_t *pu32DevCap)
    852869{
     
    893910                UINT NumQualityLevels;
    894911                hr = pDevice->CheckMultisampleQualityLevels(dxgiFormat, 2, &NumQualityLevels);
    895                 if (SUCCEEDED(hr) && NumQualityLevels != 0)
     912                if (SUCCEEDED(hr) && NumQualityLevels != 0 && dxFormatAllowMultisample(dxgiFormat))
    896913                    *pu32DevCap |= SVGA3D_DXFMT_MULTISAMPLE;
    897914            }
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette