Skip to content

[d3d10] fix d3d10core crashing every d3d10 game - #83

Merged
pythonlover02 merged 1 commit into
pythonlover02:mainfrom
The412Banner:fix-d3d10core-device
Oct 12, 2026
Merged

pythonlover02 merged 1 commit into
pythonlover02:mainfrom
The412Banner:fix-d3d10core-device

Conversation

@The412Banner

Copy link
Copy Markdown

Hey, every D3D10 game crashes on start with Sarek 1.13.0 and 1.14.0.

Since #41, d3d10core calls D3D11CoreCreateDevice with the newer 10 argument version, but Sarek's d3d11.dll still exports the old 6 argument one. So the device lands in the wrong spot, d3d10core gets back a null device and crashes on the next line.

This puts the call back to the 6 argument version and links d3d10core against Sarek's own d3d11 again (the toolchain's libd3d11.a has the 10 argument one, which is why the 32-bit build needs this).

We've been shipping a patched 1.13.0 in Bannerlator and D3D10 games work again with it, everything else unchanged. If you'd rather update d3d11's export to the 10 argument version instead, that works too.

Thanks for keeping Sarek going!

d3d10core was calling D3D11CoreCreateDevice with the newer 10 argument
version, but sarek's d3d11.dll still exports the old 6 argument one.
The device ended up in the wrong spot, so every d3d10 game got a null
device and crashed right away. Go back to the 6 argument call and link
d3d10core against sarek's own d3d11 again.
@pythonlover02 pythonlover02 self-assigned this Oct 12, 2026
@pythonlover02 pythonlover02 added the bug Something isn't working label Oct 12, 2026
@pythonlover02

pythonlover02 commented Oct 12, 2026 •

Copy link
Copy Markdown
Owner

Hey, every D3D10 game crashes on start with Sarek 1.13.0 and 1.14.0.

Since #41, d3d10core calls D3D11CoreCreateDevice with the newer 10 argument version, but Sarek's d3d11.dll still exports the old 6 argument one. So the device lands in the wrong spot, d3d10core gets back a null device and crashes on the next line.

This puts the call back to the 6 argument version and links d3d10core against Sarek's own d3d11 again (the toolchain's libd3d11.a has the 10 argument one, which is why the 32-bit build needs this).

We've been shipping a patched 1.13.0 in Bannerlator and D3D10 games work again with it, everything else unchanged. If you'd rather update d3d11's export to the 10 argument version instead, that works too.

yeah this was kinda my bad, it looked fine so i merged it. i don't have any d3d10 games to test with right now. i've got the whole range from d3d3 to d3d11 except d3d10, mostly because it was never that popular as an api to begin with.

and since d3d10 in sarek is basically done and hasn't changed in a while, no point keeping d3d10 test games around if i don't play them and i dont need them for testing. gonna do a small release soon.

Thanks for keeping Sarek going!

thanks for your help mate

edit: you might want to use 1.14.0 or the new release instead of 1.13.0, as it fixes OOMs on several games on low memory systems

@pythonlover02
pythonlover02 merged commit a9d2083 into pythonlover02:main Oct 12, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants