https://bugs.winehq.org/show_bug.cgi?id=41063
Bug ID: 41063 Summary: Batman -telltale series needs working function d3d11:d3d10_multithread_SetMultithreadProtected Product: Wine Version: 1.9.15 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3dx11 Assignee: wine-bugs@winehq.org Reporter: winetest@luukku.com Distribution: ---
I bought this game and it seems to be blocked currently by bug 38648.
The console output isnt very verbose.
fixme:dxgi:DXGID3D10CreateDevice Ignoring flags 0x20. fixme:dxgi:dxgi_check_feature_level_support Ignoring adapter type. fixme:dxgi:dxgi_device_init Ignoring adapter type. fixme:d3d11:device_parent_create_swapchain_texture device_parent 0x9caf00, container_parent 0x9cd410, wined3d_desc 0x33e050, wined3d_texture 0xa1b0850 partial stub! fixme:d3d11:device_parent_create_swapchain_texture Implement DXGI<->wined3d usage conversion. fixme:d3d11:d3d10_multithread_SetMultithreadProtected iface 0x9caec0, protect 0x1 stub! fixme:dbghelp:elf_search_auxv can't find symbol in module fixme:dbghelp:MiniDumpWriteDump NIY MiniDumpWithDataSegs fixme:system:SystemParametersInfoW Unknown action: 116
Wine currently has a stub function.
wine-staging 1.9.15.
https://bugs.winehq.org/show_bug.cgi?id=41063
winetest@luukku.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Batman -telltale series |Batman -telltale series |needs working function |doesnt start |d3d11:d3d10_multithread_Set | |MultithreadProtected |
https://bugs.winehq.org/show_bug.cgi?id=41063
winetest@luukku.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Depends on| |40996
--- Comment #1 from winetest@luukku.com --- I believe that this bug is actully blocked by 40996
https://bugs.winehq.org/show_bug.cgi?id=41063 Bug 41063 depends on bug 40996, which changed state.
Bug 40996 Summary: Deus Ex:Human Revolution fails to start when using DX11 renderer https://bugs.winehq.org/show_bug.cgi?id=40996
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #2 from winetest@luukku.com --- (In reply to winetest from comment #1)
I believe that this bug is actully blocked by 40996
bug 40996 got fixed.
I retested this bug against wine-staging 2.0.rc1. And it's not so clear why it fails to start. I keep testing until it gets fixed.
https://bugs.winehq.org/show_bug.cgi?id=41063
caleb@phobeus.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |caleb@phobeus.de
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #3 from winetest@luukku.com --- Still doesnt work wine-staging 2.1. It now prints an error message: 0x800405. Or something similar. It was so last time I tried too I just didnt report back at the time.
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #4 from winetest@luukku.com --- (In reply to winetest from comment #3)
Still doesnt work wine-staging 2.1. It now prints an error message: 0x800405. Or something similar. It was so last time I tried too I just didnt report back at the time.
Can't see the error message anymore.
fixme:dxgi:DXGID3D10CreateDevice Ignoring flags 0x20. fixme:dxgi:dxgi_check_feature_level_support Ignoring adapter type. fixme:dxgi:dxgi_device_init Ignoring adapter type. fixme:d3d11:device_parent_create_swapchain_texture device_parent 0x9df6c0, container_parent 0x9e30a0, wined3d_desc 0x33e030, texture flags 0, wined3d_texture 0x9ef300 partial stub! fixme:d3d11:device_parent_create_swapchain_texture Implement DXGI<->wined3d usage conversion. fixme:dbghelp:elf_search_auxv can't find symbol in module fixme:dbghelp:MiniDumpWriteDump NIY MiniDumpWithDataSegs
wine-staging 2.5.
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #5 from winetest@luukku.com --- Doesn't start wine-staging 2.7.
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #6 from winetest@luukku.com --- (In reply to winetest from comment #5)
Doesn't start wine-staging 2.7.
Doesn't start with wine-staging 2.8 either. Not too revealing console output.
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #7 from winetest@luukku.com --- (In reply to winetest from comment #6)
(In reply to winetest from comment #5)
Doesn't start wine-staging 2.7.
Doesn't start with wine-staging 2.8 either. Not too revealing console output.
The same wine-staging 2.9.
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #8 from winetest@luukku.com --- Not starting wine-staging 2.10
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #9 from winetest@luukku.com --- (In reply to winetest from comment #8)
Not starting wine-staging 2.10
The same wine-staging 2.11.
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #10 from winetest@luukku.com --- (In reply to winetest from comment #9)
(In reply to winetest from comment #8)
Not starting wine-staging 2.10
The same wine-staging 2.11.
The same wine-staging 2.12.
https://bugs.winehq.org/show_bug.cgi?id=41063
tokktokk fdsfgs@krutt.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fdsfgs@krutt.org
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #11 from caleb@phobeus.de --- Seems still the same situation with Wine 2.19 Staging
https://bugs.winehq.org/show_bug.cgi?id=41063
Luticus getjoe@live.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |getjoe@live.com
--- Comment #12 from Luticus getjoe@live.com --- I'm still seeing this in wine 2.20.
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #13 from tokktokk fdsfgs@krutt.org --- The Walking Dead: A New Frontier still doesn't start with the same log with 3.3-staging
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #14 from winetest@luukku.com --- 00ca:fixme:wintrust:SOFTPUB_VerifyImageHash Cannot verify hash for pszObjId="1.3.6.1.4.1.311.2.1.25" 00ca:fixme:wintrust:SOFTPUB_VerifyImageHash Cannot verify hash for pszObjId="1.3.6.1.4.1.311.2.1.25" 00c4:fixme:ver:GetCurrentPackageId (0x33fe14 (nil)): stub 0065:fixme:dwmapi:DwmExtendFrameIntoClientArea (0x2018c, 0x33cb4c) stub 0065:fixme:dwmapi:DwmExtendFrameIntoClientArea (0x3018c, 0x33ddf0) stub 00cd:fixme:ver:GetCurrentPackageId (0x33fe14 (nil)): stub 0065:fixme:dwmapi:DwmExtendFrameIntoClientArea (0x30186, 0x33cb4c) stub 0065:fixme:dwmapi:DwmExtendFrameIntoClientArea (0x40186, 0x33ddf0) stub 00d3:fixme:ver:GetCurrentPackageId (0x33fe14 (nil)): stub 0065:fixme:dwmapi:DwmExtendFrameIntoClientArea (0x5018c, 0x33cb4c) stub
doesn't start wine-staging 3.6
https://bugs.winehq.org/show_bug.cgi?id=41063
Toni eldrad@autistici.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |eldrad@autistici.org
--- Comment #15 from Toni eldrad@autistici.org --- The game does start on wine 3.5 with dxvk, so it's probably dxgi related. Looks like the last calls before the exception with d3d11 and dxgi debug enabled are:
002e:trace:dxgi:dxgi_adapter_GetDesc1 iface 0x6426000, desc 0x33ec00. 002e:trace:d3d11:d3d11_immediate_context_Release 0x6422910 decreasing refcount to 0. 002e:trace:dxgi:dxgi_device_Release 0x64228a0 decreasing refcount to 2. 002e:trace:dxgi:dxgi_device_Release 0x64228a0 decreasing refcount to 1. 002f:fixme:dbghelp:elf_search_auxv can't find symbol in module
I played a bit with how GetDesc1 fills in the values but wasn't successful, maybe the game is finding something it doesn't like in some other description struct from d3d11/dxgi but I'm not sure. It does look like after GetDesc1 it bails out and raises an internal exception (it can be extensively seen with +seh but it looks incomprehensible to me).
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #16 from Toni eldrad@autistici.org --- Created attachment 61173 --> https://bugs.winehq.org/attachment.cgi?id=61173 +dxgi,+d3d11 log
attaching full +dxgi,+d3d11 log
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #17 from Toni eldrad@autistici.org --- Created attachment 61207 --> https://bugs.winehq.org/attachment.cgi?id=61207 +dxgi,+d3d11 log with 'fake' ID3D11Device1 and ID3D11DeviceContext1 ifaces
I have debugged this a bit further and seems missing ID3D11Device1 and/or ID3D11DeviceContext1 are the first cause of exception.
By hacking the code to return the interfaces without the '1' I could get the game to run a bit further (opens a window and shows first loading screen, although then gets stuck).
Now this needs some more debugging, but for now I'm posting this info in case it helps anyone.
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #18 from Toni eldrad@autistici.org --- Not sure I have made myself very clear, I hacked wine to return the already implemented interfaces when it's queried for the unimplemented ones.
Can't get a diff atm since I have other patches applied (staging 3.6+ and some others) but will do so 'soon' if this doesn't progress further.
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #19 from Toni eldrad@autistici.org --- Not evident from the wine log, but seems like the game now gets stuck when calling ID3D11DeviceContext1::UpdateSubresource1, unsurprising because I didn't implement the function as explained above.
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #20 from Nikolay Sivov bunglehead@gmail.com --- Created attachment 61213 --> https://bugs.winehq.org/attachment.cgi?id=61213 patch
Could you attach a log with this patch?
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #21 from Toni eldrad@autistici.org --- Created attachment 61216 --> https://bugs.winehq.org/attachment.cgi?id=61216 +dxgi,+d3d11 log patch 61213 wine3.6
Nikolay, thank you for taking the time to look into this, I got a log with your patch applied.
With the patch applied shows an exception after "fixme:d3d:wined3d_render_target_view_cs_init Swapchain views not supported" as you can see in the log.
When I also add fake interface support for ID3D11DeviceContext1 it will also run further and do an exception after ID3D11DeviceContext1::UpdateSubresource1 as in the log I sent before (also shows the message about not supported Swapchain views in that case).
I'm attaching further logs and apitraces in both situations.
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #22 from Toni eldrad@autistici.org --- Created attachment 61217 --> https://bugs.winehq.org/attachment.cgi?id=61217 +dxgi,+d3d11 log patch 61213 wine3.6 + fake ID3D11Context1
log with fake ID3D11Context1 returned on QueryInterface
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #23 from Toni eldrad@autistici.org --- Created attachment 61218 --> https://bugs.winehq.org/attachment.cgi?id=61218 apitrace with patch 61213
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #24 from Toni eldrad@autistici.org --- Created attachment 61219 --> https://bugs.winehq.org/attachment.cgi?id=61219 apitrace with patch 61213 + fake iD3D11Context1
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #25 from Toni eldrad@autistici.org --- About the apitraces, I dumped them to text so you cannot replay them but you can read them on a text editor without apitrace itself.
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #26 from Toni eldrad@autistici.org --- Btw, comparing the apitraces you can see without fake ID3D11Context1 it's still stopping just before, or at, the call to ID3D11DeviceContext1::ClearRenderTargetView, so possibly the swapchain message is not relevant at least at this point.
https://bugs.winehq.org/show_bug.cgi?id=41063
Toni eldrad@autistici.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #61219|0 |1 is obsolete| |
--- Comment #27 from Toni eldrad@autistici.org --- Created attachment 61220 --> https://bugs.winehq.org/attachment.cgi?id=61220 apitrace with patch 61213 + fake iD3D11Context1
replacing wrongly uploaded wine-staging-3.6 apitrace with wine-vanilla-3.6 since vanilla works the same, in case it would complicate things
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #28 from Toni eldrad@autistici.org --- All in all, it seems like the game is blindly using the ID3D11Device1 and ID3D11DeviceContext1 ifaces, that's why it's always raising an exception just before calling any ID3D11Device1 or ID3D11DeviceContext1 method (and then doesn't seem to use any ID3D11Device1 specific methods so it will hit the missing ID3D11DeviceContext1::UpdateSubresource1 later on).
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #29 from Nikolay Sivov bunglehead@gmail.com --- Created attachment 61221 --> https://bugs.winehq.org/attachment.cgi?id=61221 patch #2
Here is the next stub. You could try to forward to the old method I suppose.
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #30 from Toni eldrad@autistici.org --- Yes, using your two patches and forwarding UpdateSubresource1 to UpdateSubresource makes the game start.
There seem to be other problems now like the game is too dark and very slow but it runs. A quick analysis of apitrace looks like that's the only ID3D11DeviceContext1 method it's using and it's never using the flags, but that was just a quick look, will debug a bit more later to see if any other methods from Device1 or DeviceContext1 are being used.
About DeviceContext1 methods, it looks like the extra parameters compared to DeviceContext can safely be ignored (according to api docs).
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #31 from Toni eldrad@autistici.org --- After further inspection, I don't see anything wrong related to the ID3D11Device1 ID3D11DeviceContext1 ifaces. The application only seems to use UpdateSubresource1 from the new functions provided by those interfaces, at least without extended running.
Since there are other graphical errors after this, but I don't think are related to this bug, which is just about the game not starting, I have openend a new bug at bug 45077
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #32 from Toni eldrad@autistici.org --- So, to recap on this bug, I don't think there is much more that can be done atm.
Basically, the game needs ID3D11Device1 and ID3D11DeviceContext1 implementations, sketched by Nikolay Sivov in the patches present here. Also, the game only seems to need ID3D11DeviceContext1:UpdateSubresource1 method actually implemented.
The problem is, without proper full implementation of all methods on those interfaces there could be regressions in some games if they ask for them, gracefully handle the case where they are not present, but use any of the new unimplemented methods otherwise.
Also, for current wine-staging, deferred context also needs ID3D11DeviceContext1 support, so a bit more coding is needed there as well.
So, even if the issue debugging is 'solved' (although futher inspection could result in other conclusion), it can now take some time to properly closing this bug, now it's up to the wine devs. Thank you Nikolay for promtly implementing the interfaces stubs so I could debug this fully. Regarding post-launch rendering problems, a new bug is now opened (bug 45077).
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #33 from Nikolay Sivov bunglehead@gmail.com --- What are the flags it's using for UpdateSubresource1()?
https://bugs.winehq.org/show_bug.cgi?id=41063
--- Comment #34 from Toni eldrad@autistici.org --- (In reply to Nikolay Sivov from comment #33)
What are the flags it's using for UpdateSubresource1()?
The game is not using the flags (always 0)
https://bugs.winehq.org/show_bug.cgi?id=41063
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|directx-d3dx11 |directx-d3d
https://bugs.winehq.org/show_bug.cgi?id=41063
Matteo Bruni matteo.mystral@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Batman -telltale series |Batman - The Telltale |doesnt start |Series requires | |ID3D11DeviceContext1::Updat | |eSubresource1()
https://bugs.winehq.org/show_bug.cgi?id=41063
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |dfb558bbfcf42fba00ad6fda553 | |bbe91b2fb5d53 Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED
--- Comment #35 from Nikolay Sivov bunglehead@gmail.com --- Marking fixed, https://source.winehq.org/git/wine.git/commit/dfb558bbfcf42fba00ad6fda553bbe....
https://bugs.winehq.org/show_bug.cgi?id=41063
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |45077
https://bugs.winehq.org/show_bug.cgi?id=41063
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #36 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 3.9.