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

CUSA03173 - Constant Unsupported PM4 type 0 #1461

Open
Vimvoord opened this issue Oct 30, 2024 · 2 comments
Open

CUSA03173 - Constant Unsupported PM4 type 0 #1461

Vimvoord opened this issue Oct 30, 2024 · 2 comments

Comments

@Vimvoord
Copy link

Vimvoord commented Oct 30, 2024

Patch 1.09 - FW 4.50

Always crashes out at a Layer 4 Chalice Dungeon - at random.
Edit 2: This now even happens in the base areas of the game, not just Chalice Dungeons.
Fresh Save in shadps4 0.4.0 Release

shad_log.txt

[Debug] liverpool.cpp:ProcessGraphics:200: Unreachable code!
Unsupported PM4 type 0

@NiclasNike
Copy link

NiclasNike commented Oct 31, 2024

I have had this one a lot lately everywhere, sometimes just a few seconds after starting the game and sometimes I can play a while before this crash. Windows11, AMD 7800X3D, 4090 and 32GB RAM.
I found an old build 'Full-BB' (diegolix29 fork) that has a lot of hacks and skips but it skips the has the PM4 type 0 case UNREACHABLE_MSG and break.
So today I decided to compile the latest main with only this change in liverpool.cpp:
case 0: LOG_ERROR(Lib_GnmDriver, "Continue hack Unsupported PM4 type 0"); dcb = NextPacket(dcb, header->type0.NumWords() + 1); continue;

With this change it doesn't crash and the log looks like this when hit by a PM4 type 0:
[Render.Vulkan] tile_manager.cpp:TryDetile:394: Unsupported tiled image: R32Sfloat (Depth_MacroTiled)
[Lib.GnmDriver] liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0
[Lib.GnmDriver] liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0
[Lib.GnmDriver] liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0
[Lib.GnmDriver] liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0
[Lib.GnmDriver] liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0
[Lib.GnmDriver] liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0
[Lib.GnmDriver] liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0
[Lib.GnmDriver] liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0
[Lib.GnmDriver] liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0
[Lib.GnmDriver] liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0
[Lib.GnmDriver] liverpool.cpp:NextPacket:31: : packet length exceeds remaining submission size. Packet dword count=15828, remaining submission dwords=123

@Vimvoord
Copy link
Author

Vimvoord commented Nov 2, 2024

I have had this one a lot lately everywhere, sometimes just a few seconds after starting the game and sometimes I can play a while before this crash. Windows11, AMD 7800X3D, 4090 and 32GB RAM. I found an old build 'Full-BB' (diegolix29 fork) that has a lot of hacks and skips but it skips the has the PM4 type 0 case UNREACHABLE_MSG and break. So today I decided to compile the latest main with only this change in liverpool.cpp: case 0: LOG_ERROR(Lib_GnmDriver, "Continue hack Unsupported PM4 type 0"); dcb = NextPacket(dcb, header->type0.NumWords() + 1); continue;

With this change it doesn't crash and the log looks like this when hit by a PM4 type 0: [Render.Vulkan] tile_manager.cpp:TryDetile:394: Unsupported tiled image: R32Sfloat (Depth_MacroTiled) [Lib.GnmDriver] liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0 [Lib.GnmDriver] liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0 [Lib.GnmDriver] liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0 [Lib.GnmDriver] liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0 [Lib.GnmDriver] liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0 [Lib.GnmDriver] liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0 [Lib.GnmDriver] liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0 [Lib.GnmDriver] liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0 [Lib.GnmDriver] liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0 [Lib.GnmDriver] liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0 [Lib.GnmDriver] liverpool.cpp:NextPacket:31: : packet length exceeds remaining submission size. Packet dword count=15828, remaining submission dwords=123

I just tried Diego's fork of the build and it's severely worse there. I can't even get past 5 seconds.
Would be great if anyone could make a pull for hacking this OP code into the main branch. :/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants