Skip to content

[D3D11] Microsoft Flight Simulator Game of the Year Edition (1250410): Visual artifacting between production logos. #4276

@redmcg

Description

@redmcg

Software information

Microsoft Flight Simulator (1250410)

System information

  • GPU/Driver: Steam Deck OLED
  • Wine/DXVK version: Proton Experimental 9.0

Apitrace file(s)

link (may expire, I can refresh)

Log files

steam-1250410.log

When first starting up Microsoft Flight Simulator on the Steam Deck OLED, there is a garbled screen displayed prior to the first frame of the first video (which is the XBOX logo).

I have isolated this to a shared texture that is created with MiscFlags = D3D11_RESOURCE_MISC_SHARED. Below is an extract from the linked apitrace:

16576 ID3D11Device5::CreateTexture2D(this = 0x53ed498, pDesc = &{Width = 3840, Height = 2160, MipLevels = 1, ArraySize = 1, Format = DXGI_FORMAT_B8G8R8A8_UNORM, SampleDesc = {Count = 1, Quality = 0}, Usage = D3D11_USAGE_DEFAULT, BindFlags = D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_RENDER_TARGET, CPUAccessFlags = 0x0, MiscFlags = D3D11_RESOURCE_MISC_SHARED}, pInitialData = NULL, ppTexture2D = &0x5394ac0) = S_OK
16577 ID3D11Texture2D1::QueryInterface(this = 0x5394ac0, riid = IID_IDXGIResource, ppvObj = &0x5394be0) = S_OK
16578 IDXGIResource1::GetSharedHandle(this = 0x5394be0, pSharedHandle = &0x40000002) = S_OK

The texture does not appear to be initialized and the garbled screen is the result of displaying the memory's previous content. I'm able to resolve this with the attached patch (which writes all zeros to a shared texture on creation):
msfs_hacky_fix.txt

Note that this only appears to happen with AMD GPUs. I have not dug into why that is (but presumably NVIDIA clears the texture first).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions