[nine] Zero no Kiseki broken graphics
System information
System:
Host: Linux Kernel: 5.4.28 x86_64 bits: 64 compiler: gcc v: 9.2.0
Desktop: Spectrwm 3.3.0 dm: startx Distro: Slackware 14.2
CPU:
Topology: 6-Core model: AMD FX-6350 bits: 64 type: MCP arch: Bulldozer
L2 cache: 2048 KiB
flags: avx lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
bogomips: 50631
Speed: 1809 MHz min/max: 1400/4200 MHz Core speeds (MHz): 1: 1644 2: 1644
3: 1895 4: 1738 5: 1435 6: 1771
Graphics:
Device-1: AMD Vega 10 XL/XT [Radeon RX Vega 56/64] vendor: Micro-Star MSI
driver: amdgpu v: kernel bus ID: 03:00.0 chip ID: 1002:687f
Display: server: X.Org 1.20.99.1 driver: modesetting compositor: compton
resolution: 1680x1050~60Hz
OpenGL: renderer: Radeon RX Vega (VEGA10 DRM 3.35.0 5.4.28 LLVM 10.0.0)
v: 4.6 Mesa 20.2.0-devel (git-78c46c2126) direct render: Yes
If applicable
- Wine version:
wine-5.8
Describe the issue
When playing the game Zero no Kiseki using gallium nine instead of wined3d and the 1.0.1 version of the geofront English patch the game will produce broken flashing graphics in certain areas. Only when the controller is unplugged entering these areas at all will break the graphics and when the controller is plugged in entering a battle in these areas will still break the graphics. If blindly exiting the area or ending the battle the graphics will appear correctly again.
Using the environment variables AMD_DEBUG=nodcc
or AMD_DEBUG=notiling
will entirely solve the issue. Other AMD_DEBUG
variables I tried mostly had no effect, forcedma
broke the graphics in other ways and nowc
crashed the game on start. I also tried csmt_force=0
without any changes.
I was able to reproduce this bug with radeonsi, it crashes with the llvmpipe when using D3D_ALWAYS_SOFTWARE=1
.
I tried to capture the issue with apitrace, but the game replays correctly without showing the issue regardless if I am using nine or not.
Note that I am not using the newer 1.0.2 version of the patch because it contains regressions that crash the game making it hard to test.
Regression
Unknown, bisecting back far enough with llvm 10 might not be possible.
Screenshots/video files (if applicable)
the issue
what it should look like
Any extra information would be greatly appreciated
The patch provides its own DINPUT8.dll
and requires dinput8 to be set to native or the patch will not be correctly applied. It also requires native versions of both amstream, quartz and lavfilters to be installed in the wine prefix to play the videos.
The English patch can be found here: https://geofront.esterior.net/
Also d9vk instantly crashes with this game and wined3d throttles a single CPU core loudly at over 100%.