https://bugs.winehq.org/show_bug.cgi?id=43042
Bug ID: 43042 Summary: S.T.A.L.K.E.R. Lost Alpha - fails to start when set to DirectX 10.x render mode Product: Wine Version: 2.8 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3d Assignee: wine-bugs@winehq.org Reporter: bob.mt.wya@gmail.com Distribution: ---
Created attachment 58204 --> https://bugs.winehq.org/attachment.cgi?id=58204 wine_stalker_la-dx10_mode-console_log.txt
I've been testing the new release of S.T.A.L.K.E.R. Lost Alpha this week. The game fails to start when set to it's DirectX 10 rendering mode. A dialog box pops up with: Your video card doesn't meet game requirements Try to lower game settings.
Tested with:
[ebuild R #] app-emulation/wine-staging-2.8:2.8::bobwya USE="X alsa cups fontconfig gecko gphoto2 gsm gstreamer jpeg lcms ldap mono mp3 ncurses netapi nls openal opencl opengl osmesa pipelight png pulseaudio realtime run-exes s3tc samba scanner ssl threads truetype udev udisks xcomposite xinerama xml -capi -custom-cflags -dos -odbc -oss -pcap -perl -prelink (-selinux) {-test} -themes -v4l -vaapi" ABI_X86="32 (64) (-x32)" LINGUAS="en en_US -ar -bg -ca -cs -da -de -el -eo -es -fa -fi -fr -he -hi -hr -hu -it -ja -ko -lt -ml -nb_NO -nl -or -pa -pl -pt_BR -pt_PT -rm -ro -ru -sk -sl -sr_RS@cyrillic -sr_RS@latin -sv -te -th -tr -uk -wa -zh_CN -zh_TW" 0 KiB
Nvidia GTX 970M + Nvidia drivers 381.22
glxinfo | grep OpenGL
OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: GeForce GTX 970M/PCIe/SSE2 OpenGL core profile version string: 4.5.0 NVIDIA 381.22 OpenGL core profile shading language version string: 4.50 NVIDIA OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile OpenGL core profile extensions: OpenGL version string: 4.5.0 NVIDIA 381.22 OpenGL shading language version string: 4.50 NVIDIA OpenGL context flags: (none) OpenGL profile mask: (none) OpenGL extensions: OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 381.22 OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20 OpenGL ES profile extensions:
uname -r 4.11.1-gentoo
Tested with: [HKCU\Software\Wine\Direct3D] MaxVersionGL=0x00030002
winetricks list-installed
d3dx10_43 d3dx10 d3dx11_42 d3dx11_43 d3dx9
https://bugs.winehq.org/show_bug.cgi?id=43042
--- Comment #1 from Robert Walker bob.mt.wya@gmail.com --- Console log is from:
export WINEDEBUG=-all,+dxgi,+d3d cd "${WINEPREFIX}/drive_c/Program Files (x86)/S.T.A.L.K.E.R. - Lost Alpha/bins" wine XR_3DA.exe &>wine_stalker_la-dx10_mode-console_log.txt
With in-game setting of DirectX 10 Full Dynamic Lighting.
https://bugs.winehq.org/show_bug.cgi?id=43042
Robert Walker bob.mt.wya@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |http://www.moddb.com/mods/l | |ost-alpha
--- Comment #2 from Robert Walker bob.mt.wya@gmail.com --- The game is a free-to-play standalone mod of the original S.T.A.L.K.E.R. : Shadow of Chernobyl release.
It has dual render paths: DirectX 9.0c and DirectX 10.1.
So perhaps a good target for Wine Developers to test with?
https://bugs.winehq.org/show_bug.cgi?id=43042
o13g86@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |o13g86@gmail.com
--- Comment #3 from o13g86@gmail.com --- Created attachment 58209 --> https://bugs.winehq.org/attachment.cgi?id=58209 DX10 renderer log
S.T.A.L.K.E.R. - Call of Pripyat also crashes with DX10 renderer.
[HKEY_CURRENT_USER\Software\Wine\Direct3D] "MaxShaderModelGS"="5" "MaxShaderModelPS"="5" "MaxShaderModelVS"="5"
Overrides: d3dx9_42 d3dx10_42 d3dx11_42 d3dcompiler42
DX11 renderer works, but complains about dcl_input_ps*.
https://bugs.winehq.org/show_bug.cgi?id=43042
--- Comment #4 from Robert Walker bob.mt.wya@gmail.com --- (In reply to o13g86 from comment #3)
Created attachment 58209 [details] DX10 renderer log
S.T.A.L.K.E.R. - Call of Pripyat also crashes with DX10 renderer.
Technically S.T.A.L.K.E.R. Lost Alpha doesn't crash... No minidump or stacktrace is created :-) Just the dialog window and the program exits "gracefully" - once this is closed.
This looks to be the significant common issue (perhaps): fixme:driver:D3DKMTOpenAdapterFromHdc (0x32f454): stub ERROR: Could Not Get Primary Adapter Handle
https://bugs.winehq.org/show_bug.cgi?id=43042
--- Comment #5 from o13g86@gmail.com --- (In reply to Robert Walker from comment #4)
Technically S.T.A.L.K.E.R. Lost Alpha doesn't crash... No minidump or stacktrace is created :-) Just the dialog window "Your video card doesn't meet game requirements"
This dialog was popping up too until I configured wine properly.
https://bugs.winehq.org/show_bug.cgi?id=43042
--- Comment #6 from Robert Walker bob.mt.wya@gmail.com --- (In reply to o13g86 from comment #5)
(In reply to Robert Walker from comment #4)
Technically S.T.A.L.K.E.R. Lost Alpha doesn't crash... No minidump or stacktrace is created :-) Just the dialog window "Your video card doesn't meet game requirements"
This dialog was popping up too until I configured wine properly.
To quote the S.T.A.L.K.E.R. Lost Alpha Developers:
Q: Will you make LA on CoP engine? A: No. :) LA is based on SoC engine, which makes it truely atmospheric, and memorable.
I tried out the S.T.A.L.K.E.R. - Call of Pripyat. This appears to have a newer Xray renderer engine than that used in S.T.A.L.K.E.R. Lost Alpha. S.T.A.L.K.E.R. Lost Alpha never exposes a DirectX 11.0 renderer option in the main menu... Whereas I can get S.T.A.L.K.E.R. - Call of Pripyat to do so.
Set to the DirectX 10 renderer - the S.T.A.L.K.E.R. - Call of Pripyat Xray Engine crashes immediately on launch. Set to the DirectX 11 renderer - the S.T.A.L.K.E.R. - Call of Pripyat gets to some very messed up menus. Starting an actual game session crashes immediately.
I don't really think it's helpful, therefore, to think of these 2 games as being interchangeable...
https://bugs.winehq.org/show_bug.cgi?id=43042
--- Comment #7 from o13g86@gmail.com --- (In reply to Robert Walker from comment #6)
S.T.A.L.K.E.R. Lost Alpha never exposes a DirectX 11.0 renderer option in the main menu...
Lost Alpha Developer's Cut includes DirectX 11 renderer.
https://bugs.winehq.org/show_bug.cgi?id=43042
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |joseph.kucia@gmail.com
--- Comment #8 from Józef Kucia joseph.kucia@gmail.com --- (In reply to Robert Walker from comment #0)
Nvidia GTX 970M + Nvidia drivers 381.22
[snip]
Tested with: [HKCU\Software\Wine\Direct3D] MaxVersionGL=0x00030002
You should not set MaxVersionGL when using proprietary Nvidia driver. If you really won't to set it use 0x00040005 in order to not limit OpenGL version.
https://bugs.winehq.org/show_bug.cgi?id=43042
--- Comment #9 from Matteo Bruni matteo.mystral@gmail.com --- (In reply to Józef Kucia from comment #8)
(In reply to Robert Walker from comment #0)
Nvidia GTX 970M + Nvidia drivers 381.22
[snip]
Tested with: [HKCU\Software\Wine\Direct3D] MaxVersionGL=0x00030002
You should not set MaxVersionGL when using proprietary Nvidia driver. If you really won't to set it use 0x00040005 in order to not limit OpenGL version.
A bit of an OT digression...
Eh, I don't think setting it to 0x00040005 would make any difference currently, wined3d is creating the GL context with the version set in gl_info->selected_gl_version, which is one of the supported_gl_versions[] elements i.e. version 3.2 at most.
This was intentional; we probably want to change it though. I can look into it.
https://bugs.winehq.org/show_bug.cgi?id=43042
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEEDINFO Ever confirmed|0 |1
--- Comment #10 from Józef Kucia joseph.kucia@gmail.com --- (In reply to Matteo Bruni from comment #9)
A bit of an OT digression...
Eh, I don't think setting it to 0x00040005 would make any difference currently, wined3d is creating the GL context with the version set in gl_info->selected_gl_version, which is one of the supported_gl_versions[] elements i.e. version 3.2 at most.
This was intentional; we probably want to change it though. I can look into it.
Right, I think I used a patched wined3d when testing something similar a while ago.
It's also a less of a problem in the current version of wine because we do not require OpenGL 4.3 for SM5 anymore. However, I think it still disables a better codepath for SM4+ interpolation qualifiers.
In any case it would be a good idea to retest this bug in a correct configuration.
https://bugs.winehq.org/show_bug.cgi?id=43042
--- Comment #11 from Henri Verbeet hverbeet@gmail.com --- (In reply to Józef Kucia from comment #10)
It's also a less of a problem in the current version of wine because we do not require OpenGL 4.3 for SM5 anymore. However, I think it still disables a better codepath for SM4+ interpolation qualifiers.
I don't think it should, but didn't check. When requesting a core profile, the driver is allowed to return a higher version profile as long as it's compatible with the one requested. Of course if there's e.g. GL 4.4 core functionality we'd like to use it would probably be better to list that explicitly in supported_gl_versions[] instead of relying on the driver to give us the highest compatible context.
https://bugs.winehq.org/show_bug.cgi?id=43042
--- Comment #12 from Józef Kucia joseph.kucia@gmail.com --- (In reply to Henri Verbeet from comment #11)
I don't think it should, but didn't check. When requesting a core profile, the driver is allowed to return a higher version profile as long as it's compatible with the one requested. Of course if there's e.g. GL 4.4 core functionality we'd like to use it would probably be better to list that explicitly in supported_gl_versions[] instead of relying on the driver to give us the highest compatible context.
Nvidia proprietary driver returns the requested version. It's allowed by the spec:
If version 3.2 or greater is requested, the context returned may implement any of the following versions:
* The requested profile of the requested version. * The requested profile of any later version, so long as no features have been removed from that later version and profile.
https://bugs.winehq.org/show_bug.cgi?id=43042
--- Comment #13 from Henri Verbeet hverbeet@gmail.com --- (In reply to Józef Kucia from comment #12)
Nvidia proprietary driver returns the requested version. It's allowed by the spec:
If version 3.2 or greater is requested, the context returned may implement any of the following versions: * The requested profile of the requested version. * The requested profile of any later version, so long as no features have been removed from that later version and profile.
Correct.
So: - If you're a user and want to try using the highest available core profile, you should probably set MaxVersionGL to something like 0xffffffff. - We should probably add some more entries to supported_gl_versions[].
https://bugs.winehq.org/show_bug.cgi?id=43042
--- Comment #14 from Robert Walker bob.mt.wya@gmail.com --- Created attachment 59631 --> https://bugs.winehq.org/attachment.cgi?id=59631 stalker_lost_alpha_dxgi_enabled_dx10_wgl_log.txt.xz
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Wine\Direct3D] "csmt"=dword:00000001
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Wine\DllOverrides] "*d3dcompiler_43"="native" "*d3dx9_24"="native" "*d3dx9_25"="native" "*d3dx9_26"="native" "*d3dx9_27"="native" "*d3dx9_28"="native" "*d3dx9_29"="native" "*d3dx9_30"="native" "*d3dx9_31"="native" "*d3dx9_32"="native" "*d3dx9_33"="native" "*d3dx9_34"="native" "*d3dx9_35"="native" "*d3dx9_36"="native" "*d3dx9_37"="native" "*d3dx9_38"="native" "*d3dx9_39"="native" "*d3dx9_40"="native" "*d3dx9_41"="native" "*d3dx9_42"="native" "*d3dx9_43"="native" "d3d10"="native,builtin" "d3d11"="native,builtin"
export WINEDEBUG=+wgl wine start 'C:\Program Files (x86)\S.T.A.L.K.E.R. - Lost Alpha\bins\XR_3DA.exe' &>~/Logs/stalker_lost_alpha_dxgi_enabled_dx10_wgl_log.txt
I've hit a wall now... The game starts but hangs after the splash screen.
The terminal log is spammed with:
fixme:d3d10:d3d10_shader_reflection_GetConstantBufferByIndex
till eventually the game crashes with the standard X-ray Engine debug dialog box.
https://bugs.winehq.org/show_bug.cgi?id=43042
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |NEW Summary|S.T.A.L.K.E.R. Lost Alpha - |S.T.A.L.K.E.R. Lost Alpha |fails to start when set to |requires |DirectX 10.x render mode |d3d10_shader_reflection_Get | |ConstantBufferByIndex()
--- Comment #15 from Józef Kucia joseph.kucia@gmail.com --- (In reply to Robert Walker from comment #14)
I've hit a wall now... The game starts but hangs after the splash screen.
The terminal log is spammed with:
fixme:d3d10:d3d10_shader_reflection_GetConstantBufferByIndex
till eventually the game crashes with the standard X-ray Engine debug dialog box.
Yeah, d3d10 shader reflection is not implemented. The application probably gets into an infinite loop because we always return NULL from d3d10_shader_reflection_GetConstantBufferByIndex().
https://bugs.winehq.org/show_bug.cgi?id=43042
Sergey Isakov isakov-sl@bk.ru changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |isakov-sl@bk.ru
--- Comment #16 from Sergey Isakov isakov-sl@bk.ru --- I think same as bug 39816 in common sense "not implemented shader reflection"
https://bugs.winehq.org/show_bug.cgi?id=43042
pattietreutel katyaberezyaka@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |katyaberezyaka@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=43042
Matteo Bruni matteo.mystral@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|directx-d3d |directx-d3dx10 Status|NEW |RESOLVED Resolution|--- |DUPLICATE
--- Comment #17 from Matteo Bruni matteo.mystral@gmail.com --- Actually this is a duplicate of bug 24013.
*** This bug has been marked as a duplicate of bug 24013 ***
https://bugs.winehq.org/show_bug.cgi?id=43042
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #18 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- Closing Duplicate.
https://bugs.winehq.org/show_bug.cgi?id=43042
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|directx-d3dx10 |directx-d3d-util