Project

General

Profile

Emulator Issues #8688

Textures missing in Xenoblades Chronicles when using radeonsi

Added by christian.weinz almost 5 years ago.

Status:
Questionable
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

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?

  1. Character goes into the entry of Colony 9
  2. Textures on him disappear
  3. He steps back.
  4. 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.

History

#1 Updated by christian.weinz almost 5 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.

#2 Updated by pauldacheez almost 5 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?

#3 Updated by christian.weinz almost 5 years ago

"Store EFB Copies to Texture only" is unchecked and the texture cache accuracy is turned to max safety. The issues stays unaffected.

#4 Updated by pauldacheez almost 5 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.

#5 Updated by mathieui almost 5 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.

#6 Updated by degasus almost 5 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.

#7 Updated by christian.weinz almost 5 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?

#8 Updated by degasus almost 5 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.

#9 Updated by christian.weinz almost 5 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

#10 Updated by degasus almost 5 years ago

Stereo can be enabled/disabled within the GUI options

#11 Updated by christian.weinz almost 5 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

#12 Updated by degasus almost 5 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.

#13 Updated by christian.weinz almost 5 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.

#14 Updated by degasus almost 5 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 :/

#15 Updated by christian.weinz almost 5 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.

#16 Updated by christian.weinz almost 5 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

#17 Updated by christian.weinz almost 5 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.

Also available in: Atom PDF