https://bugs.winehq.org/show_bug.cgi?id=44146
Bug ID: 44146 Summary: Crysis 2: DX11 is a slideshow Product: Wine Version: 3.0-rc1 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3d Assignee: wine-bugs@winehq.org Reporter: christian.frank@gmx.de Distribution: ---
Hi,
trying to play Crysis 2 with DX11 is actually impossible, it is a complete slideshow. Switching from DX9 to DX11 the FPS drop from ~ 40 to ~ 8 fps.
Tons of fixmes are spit out:
0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[31]" might be used before being initialized 0043:fixme:d3d11:d3d_blend_state_create Color mask 0 not supported for render target 4. 0043:fixme:d3d11:d3d_blend_state_create Color mask 0 not supported for render target 5. 0043:fixme:d3d11:d3d_blend_state_create Color mask 0 not supported for render target 6. 0043:fixme:d3d11:d3d_blend_state_create Color mask 0 not supported for render target 7. 0048:fixme:d3d_shader:print_glsl_info_log Info log received from GLSL shader #24: 0048:fixme:d3d_shader:print_glsl_info_log Vertex info 0048:fixme:d3d_shader:print_glsl_info_log ----------- 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[1]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[2]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[3]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[4]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[5]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[6]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[7]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[8]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[9]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[10]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[11]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[12]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[13]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[14]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[15]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[16]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[17]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[18]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[19]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[20]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[21]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[22]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[23]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[24]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[25]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[26]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[27]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[28]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[29]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[30]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[31]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0048:fixme:d3d_shader:print_glsl_info_log Fragment info 0048:fixme:d3d_shader:print_glsl_info_log ------------- 0048:fixme:d3d_shader:print_glsl_info_log 0(24) : warning C7050: "R0.yzw" might be used before being initialized 0043:fixme:d3d11:d3d_blend_state_create Color mask 0 not supported for render target 4. 0043:fixme:d3d11:d3d_blend_state_create Color mask 0 not supported for render target 5. 0043:fixme:d3d11:d3d_blend_state_create Color mask 0 not supported for render target 6. 0043:fixme:d3d11:d3d_blend_state_create Color mask 0 not supported for render target 7. 0048:fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x800000c2. 0048:fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x00155543. 0048:fixme:d3d_shader:print_glsl_info_log Info log received from GLSL shader #27: 0048:fixme:d3d_shader:print_glsl_info_log Vertex info 0048:fixme:d3d_shader:print_glsl_info_log ----------- 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[1].zw" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[2]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[3]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[4]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[5]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[6]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[7]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[8]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[9]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[10]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[11]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[12]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[13]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[14]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[15]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[16]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[17]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[18]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[19]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[20]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[21]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[22]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[23]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[24]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[25]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[26]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[27]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[28]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[29]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[30]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0(20) : warning C7050: "vs_out[31]" might be used before being initialized 0048:fixme:d3d_shader:print_glsl_info_log 0048:fixme:d3d_shader:print_glsl_info_log Fragment info 0048:fixme:d3d_shader:print_glsl_info_log ------------- 0048:fixme:d3d_shader:print_glsl_info_log 0(26) : warning C7050: "R0.yzw" might be used before being initialized 0043:fixme:d3d11:d3d_blend_state_create Color mask 0 not supported for render target 4. 0043:fixme:d3d11:d3d_blend_state_create Color mask 0 not supported for render target 5. 0043:fixme:d3d11:d3d_blend_state_create Color mask 0 not supported for render target 6. 0043:fixme:d3d11:d3d_blend_state_create Color mask 0 not supported for render target 7.
My GPU: Nvidia GTX 970 (384.98) Memory: 16GB CPU: Core i5 3570k
Opensuse Tumbleweed, latest Snapshot
Many thanks ! Christian
https://bugs.winehq.org/show_bug.cgi?id=44146
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |performance CC| |dark.shadow4@web.de
--- Comment #1 from Fabian Maurer dark.shadow4@web.de --- How does it run with wine-staging and CSMT?
https://bugs.winehq.org/show_bug.cgi?id=44146
--- Comment #2 from Christian christian.frank@gmx.de --- (In reply to Fabian Maurer from comment #1)
How does it run with wine-staging and CSMT?
Hi,
actually using non-staging enabling or disabling csmt doesn't matter. It's a slideshow.
In wine staging the perf was much better(25-30 fps), enabling or disabling csmt also doesn't make that much of a difference there iirc.
Cu, Christian
https://bugs.winehq.org/show_bug.cgi?id=44146
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |joseph.kucia@gmail.com Ever confirmed|0 |1
--- Comment #3 from Józef Kucia joseph.kucia@gmail.com --- It's probably the same issue as in bug 42592.
https://bugs.winehq.org/show_bug.cgi?id=44146
--- Comment #4 from Christian christian.frank@gmx.de --- (In reply to Józef Kucia from comment #3)
It's probably the same issue as in bug 42592.
Sadly i can not check that theory cause i don't own The Witcher 3.
I usually use wine-staging and the dx11 perf never was really good but i haven't seen such a slideshow in wine-staging in the games i tried.
For Wine staging the fps have been bad with the following showing up in different games (Crysis2, crysis 3, prey 2017):
CPU load:High to very high (utilizing 3-4 of my 4 cores) GPU load: Low (mostly 30-40%)
So either wine is not feeding the driver fast enough or the driver is not able to feed the gpu fast enough.There is a huge bottleneck somewhere. If a look at the fps of the games they all would be really playable if the gpu would be able to run at 100% load like it is on Windows.
In that specific case with wine-dev and crysis 2, the gpu is loaded ~ 50% but the games is super slow.
https://bugs.winehq.org/show_bug.cgi?id=44146
--- Comment #5 from Józef Kucia joseph.kucia@gmail.com --- (In reply to Christian from comment #4)
(In reply to Józef Kucia from comment #3)
It's probably the same issue as in bug 42592.
Sadly i can not check that theory cause i don't own The Witcher 3.
You could try the patch attached to bug 42592 with vanilla Wine.
https://bugs.winehq.org/show_bug.cgi?id=44146
--- Comment #6 from Christian christian.frank@gmx.de --- (In reply to Józef Kucia from comment #5)
(In reply to Christian from comment #4)
(In reply to Józef Kucia from comment #3)
It's probably the same issue as in bug 42592.
Sadly i can not check that theory cause i don't own The Witcher 3.
You could try the patch attached to bug 42592 with vanilla Wine.
I did that and the fps have increased from 8 to 8 - 15 fps. It is still a slideshow but iirc, that hack didn't help much for nvidia cards for witcher 3 also. You even can see the issue in the menu, wine is not able to even deliver 60fps there.
https://bugs.winehq.org/show_bug.cgi?id=44146
tokktokk fdsfgs@krutt.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fdsfgs@krutt.org
https://bugs.winehq.org/show_bug.cgi?id=44146
--- Comment #7 from Christian christian.frank@gmx.de --- FYI, with 3.2 the performance increased. In the menu 60fps are reached now (and stuck to 60fps, looks like there is an dx11 issue in wine which caps at 60fps, no matter that vsync is disabled).
In game i see 25-35 fps now, but the gpu load is so low that the card even clocks down now to power save levels :( .
https://bugs.winehq.org/show_bug.cgi?id=44146
Anders Dahlberg dahlberg@lysator.liu.se changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dahlberg@lysator.liu.se
--- Comment #8 from Anders Dahlberg dahlberg@lysator.liu.se --- (In reply to Christian from comment #7)
FYI, with 3.2 the performance increased. In the menu 60fps are reached now (and stuck to 60fps, looks like there is an dx11 issue in wine which caps at 60fps, no matter that vsync is disabled).
In game i see 25-35 fps now, but the gpu load is so low that the card even clocks down now to power save levels :( .
Just FYI - I have seen the same in TW3. Now when we are at least two that see the same thing I have reported a bug here: https://bugs.winehq.org/show_bug.cgi?id=44623
https://bugs.winehq.org/show_bug.cgi?id=44146
--- Comment #9 from Christian christian.frank@gmx.de --- FYI, the game runs absolutely fantastic with dxvk, everything can be pushed to ultra except of objects (tesselation not fully implemented yet) and my card is fully utilized and i barely fall below 60fps, most of the time ~ 70-80, indoor up to 110fps. That guy does an amazing job.
https://bugs.winehq.org/show_bug.cgi?id=44146
--- Comment #10 from Andrey Gusev andrey.goosev@gmail.com --- Still reproducible in 4.0-rc6-18-g8e0139af2a
https://bugs.winehq.org/show_bug.cgi?id=44146
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #11 from joaopa jeremielapuree@yahoo.fr --- Does the bug still occur with wine-4.20?
https://bugs.winehq.org/show_bug.cgi?id=44146
--- Comment #12 from joaopa jeremielapuree@yahoo.fr --- Does the bug still occur with wine-7.0-rc5?