XCOM: Enemy Unknown Shader cache crash
Quick summary
when testing this game I ran into a shader cache issue
Details
When testing this game I ran into an issue where the game would crash when the shader cache had been compiled when reboot to go into gameplay.
This seems to also happen when using legacy shaders on the first boot
Error: "F {PPU[0x1000012] Thread (RenderingThread) [0x00690b94]} VM: Access violation reading location 0x5 (unmapped memory)"
Attach a log file
Attach capture files for visual issues
No response
System configuration
RPCS3 v0.0.27-14927-7feb1367 Alpha | master | FW 4.88 | 5.15.106-1-MANJARO AMD Ryzen 5 2600 | 12 Threads | 15.95 GiB RAM | AVX+ | FMA3 GPU: NVIDIA GeForce RTX 3060 Ti (530.41)
Other details
No response
Retested with v0.0.30-15914-2a1af17f. No changes
@Triticum0 is that still an issue? many fixes on shaders have been made in the last year
Still an issue, I was testing the demo, so you can download the game debug it if you want.
XCOM Enemy Unknown Demo [NPEB90445].log.gz
·F 0:37:37.313519 {PPU[0x1000013] Thread (RenderingThread) [0x00690b94]} VM: Access violation reading location 0x3 (unmapped memory) doesn't mention shaders but clearing them fixes the issue.
Understood, I will try the demo. Maybe these issues present only when cached info are present could be analyzed quite easily now.
I confirm the issue. If shader cache is used (e.g. re-starting the game) the game crashes just at the beginning with the reported error message, However, if Disable On-Disk Shader Cache in Debug menu is enabled, then there is no crash. Disabling that setting will re-activate the issue. Just in case this info is useful for main developers
Another not going ingame using shader interpreter also crashes the game. even when I cleared shader cache
@kd-11 maybe this issue could be easily reproduced by yourself and fixed? I mean the crash when Disable On-Disk Shader Cache is disabled. It seems inconsistent data are read (or maybe written) from file compared to no issue if cache on disk is disabled. Using Async (multi threaded) in my case
Does CPU blit (without WCB/WDB) fix the issue? I'm almost completely certain this has nothing to do with the actual rendering but either a timing or memory lock side-effect.
no difference with cpu blit enabled. it crashes with shader cache enabled. No crash with shader cache disabled
Very odd. Checking.
Just to let you know all my issues except Little Big Planet 3, BATTLEFIELD 3, Battle: Los Angeles and Where the Wild Things Are all are demos some hopeful there easy for you to get a hold of to debug. Where the Wild Things Are is a demo but from demo disk so not easy to get hold of.
This one is a nightmare to debug. We just have generic data trampling going on. You can get further by disabling occlusion queries but then all the graphics break. I'll have to come back to this when I have a lot of time to dive deep into the PPU logic.