protonscr

Halo Infinite needs ID3D11Device5::CreateFence()

dxvkclosed
doitsujin/dxvk#2409 · opened 2021-12-22 by nsivov · updated 2022-07-21 · 2 comments · github
Nnsivov 2021-12-22 github

This was tested against current proton experimental_6.3. The game is using d3d11 for intro video player, to get as far as CreateFence() you'll need attached winegstreamer workaround for color format. With that next crash according to game's own log is this:

d3d11Device5->CreateFence( m_state->m_sampleReadFenceValue++, D3D11_FENCE_FLAG_SHARED, __uuidof(ID3D11Fence), reinterpret_cast<void**>(m_state->m_sampleReadFence.GetAddressOf())) failed (HR=0x80004001): Not implemented.

Corresponding dxvk error on missing method appears as well.

0001-winegstreamer-Return-D3DFMT_A8B8G8R8-from-the-source.txt
crash_info_2 (1).txt

Ddoitsujin maintainer 2021-12-22 github

I'm aware and there's a partial implementation here, but it's unlikely to be useful since we'd need support for shared fences on the Vulkan side in order to imlement D3D11<->D3D12 interop, as well as large amounts of work on the vkd3d-proton side to support this.

Ddoitsujin maintainer 2022-07-21 github

Merged fence stuff into master, I'll probably bug Derek to update his patches for the 1.10.x branch too.

Error codes