RPCS3 / rpcs3

PS3 emulator/debugger
https://rpcs3.net/
GNU General Public License v2.0
15.12k stars 1.89k forks source link

Regressions introduced on #4973 #5001

Closed niko1point0 closed 5 years ago

niko1point0 commented 6 years ago

In previous versions of the emulator, these games ran slow, but they ran; some of them had no graphical glitches Now in 0.0.5-7216, these game do not start at all:

Kung Fu Panda Showdown of Legendary Legends [BLES02144] Call of Duty Modern Warfare 2 - [BLUS30377] Call of Duty Modern Warfare 3 [BLUS30838] Minecraft PlayStation3 Edition [BLES01976] Blur BLES00759

AniLeo commented 6 years ago

Obviously, this issue needs more information

money123451 commented 6 years ago

Can you provide a log for each of the games so kd-11 can look into it also #4973 is the pr that merged in that build please use PR numbers and not appveyor build numbers.

ihavenick commented 6 years ago

Prince of Persia is one of them

E {PPU[0x1000000] Thread (main_thread) [0x000b50f8]} 'sys_fs_open' failed with 0x80010012 : CELL_EISDIR, “/dev_hdd0/game/NPUB30424/USRDIR/” [1] F {PPU[0x1000000] Thread (main_thread) [0x016351a4]} MEM: Access violation reading location 0x288

RPCS3.log.gz

stride21 commented 6 years ago

Uncharted 2 when using Vulkan has lower fps while in the intro and when loading into game. edit: this issue is fixed

PR: 216

Previous Master: 95

RPCS3.log.gz

Xcedf commented 6 years ago

There are regressions for me after #4973 some games now have Fifo Queue errors and freezes like GoW 3 and games that previously were fixed of these errors like Dante's Inferno and RDR now have them again, and it seems i have a few other regressions, but i didn't investigated them yet. Will provide more information tommorow

kd-11 commented 6 years ago

You can likely fix these by adding an empty loop to make rsx slow again. The fact that it works fine for some people and not others makes it very likely to be timing related. RDR for example works fine for me on ryzen, was able to keep going for over half an hour with no issues.

Xcedf commented 6 years ago

What is adding empty loop, just want to try?

kd-11 commented 6 years ago

Like adding busy_loop(1000) somewhere in the main rsx loop.

kd-11 commented 6 years ago

Or using opengl which has inherent overhead for every function call.

Xcedf commented 6 years ago

Found the regression in Assassin's Creed, now game has error just before the main menu F {rsx::thread} class std::runtime_error thrown: Assertion Failed! Vulkan API call failed with unrecoverable error: Device lost (Driver crashed with unspecified error or stopped responding and recovered) (VK_ERROR_DEVICE_LOST) (in file c:\sources\neko\rpcs3\emu\rsx\vk\VKHelpers.h:1133) the error came from f8a9b1fa, same commit that has graphical issues, but unlike them this one still exists in master

TigiHof commented 6 years ago

Silent Hill Downpour (BLUS30565) has the same error.

kd-11 commented 6 years ago

@Xcedf If you have vulkan SDK installed, run with debug output and strict mode enabled. Its a good thing that it happens before reaching menu so log won't be too large hopefully. Attach the log you get from this.

Xcedf commented 6 years ago

@kd-11, with SDK installed, some kind of new errors happened in console before driver fail, anyway here's the log RPCS3.rar.gz

Xcedf commented 6 years ago

found another regression in Killzone 2 Demo almost in the beginning at ingame, and same in Army of Two F {rsx::thread} class std::runtime_error thrown: Verification failed: (in file c:\sources\neko\rpcs3\emu\rsx\rsx_cache.h:105) can't find the exact commit, it's like issue hide itself, but can tlll that the build befor the pr is stable and in about 3-4 first commits it happens

ruipin commented 6 years ago

What build were you using when that last verification failure occurred? Still 7216? If so, try the latest master and let us know if you still see it.

Xcedf commented 6 years ago

@ruipin you actually right, i used old, my own compiled build, cause i not installed VS2017 yet, but recent master seems fine, well sorry for misinformation

Xcedf commented 6 years ago

Did more tests on Fifo Queue errors and freezes ln GoW 3, and they came from first commit 3b47e433 readding rsx->sync(); to rsx_methods.cpp in line 174 kinda fixes it, i ran through Kronos boss battle a several times and without a single error. And of course it cuts down the performance. Some places don't suffer from any slowdown other may have upto 20-25% fps cut. kd-11 please take a look maybe there's a nicer way.

HerrHulaHoop commented 5 years ago

Terraria [BLES01938] has extreme screen flickering after #4973 with OpenGL. I have confirmed that current master (7321) is still affected by this issue. The screen flickering does not occur with Vulkan.

Specs: Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz | 8 Threads | 15.94 GiB RAM | AVX+ GPU: GeForce GTX 970/PCIe/SSE2 (NVIDIA Corporation) (399.07)

Not sure how useful logs are for this issue but nonetheless attaching the log files of 7216 (AAA PR) and 7195 (Previous master): RPCS3_7216.log.gz RPCS3_7195.log.gz

kd-11 commented 5 years ago

@Xcedf You don't really need to call rsx->sync(), it justs adds an artificial stall and hides the issue. I investigated the FIFO error bug months ago, there is a latency between RSX and Cell memory transfers (it takes some time for something written by Cell to be noticed by RSX and vice versa). Modern PCs are just too fast for this. This duration is far too small to be accurately represented between PCs so I opted for a cheaper solution, just add a busy_wait counter. Unfortunately, the higher your cpu clock speed, the smaller the interval, with the payoff being that on a fast CPU other emulation components will also catch up faster. You can see the notes I made on this here. Try large values like 30000 and work down from there. It does hurt performance the larger the spin count (e.g 0 is very fast but more games crash even on my system)

Xcedf commented 5 years ago

@kd-11, Thaks for an explanation, i'll try

Xcedf commented 5 years ago

retested Vulkan driver fail in Assassin's Creed after f8a9b1f, found out, that readding if (internal_width > surface_width || internal_height > surface_height) in texture_cache refixes it

kd-11 commented 5 years ago

You'll have to grab a vulkan debug log for the assertion as that hack just evades doing the merge. Just recreate it with "Debug Output" enabled and the vulkan SDK installed.

Xcedf commented 5 years ago

I've already posted log to this case here in this issue, almost a month ago

kd-11 commented 5 years ago

Right, I remember looking at this issue now. Looks like a bug in the surface_store partitioning code.

kd-11 commented 5 years ago

OpenGL flickering is fixed by https://github.com/RPCS3/rpcs3/pull/5146

Asinin3 commented 5 years ago

Ratchet & Clank: A Crack in Time regressed from AAA fixes. It now crashes RPCS3 with a fatal error shortly after launching the game with Write Color Buffers enabled. This is 100% reproduceable. image RPCS3.log Note: CPU Blit does not help, it still crashes. And you will want to use PPU interpreter when testing this.

Xcedf commented 5 years ago

Now that you've mentioned it, i have the same error in R&C Q-Force with WCB enable, but because the game works even with WCB Disabled i did't investigted it yet

Xcedf commented 5 years ago

Found another issue, Resistance 3 Demo stops processing a few moments later after getting ingame with very same reason as Assassin's Creed.

kd-11 commented 5 years ago

So OGL works ok? Or at least doesn't crash?

Xcedf commented 5 years ago

Yes, OGL seems to work, no crashes

ruipin commented 5 years ago

Test if these games crash with WCB in the latest master. A fix went into my PR yesterday (before it got merged) for segfaults caused by WCB.

Xcedf commented 5 years ago

Confirm. Segfault i've had in R&C Q-Force now fixed on latest master.

Asinin3 commented 5 years ago

WCB crash is fixed in TLoU and ACiT as well by the way as discussed on discord.

ihavenick commented 5 years ago

7195 7195 Log file 7195.log.gz

7216 7216 Log File 7216.gz

kd-11 commented 5 years ago

Any regression here still left? If so, request to reopen.