Open keem85 opened 5 years ago
Diablo 3 suffers from desynchronization issues. The RSX errors are most telling; those are very likely not real RSX methods but instead are caused by emulator reading some garbage data and thinking that it is RSX code. The invalid location error is very likely to have same cause behind it; some other code corrupts f.ex. stack or memory and causes the emulator to access an invalid memory location.
The errors shown in log are red herrings and fixing them would just hide the actual bug. To properly fix them would involve analyzing the code to figure out where the application goes out of sync and then applying some kind of synchronization mechanism there.
Interesting. Is there anything more the average Joe (me) can do to dig deeper? Or should I just let the devs take care of that?
Synchronization issues are a nightmare to debug and aren't easy even for experienced developers. I woudn't recommend looking into it, you'll probably end up wasting a lot of time without any results to speak of.
Actually, looking at my log it doesn't seem to be a memory error like it was before. Maybe something's changed in the recent rpcs3 updates.
You might want to look into previous git build and check which commit it started. At least it would give some clue to dev where this issue might have started.
I think, that one clue is that only slower not TSX CPU its happens much more often - i have 8700K and 4770S and machine and on 8700K is much more stable..
It works now on xenia without crashes I think.
All versions and editions, including xpacs, of Diablo 3 have MEM Access Violation errors, which cause the game to freeze and crash the emulator. If it wasn't for those, the game would be fully playable. I get full 60fps constantly, no graphical issues. Sound stutters and repeats, when the voice log books are collected and there's a lot of action on the screen.
Runs beautifully, until the MEM Access violation kicks in. Log attached.
YA , random happen "MEM Access violation"
Yes crash for me too
Retest with rsx wake-up delay.
Wakeup delay doesn't help, the crashes (or at least some of them) are caused by something else.
Able to finish Diablo 3 ROS with V0.0.8-9381 with 12 hours playtime. I remebered having 2 or 3 crashes but apart from that, everything was fine.
Able to finish Diable 3 ROS with V0.0.8-9381 with 12 hours playtime. I remebered having 2 or 3 crashes but apart from that, everything was fine.
I'll completely remove RPCS3 and install fresh .9381 build and test.
After about 10 minutes of play: F {PPU[0x1000000] Thread (main_thread) [0x00cc5188]} MEM: Access violation reading location 0x3cf00084. RPCS3.zip
Able to finish Diable 3 ROS with V0.0.8-9381 with 12 hours playtime. I remebered having 2 or 3 crashes but apart from that, everything was fine.
I'll completely remove RPCS3 and install fresh .9381 build and test.
I was able to complete the game and was now in Adventure Mode for Bounties. I locked the game in 30fps to get read of annoying sound glitches. Start rpcs3 and boot the game When the game reaches to the title screen put rpcs3.exe in Realtime priority using task manager. It is running smoothly in 30fps, without any annoying sound crackle.
Able to finish Diable 3 ROS with V0.0.8-9381 with 12 hours playtime. I remebered having 2 or 3 crashes but apart from that, everything was fine.
I'll completely remove RPCS3 and install fresh .9381 build and test.
I was able to complete the game and was now in Adventure Mode for Bounties. I locked the game in 30fps to get read of annoying sound glitches. Start rpcs3 and boot the game When the game reaches to the title screen put rpcs3.exe in Realtime priority using task manager. It is running smoothly in 30fps, without any annoying sound crackle.
Tried all those things, still get the MEM access violations. Tried all the settings for Driver Wake Up Delay, still get random freezing and access violations... Do any dev's know what's going on or is it some Blizz sorcery?
Just a friendly reminder that you can end up locking up your computer with Real-time priority, and that you shouldn't really use it. Use High if you really want to
Just a friendly reminder that you can end up locking up your computer with Real-time priority, and that you shouldn't really use it. Use High if you really want to
Never happened to me. Been playing D3 at 30fps for two weeks now. Level 53 Female Wizard. I have BLUS31437 Diablo 3 ROS Ultimate Edition I have the following settings: PPU Decoder : LLVM Recompiler SPU Decoder : LLVM Recompiler Enabled Thread Scheduler Disabled Lower SPU Thread Priority Enabled SPU Loop Detection Enabled SPU Cache Disabled Accurate xfloat SPU Block Size : Safe Preferred SPU Threads : Auto
Renderer: Vulkan Graphics Device : GTX 1070 Aspect Ration : 16:9 Framelimit : 30 Anisotropic Filter: Auto Anti-Aliasing : Auto
Default Resolution : 1280x720 Resolution Scale : 100% Resolution Scale Threshold : 16x16
Only Vsync and Multithreaded RSX Enabled and all the rest are disabled in Additional Settings
Oh and my Firmware is 4.84
Here's the thing with Realtime priority. If you assign it to a process, and that process pins the CPU to 100%, then the CPU will focus its full attention to it. Most other things will be left aside until the process is done using the CPU fully, and that includes things like user input.
It doesn't always happen, especially with higher thread count chips, but it can happen especially on RPCS3 with lower end CPUs, and you shouldn't really use it or recommend it in most cases.
Here's the thing with Realtime priority. If you assign it to a process, and that process pins the CPU to 100%, then the CPU will focus its full attention to it. Most other things will be left aside until the process is done using the CPU fully, and that includes things like user input.
It doesn't always happen, especially with higher thread count chips, but it can happen especially on RPCS3 with lower end CPUs, and you shouldn't really use it or recommend it in most cases.
Point taken but like I said, haven't really happened to me. Highest CPU Usage for rpcs3 I have is around 60%.
I really like this game and I'm happy that rpcs3 is moving in the right direction. Hopefully by this year, it'll move to the playable section and we don't need to do all this modifications on settings and task manager priority.
Just a friendly reminder that you can end up locking up your computer with Real-time priority, and that you shouldn't really use it. Use High if you really want to
Never happened to me. Been playing D3 at 30fps for two weeks now. Level 53 Female Wizard. I have BLUS31437 Diablo 3 ROS Ultimate Edition I have the following settings: PPU Decoder : LLVM Recompiler SPU Decoder : LLVM Recompiler Enabled Thread Scheduler Disabled Lower SPU Thread Priority Enabled SPU Loop Detection Enabled SPU Cache Disabled Accurate xfloat SPU Block Size : Safe Preferred SPU Threads : Auto
Renderer: Vulkan Graphics Device : GTX 1070 Aspect Ration : 16:9 Framelimit : 30 Anisotropic Filter: Auto Anti-Aliasing : Auto
Default Resolution : 1280x720 Resolution Scale : 100% Resolution Scale Threshold : 16x16
Only Vsync and Multithreaded RSX Enabled and all the rest are disabled in Additional Settings
Oh and my Firmware is 4.84
I tried these settings and got MEM Access violation in 5 seconds. I'm not sure what you're doing right and the rest of us doing wrong. You're the only one who seems to not be getting MEM access violations.
·F 0:10:06.620697 {PPU[0x1000000] Thread (main_thread) [0x00c8de30]} MEM: Access violation reading location 0xbc0e81d0 ·W 0:10:06.622862 {cellAudio Thread} cellAudio: Audio backend stopped unexpectedly, likely due to a buffer underrun
The game is just unstable currently. The amount of crashes vary between systems, and even of the same system it can be random. I can sometimes play for half an hour without crashes, and sometimes the game will just crash after 10 minutes.
Well, i just played it now for 3 hours without any issue. Like I said, I've been playing it for two weeks on 9381. This is the second game I've finished using this version, 1st one is Tales of xillia.
F {SPU[0x4000100] Thread (CellSpursKernel4) [0x05d88]} VM: Access violation writing location 0xffdead00 F {SPU[0x1000100] Thread (CellSpursKernel1) [0x05d88]} VM: Access violation writing location 0xffdead00 F {SPU[0x3000100] Thread (CellSpursKernel3) [0x05d88]} VM: Access violation writing location 0xffdead00
Tried all settings and combinations. Tried the driver wakeup delay slider. If it's not mem access violations, it's random freezing.
Its still the same for long time - im testing this for year and half or something like that, non TSX version, or simply run game on slower CPU means much more freezes..
Example of freeze, right after game start. RPCS3.zip
Just a quick fyi, build v0.0.8-9726 #7582 has made this worse than before.
Right after you c;lear the autosave screen and the Diablo III ROS "Press any Button" screen to the continue screen, the game will freeze reliably at this screen with the following
F {RSX [0x00676e0]} RSX: class std::runtime_error thrown: Allocation failed!
The last build (v0.0.8-9724) prior to this one at least allowed some form of gameplay (continue, heading into town, killing enemies etc) before the random freezes happen.
Logfile from worse build:- RPCS3.log
Logfile from v0.0.8-9724 before it got worse, loaded successfully into town:- RPCS3.log.gz
Specs:- Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz | 8 Threads | 31.96 GiB RAM | TSC: 3.60GHz | AVX+ | TSX NVIDIA GTX 1070ti
I can play with build (v0.0.9-9923) These are my current settings. slow but works.
Just a bit of an update, for those interested.
RPCS3 v0.0.13-11218-908b2703 Alpha | HEAD | Firmware version: 4.86 Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz | 12 Threads | 31.93 GiB RAM | TSC: 3.696GHz | AVX+ | FMA3 | TSX-FA Operating system: Windows, Major: 10, Minor: 0, Build: 19041, Service Pack: none, Compatibility mode: 0 RSX: Found vulkan-compatible GPU: 'GeForce GTX 1070 Ti' running on driver 457.30.0.0
E {SPU[0x4000100] Thread (CellSpursKernel4) [0x05d88]} VM: Access violation writing location 0xffdead00 (unmapped memory) [type=u32] E {SPU[0x2000100] Thread (CellSpursKernel2) [0x05d88]} VM: Access violation writing location 0xffdead00 (unmapped memory) [type=u32] F {SPU[0x3000100] Thread (CellSpursKernel3) [0x04de8]} SIG: Thread terminated due to fatal error: Unknown STOP code: 0xa (Out_MBox=empty) (in file D:\a\1\s\rpcs3\Emu\Cell\SPUThread.cpp:4422)
Regular Diablo III (NPUB31299)
RPCS3 v0.0.13-11333-2aa5c437 Alpha | HEAD | Firmware version: 4.86 AMD Ryzen 5 3600X 6-Core Processor | 12 Threads | 15.91 GiB RAM | TSC: 3.793GHz | AVX+ | FMA3 Operating system: Windows, Major: 10, Minor: 0, Build: 19042, Service Pack: none, Compatibility mode: 0 RSX: Found vulkan-compatible GPU: 'GeForce GTX 1060 6GB' running on driver 456.55.0.0
Tweaked some setting and made game almost playable (Accurate Cache Line Stores; Accurate PPU 128 Reservations=Always Enabled)
I get this purple error:
F 0:10:08.555408 {PPU[0x1000000] Thread (main_thread) [0x00ad64b4]} VM: Access violation reading location 0x3eb64e50 (unmapped memory) [type=u0]
Areas that always crash are playable adding Accurate SPU DMA, getting to the next check point and disabling Accurate SPU DMA.
Diablo III (NPUB31299)
RPCS3 v0.0.13-11336-13a0b887 Alpha | HEAD | Firmware version: 4.86 AMD Ryzen 5 3600X 6-Core Processor | 12 Threads | 15.91 GiB RAM | TSC: 3.793GHz | AVX+ | FMA3 Operating system: Windows, Major: 10, Minor: 0, Build: 19042, Service Pack: none, Compatibility mode: 0 RSX: Found vulkan-compatible GPU: 'GeForce GTX 1060 6GB' running on driver 456.55.0.0
purple error:
F {RSX [0x01047dc]} SIG: Thread terminated due to fatal error: [attrib buffer] Working buffer not big enough, buffer_length=67108864 allocated=915456 requested=4101505036 guard=4194304 largest_pool=79616 (in file D:\a\1\s\rpcs3\Emu\RSX\Common\ring_buffer_helper.h:91)
emulator crashed so i zipped log.
Diablo III (NPUB31299)
RPCS3 v0.0.13-11354-062c605e Alpha | HEAD | Firmware version: 4.86 AMD Ryzen 5 3600X 6-Core Processor | 12 Threads | 15.91 GiB RAM | TSC: 3.793GHz | AVX+ | FMA3 Operating system: Windows, Major: 10, Minor: 0, Build: 19042, Service Pack: none, Compatibility mode: 0 RSX: Found vulkan-compatible GPU: 'GeForce GTX 1060 6GB' running on driver 456.55.0.0
error:
F 0:09:27.906072 {RSX [0x009748c]} SIG: Thread terminated due to fatal error: Verification failed: (in file D:\a\1\s\rpcs3\Emu\RSX\RSXThread.cpp:1770)
emulator crashed.
Diablo III (NPUB31299)
RPCS3 v0.0.13-11395-bfe1a867 Alpha | HEAD | Firmware version: 4.86 AMD Ryzen 5 3600X 6-Core Processor | 12 Threads | 15.91 GiB RAM | TSC: 3.793GHz | AVX+ | FMA3 Operating system: Windows, Major: 10, Minor: 0, Build: 19042, Service Pack: none, Compatibility mode: 0 RSX: Found vulkan-compatible GPU: 'GeForce GTX 1060 6GB' running on driver 456.55.0.0
error:
E 0:00:41.029170 {SPU[0x4000100] Thread (CellSpursKernel4) [0x05ce8]} VM: Access violation writing location 0xffdead00 (unmapped memory) [type=u32]
I can reproduce error. I opened debugger and selected CellSpursKernel4. It is always same [00005ce8 7f 00 10 80: heqi lr,r33,0]:
Diablo III (NPUB31299)
RPCS3 v0.0.13-11444-e449111c Alpha | HEAD | Firmware version: 4.86 AMD Ryzen 5 3600X 6-Core Processor | 12 Threads | 15.91 GiB RAM | TSC: 3.793GHz | AVX+ | FMA3 Operating system: Windows, Major: 10, Minor: 0, Build: 19042, Service Pack: none, Compatibility mode: 0 RSX: Found vulkan-compatible GPU: 'GeForce GTX 1060 6GB' running on driver 456.55.0.0
F {SPU[0x5000100] Thread (CellSpursKernel5) [0x05d04]} SIG: Thread terminated due to fatal error: Unknown command (cmd=PUT, lsa=0xfc00, ea=0x80, tag=0x0, size=0x7600) (in file D:\a\1\s\rpcs3\Emu\Cell\SPUThread.cpp:3372[:22], in function process_mfc_cmd)
Diablo III (NPUB31299)
RPCS3 v0.0.13-11478-92e5bb88 Alpha | HEAD | Firmware version: 4.86 AMD Ryzen 5 3600X 6-Core Processor | 12 Threads | 15.91 GiB RAM | TSC: 3.793GHz | AVX+ | FMA3 Operating system: Windows, Major: 10, Minor: 0, Build: 19042, Service Pack: none, Compatibility mode: 0 RSX: Found vulkan-compatible GPU: 'GeForce GTX 1060 6GB' running on driver 456.55.0.0
E {RSX [0x41efb84]} RSX: FIFO error: possible desync event (last cmd = 0xca2ae33) E {RSX [0x00bb260]} RSX: Invalid NV4097_SET_INDEX_ARRAY_DMA value: 0x3e65aaf0 F {SPU[0x2000100] Thread (CellSpursKernel2) [0x0b3f0]} SIG: Thread terminated due to fatal error: Unknown STOP code: 0x3fff (op=0x3fff, Out_MBox=empty) (in file D:\a\1\s\rpcs3\Emu\Cell\SPUThread.cpp:4544[:22], in function stop_and_signal) E {SPU[0x1000100] Thread (CellSpursKernel1) [0x05ce8]} VM: Access violation writing location 0xffdead00 (unmapped memory) [type=u32]
RPCS3 v0.0.13-11478-92e5bb88 Alpha | HEAD | Firmware version: 4.86 Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz | 12 Threads | 31.93 GiB RAM | TSC: 3.696GHz | AVX+ | FMA3 | TSX-FA Operating system: Windows, Major: 10, Minor: 0, Build: 19042, Service Pack: none, Compatibility mode: 0 RSX: Found vulkan-compatible GPU: 'GeForce GTX 1070 Ti' running on driver 460.89.0.0
E {RSX [0x002a960]} RSX: FIFO error: possible desync event (last cmd = 0x2000000d) F {PPU[0x1000000] Thread (main_thread) [0x000a8ec4]} VM: Access violation writing location 0xfada8c (read-only memory) [type=u8]
Diablo III (NPUB31299)
RPCS3 v0.0.13-11498-5227e658 Alpha | HEAD | Firmware version: 4.86 AMD Ryzen 5 3600X 6-Core Processor | 12 Threads | 15.91 GiB RAM | TSC: 3.793GHz | AVX+ | FMA3 Operating system: Windows, Major: 10, Minor: 0, Build: 19042, Service Pack: none, Compatibility mode: 0 RSX: Found vulkan-compatible GPU: 'GeForce GTX 1060 6GB' running on driver 456.55.0.0
E {RSX [0x01b85a0]} RSX: Invalid RSX method 0x4c0 (arg=0x0, start=0x440, count=0x80, non-inc=false) E {RSX [0x0144580]} RSX: Invalid NV4097_SET_INDEX_ARRAY_DMA value: 0x41740 E {RSX [0x00f92c0]} RSX: FIFO error: possible desync event (last cmd = 0x24001f) E {RSX [0x0040000]} RSX: Invalid NV4097_SET_INDEX_ARRAY_DMA value: 0x41764 E {SPU[0x5000100] Thread (CellSpursKernel5) [0x05ce8]} VM: Access violation writing location 0xffdead00 (unmapped memory) [type=u32]
Diablo III (NPUB31299)
RPCS3 v0.0.14-11506-2b8eb8de Alpha | HEAD | Firmware version: 4.86 AMD Ryzen 5 3600X 6-Core Processor | 12 Threads | 15.91 GiB RAM | TSC: 3.793GHz | AVX+ | FMA3 Operating system: Windows, Major: 10, Minor: 0, Build: 19042, Service Pack: none, Compatibility mode: 0 RSX: Found vulkan-compatible GPU: 'GeForce GTX 1060 6GB' running on driver 456.55.0.0
Standing in one spot for few minutes without input:
E {RSX [0x008fdc0]} RSX: Invalid NV4097_SET_INDEX_ARRAY_DMA value: 0x1d2 E {RSX [0x01cbb20]} RSX: FIFO error: possible desync event (last cmd = 0x4e004f) E {RSX [0x00d9aa0]} RSX: FIFO error: possible desync event (last cmd = 0x60403ffc) E {RSX [0x1f800000]} RSX: FIFO error: possible desync event (last cmd = 0x3f800000) E {RSX [0x11a86898]} RSX: FIFO error: possible desync event (last cmd = 0x31a86898) E {RSX [0x01550e0]} RSX: FIFO error: possible desync event (last cmd = 0xf237020) E {RSX [0x00d8e00]} RSX: FIFO error: possible desync event (last cmd = 0x451d424c) E {RSX [0x01bb820]} RSX: FIFO error: possible desync event (last cmd = 0x5d005f) E {RSX [0x00fd100]} RSX: FIFO error: possible desync event (last cmd = 0x42bd6000) E {RSX [0x1f08d90c]} RSX: FIFO error: possible desync event (last cmd = 0x3f08d90e) E {RSX [0x1f800000]} RSX: FIFO error: possible desync event (last cmd = 0x3f800000) E {RSX [0x0181bc0]} RSX: Invalid RSX method 0x1000 (arg=0x41a10, start=0x1000, count=0x4, non-inc=false) E {RSX [0x0067e00]} RSX: FIFO error: possible desync event (last cmd = 0xf780ef00) E {RSX [0x000d4e0]} RSX: FIFO error: possible desync event (last cmd = 0x2f002f) E {RSX [0x0032180]} RSX: Invalid NV4097_SET_INDEX_ARRAY_DMA value: 0x60403ffc E {RSX [0x0048fa0]} RSX: FIFO error: possible desync event (last cmd = 0x186c083) E {RSX [0x00a9060]} RSX: FIFO error: possible desync event (last cmd = 0xe23002fc) E {RSX [0x00e75c0]} RSX: Invalid RSX method 0x65c0 (arg=0xc3134afc, start=0x65c0, count=0xf1, non-inc=true) E {RSX [0x1b7ffffc]} RSX: FIFO error: possible desync event (last cmd = 0xbb7ffffe) E {RSX [0x0200000]} RSX: FIFO error: possible desync event (last cmd = 0xd99628) E {RSX [0x0138b44]} RSX: FIFO error: possible desync event (last cmd = 0x1c47) E {RSX [0x0123d40]} RSX: FIFO error: possible desync event (last cmd = 0xbfa17c6d) E {RSX [0x0116060]} RSX: FIFO error: possible desync event (last cmd = 0x401f9c6c) E {RSX [0x0165dc0]} RSX: FIFO error: possible desync event (last cmd = 0x186c083)
Please, less spam. Thanks.
So this is spam to you?
Just use GitHub's edit feature. Won't need to have system specs listed a dozen times, and can just add any errors you think are relevant with logs.
I know you're really enthusiastic about this game and want to do everything you can to make it playable, but these log files aren't useful. The synchronisation issue causing crashes is far too complex to figure out by just staring at a log file.
Works fine in single player, but in multi-player it will crash right at the start of Tristram.
I have the same issue with a ryzen 7 1700 with a rtx 2070s and an hp envy with 940m. I got it to LAN cross platform for a bit with both the ps3 freeze when going into a different cell. It lasted the usual 10 mins. The longest played single player was an hour then slowly faded to 10 mins. Wish i kept my logs but its possible to run around in tristram and maybe 1 cave before either the emu or the ps3 crashes or load loops.
I have the same issue with a ryzen 7 1700 with a rtx 2070s and an hp envy with 940m. I got it to LAN cross platform for a bit with both the ps3 freeze when going into a different cell. It lasted the usual 10 mins. The longest played single player was an hour then slowly faded to 10 mins. Wish i kept my logs but its possible to run around in tristram and maybe 1 cave before either the emu or the ps3 crashes or load loops.
PS I tried all these other fixes and some helped but some didnt do much.
Freeze/crash still present with latest build using PPU LLVM. Seems to work ok if using PPU Interpreter, but FPS is poor.
{PPU[0x1000000] Thread (main_thread) [0x00c9d200]} VM: Access violation reading location 0xbd9c00d0 (unmapped memory) [type=u0]
Still crashes like crazy in the area outside Tristram trying to play Multiplayer, even with PPU Interpreter, but FPS seems fine up until the crash.
Retest with atomic RSX FIFO Accuracy.
Retest with atomic RSX FIFO Accuracy.
Still freezes with atomic RSX FIFO Accuracy enabled.
{PPU[0x1000000] Thread (main_thread) [0x00c8de30]} VM: Access violation reading location 0xbf157680 (unmapped memory)
Hi Everyone After update new version, I encountered an error, when I play Diablo III, the rpcs3 will be crashed (after about 5-10 mins), this did not happen with previous version (rpcs3-v0.0.30-16162-df4fc947_win64).
Many thanks!
So, Diablo III Ultimate Evil Edition crashes at completely random places with "Memory Access Violation" and also just plain freezes. At the very bottom you can see a number that keeps counting non-stop. This is happening whilst the freeze is active and game still on
-------------CRASHES------------------ First crash in Tristram after about five to ten minutes.
Second Crash During Crypts Level 1 happened after well above one hour.
-------------SPECS------------------
-------------SETTINGS------------------ These are my current settings. I've tried different SPU Threads, ASMJIT and LLVM, loop dettection etc. None of them have any impact on this freeze problem.