Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some games' compute shaders fail to compile if the game window's height is bigger than 1080 #1835

Open
kalaposfos13 opened this issue Dec 21, 2024 · 0 comments
Labels
bug Something isn't working

Comments

@kalaposfos13
Copy link
Contributor

kalaposfos13 commented Dec 21, 2024

This is the most baffling error I have ever come across: This setting shouldn't impact the emulator at all, so it's very strange that it happens. On the latest main build, GR2 reaches menus if unmodded and loads the test_player if you decide to mod it, so this is not because of a change in my gr2-hacks branch.

How to reproduce: On the default 720p setting, the game loads no problem. If you set the height to 1080, it is still fine, but even 1081 makes it crash on boot.

Width doesn't seem to make a difference, and the game boots fine on 9999x720 and 9999x1080.

By attaching a debugger, I can get a stack trace of the problem, and it seems like most, if not all compute shaders fail to compile: Skipping all compute shaders work (but with the expected graphical issues), and I gave up after skipping all these and concluding it's a general occurrence:

0x9bc992ef,
0xddf2322d,
0xaafa61e8,
0x2a8c3ba9, 
0x8503bcb7, 
0x3615273f, 
0x12bb8982,
0xc12dbba7, 
0xe172c821,

Update: It seems like only these are the only two games in my library that have this problem:
CUSA04943 Gravity Rush 2
Hits the following assert:
ASSERT(image.GetType() != AmdGpu::ImageType::Color2DMsaa && image.GetType() != AmdGpu::ImageType::Color2DMsaaArray);
CUSA03745 The Last Guardian
Hits the following assert:
ASSERT_MSG(instFormat.src_type != ScalarType::Undefined && instFormat.dst_type != ScalarType::Undefined, "Instruction format table incomplete for opcode {} ({}, encoding = {})", magic_enum::enum_name(m_instruction.opcode), u32(m_instruction.opcode), magic_enum::enum_name(encoding));

On the hardware and OS side, so far I have confirmed it happens both on Windows and Linux with my 3060 Laptop GPU, and on a 3080 on Windows, from iExplosiveRage.
This was first reported by iExplosiveRage on Discord a few weeks ago, but we didn't realize this was the root problem until recently.

@kalaposfos13 kalaposfos13 changed the title Gravity Rush 2 doesn't boot if the game window's height is bigger than 1080 Some games' compute shaders fail to compile if the game window's height is bigger than 1080 Dec 21, 2024
@Hermiten Hermiten added the bug Something isn't working label Dec 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants