Emulator Issues #8688
openTextures missing in Xenoblades Chronicles when using radeonsi
0%
Description
Game Name?
Xenoblade Chronicles
Game ID?
SX4P01
What's the problem? Describe what went wrong in few words.
Textures disappear on characters.
When a characters goes into the entry of Colony 9, textures on him disappear. When he steps back, they reappear.
What did you expect to happen instead?
I expect the textures to not disappear.
What steps will reproduce the problem?
- Character goes into the entry of Colony 9
- Textures on him disappear
- He steps back.
- Textures on him reappear.
Which versions of Dolphin did you test on?
Dolphin 4.0-6765
Does using an older version of Dolphin solve your issue? If yes, which
versions of Dolphin used to work?
I didn't test any other version, so I don't know.
What are your PC specifications? (including, but not limited to: Operating
System, CPU and GPU)
Processor Information:
Name: Intel Core i5-4690K
Vendor: GenuineIntel
CPU Family: 0x6
CPU Model: 0x3c
CPU Stepping: 0x3
CPU Type: 0x0
Speed: 3900 Mhz
4 logical processors
4 physical processors
HyperThreading: Unsupported
FCMOV: Supported
SSE2: Supported
SSE3: Supported
SSSE3: Supported
SSE4a: Unsupported
SSE41: Supported
SSE42: Supported
Operating System Version:
Debian GNU/Linux 8.1 (jessie) (64 bit)
Kernel Name: Linux
Kernel Version: 3.16.0-4-amd64
X Server Vendor: The X.Org Foundation
X Server Release: 11604000
X Window Manager: GNOME Shell
Steam Runtime Version: steam-runtime-release_2015-01-06
Video Card:
Driver: X.Org Gallium 0.4 on AMD TAHITI
Driver Version: 3.0 Mesa 10.3.2
OpenGL Version: 3.0
Desktop Color Depth: 24 bits per pixel
Monitor Refresh Rate: 60 Hz
VendorID: 0x1002
DeviceID: 0x679a
Number of Monitors: 1
Number of Logical Video Cards: 1
Primary Display Resolution: 1920 x 1080
Desktop Resolution: 1920 x 1080
Primary VRAM Not Detected
Sound card:
Audio device: Intel Haswell HDMI
Memory:
RAM: 7842 Mb
Is there any other relevant information? (e.g. logs, screenshots,
configuration files)
Screenshot before entering Colony 9:
http://s29.postimg.org/ug0h5byk7/missing1.png
Screenshot in Colony 9:
http://s10.postimg.org/qucsvl3i1/missing2.png
This issue does not appear when using the internal Intel GPU.
Updated by christian.weinz over 9 years ago
Oops, the GPU wasn't mentioned. It is a Radeon HD7950.
I'd like to add that I suspect this bug to be with the graphics driver radeonsi but I don't know how to gather the necessary information to file a bug with the upstream of radeonsi. If more data is needed, I'd be more than willing to help.
Updated by pauldacheez over 9 years ago
It's more likely that this is just a Dolphin issue, though I don't know why this in particular would happen on one GPU and not another. Have you tried unchecking Graphics > Hacks > "Store EFB Copies to Texture" and turning up the texture cache accuracy?
Updated by christian.weinz over 9 years ago
"Store EFB Copies to Texture only" is unchecked and the texture cache accuracy is turned to max safety. The issues stays unaffected.
Updated by pauldacheez over 9 years ago
- Status changed from New to Questionable
Well, guess it could very well be a radeonsi issue. I'll cc degasus on this in case he feels like filing a bug for you or looking into the issue himself.
Updated by mathieui over 9 years ago
I can confirm I encountered this issue as well on radeonsi (HD 7850), so it is likely either a radeonsi bug or a dolphin bug exposed only when using radeonsi.
Updated by degasus over 9 years ago
Sounds like a driver bug, so next steps are:
Does this work on mesa-git debug build? Such issues offen triggers asserst which are only shown in mesa debug builds.
Was there a shader compilation error?
If both are false, you may need to fetch a fifolog of this scene, and then an apitrace of this fifolog (to only get the correct frame). Afterwards you can help to check which drawcall / shader is defect.
Updated by christian.weinz over 9 years ago
I installed libdrm2_2.4.60-3, built mesa-git with debug options and ran "sudo make install".
If I run dolphin now, the shaders fail to link. The dump is attached.
If I set LIBGL_DRIVERS_PATH, LD_LIBRARY_PATH and EGL_DRIVERS_PATH to the lib directory in mesa-git before running dolphin, I get the following error:
GPU: OGL ERROR: Need OpenGL version 3.
GPU: Does your video card support OpenGL 3?
Updated by degasus over 9 years ago
This failed shader is a recent regression with geometry shaders. Good luck, they are only used in xenoblade if you want to generate stereo.
As you don't support OGL3 in mesa-git, did you set --enable-texture-float in mesa? We strongly depend on OGL3, so this need to be supported. You can debug this OGL3 issue with glxinfo.
Updated by christian.weinz over 9 years ago
I compiled mesa-git following a guide for debian[1]. I used the following command to configure mesa:
./configure --prefix=/usr --enable-driglx-direct --enable-gles1 --enable-gles2 --enable-glx-tls --with-dri-driverdir=/usr/lib/dri --with-egl-platforms='drm x11' --with-gallium-drivers=radeonsi
Now, I added aswell the --enable-texture-float option and tried again. After some seconds after loading the game in dolphin I get several shader problems. Dumps are attached.
I don't want to generate stereo.
Do you have more suggestions for how to configure my mesa build?
[1] https://pkg-xorg.alioth.debian.org/howto/build-mesa.html
Updated by degasus over 9 years ago
Stereo can be enabled/disabled within the GUI options
Updated by christian.weinz over 9 years ago
I totally forgot that I had stereo enabled just for testing purposes, sorry. Now the game starts fine, however the issue remains unaffected.
I compiled mesa with
CFLAGS = -g -O2 -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno-strict-aliasing -fno-builtin-memcmp -DDEBUG
Furthermore, I set
$ export LIBGL_DRIVERS_PATH=lib
$ export LD_LIBRARY_PATH=lib
$ export EGL_DRIVERS_PATH=lib/egl
$ export LIBGL_DEBUG=verbose
$ export MESA_DEBUG=1
$ export EGL_LOG_LEVEL=debug
before running dolphin. Here is the output I got while testing for the issue.
$ dolphin-emu
Gtk-Message: Failed to load module "canberra-gtk-module"
libGL: screen 0 does not appear to be DRI3 capable
libGL: pci id for fd 22: 1002:679a, driver radeonsi
libGL: OpenDriver: trying lib/tls/radeonsi_dri.so
libGL: OpenDriver: trying lib/radeonsi_dri.so
libGL: Can't open configuration file /home/user/.drirc: Arquivo ou diretório não encontrado.
libGL: Can't open configuration file /home/user/.drirc: Arquivo ou diretório não encontrado.
libGL: Using DRI2 for screen 0
Updated by degasus over 9 years ago
So no assert. If you want to do the driver developers a favor, try to get a fifo log and an apitrace dump of this log.
Updated by christian.weinz over 9 years ago
I created the fifo log and the apitrace, compressed their sizes are 19,8 MB and 768,5 MB, respectively. Is there a recommended way to upload them?
I don't exactly know which change caused this but now FPS is limited to 25 and VPS to 50 in the game, though I suspect the upgrade to libdrm2-2.4.60-3 did this.
Updated by degasus over 9 years ago
How many frames did you capture within the apitrace? One or two are usually enough. It should be not more than some MB :/
Updated by christian.weinz over 9 years ago
I recorded 3816 frames with apitrace and 1 frame with the fifo recorder.
I created the apitrace with
$ apitrace trace dolphin-emu
and the started the game and as soon as the game loaded with the issue visible I stopped the command. Any suggestion to record less frames?
I trimmed the apitrace to the last 316 frames with
$ apitrace trim --frames=3500- --output=trimmed.trace dolphin-emu.trace
but the output is only 100 MB smaller (1 GB vs 1.1 GB) and a replay of the trimmed output shows that it's totally garbled.
Anyways, I changed the compression algorithm and the fifolog is now down to 4 MB, so I attached it here, along with the acompanying screenshot.
Updated by christian.weinz over 9 years ago
The apitrace is now down to ~80 MB with the new algorithm. I uploaded at a random filehoster: http://www.file-upload.net/download-10695208/dolphin-emu.trace.7z.html
Updated by christian.weinz over 9 years ago
I created another fifolog with 2 captured frames, and the apitrace of dolphin replaying this fifolog. I managed to go down to 2 frames in the apitrace.
The first part of the trace archive follows in the next post.