[GH-ISSUE #1461] CUSA03173 - Constant Unsupported PM4 type 0 #487

Closed
opened 2026-02-27 21:06:32 +03:00 by kerem · 3 comments
Owner

Originally created by @Vimvoord on GitHub (Oct 30, 2024).
Original GitHub issue: https://github.com/shadps4-emu/shadPS4/issues/1461

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

Originally created by @Vimvoord on GitHub (Oct 30, 2024). Original GitHub issue: https://github.com/shadps4-emu/shadPS4/issues/1461 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](https://github.com/user-attachments/files/17577807/shad_log.txt) [Debug] <Critical> liverpool.cpp:ProcessGraphics:200: Unreachable code! Unsupported PM4 type 0
kerem closed this issue 2026-02-27 21:06:33 +03:00
Author
Owner

@NiclasNike commented on GitHub (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

<!-- gh-comment-id:2450975302 --> @NiclasNike commented on GitHub (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] <Error> tile_manager.cpp:TryDetile:394: Unsupported tiled image: R32Sfloat (Depth_MacroTiled) [Lib.GnmDriver] <Error> liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0 [Lib.GnmDriver] <Error> liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0 [Lib.GnmDriver] <Error> liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0 [Lib.GnmDriver] <Error> liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0 [Lib.GnmDriver] <Error> liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0 [Lib.GnmDriver] <Error> liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0 [Lib.GnmDriver] <Error> liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0 [Lib.GnmDriver] <Error> liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0 [Lib.GnmDriver] <Error> liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0 [Lib.GnmDriver] <Error> liverpool.cpp:ProcessGraphics:199: Continue hack Unsupported PM4 type 0 [Lib.GnmDriver] <Error> liverpool.cpp:NextPacket:31: : packet length exceeds remaining submission size. Packet dword count=15828, remaining submission dwords=123
Author
Owner

@Vimvoord commented on GitHub (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. :/

<!-- gh-comment-id:2452955224 --> @Vimvoord commented on GitHub (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. :/
Author
Owner

@Hermiten commented on GitHub (Nov 11, 2024):

You can report this PM4 type on this issue:
https://github.com/shadps4-emu/shadPS4/issues/496

Thanks you

<!-- gh-comment-id:2468663492 --> @Hermiten commented on GitHub (Nov 11, 2024): You can report this PM4 type on this issue: https://github.com/shadps4-emu/shadPS4/issues/496 Thanks you
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/shadPS4#487
No description provided.