Rpcs3: Regressions from #5427 (FBO_Fixes)

Created on 6 Jan 2019  路  50Comments  路  Source: RPCS3/rpcs3

Issue#1: I'm getting this error which I am unable go past intro logo screen while OGL makes go ingame.
Issue#2: Graphical issues NFS Rivals, therefore WCB enabled fixes it. Thus harder to run which game freezes loading screen before "start button" screen, I tried to capture the "RSX Capture" but I am unable to do it. (See log)

Game: Sonic All-Star Racing Transformed
F {RSX [0x160cdb0]} RSX: 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:\projects\rpcs3\rpcs3\emu\rsx\vk\vkhelpers.h:1275)

RPCS3.zip

Game: Need For Speed: Rivals
Before: WCB disabled (Doesn't matter any build)
image

After: WCB disabled
image

After#2: WCB enabled
image

RPCS3_NFS_Rivals.log.gz

I provided log. Feel free post here to make regressions.

Most helpful comment

The async 'regression' is literally a one-liner hack. Don't worry about it too much, it will be submitted with the next PR, likely in the next 2 days.

All 50 comments

Prior to #5427 with Async Shader Compiler enabled:
unc previous

5427 with Async Shader Compiler enabled:

unc pr

5427 with Async Shader Compiler disabled:

disabled
RPCS3.log.gz

Prior to #5427 with Async Shader Compiler enabled:
previous last of us

5427 with Async Shader Compiler enabled:

last of us pr

5427 with Async Shader Compiler disabled:

last of us master
RPCS3.log.gz

Likely because I decided to force data collapse even if a write did not happen because shaders were not ready, which somehow breaks async compiling because that is itself a nasty hack. I'll just return it to how it was before, although I wonder if that will also bring in regressions of its own.

Persona 4 arena and persona 4 arena ultimax seem to have a regression too due to this PR. The pink flickering glitch on the characters is back, no matter if you enable WCB or strict rendering mode.

Sorry I'm not on my main computer now and cannot post screenshots.

Make sure you have anisotropic filtering set to Automatic for Persona 4 Arena.
Each character flickers in and out with a small pink shape at their feet after FBO Fixes.
rpcs3_2019-01-11_3953
Capture (rename extension to 7z - GitHub sucks)
NPUB30923_20190111001831_capture.gz

Of course its on automatic. Same config on prefbo fixes builds just works ok

Seems to be affecting Battlefield: Bad Company as well.
Async Shader Compiler enabled:
capture
Async Shader Compiler disabled:
ffff

RPCS3.log.gz

The async 'regression' is literally a one-liner hack. Don't worry about it too much, it will be submitted with the next PR, likely in the next 2 days.

Seeing now that only async shaders are broken, tried out Async Shaders Off with TLoU
and shadowmaps work beautyfully
1

Assassins Creed Rogue now crashes with OpenGL after pressing start on the press start screen 5seconds after it boots. Very easy to reproduce.
F {RSX [0x042f764]} RSX: class std::runtime_error thrown: Unhandled GL format 0x8058 (in file c:\projects\rpcs3\rpcs3\emu\rsx\gl\glhelpers.h:1611)
RPCS3.log.gz

Demon's Souls also crashes RPCS3 with a fatal segfault when using OpenGL during the loading screen before going ingame after FBO_Fixes.
image
Vulkan crashed RPCS3 for me when i closed the emulator as well, which seems to be related to FBO_Fixes as well.

Sly Cooper Thieves in Time - The smoke regressed, alpha issues?
7658beforefbo_2019-01-15_4134
image
RSX Capture
https://mega.nz/#!CcoxQQZZ!-5tlQqkMOQI6idQEQCahBURp4GcWgHchN_1CoIXm_iM

[ Grand Theft Auto IV ]
GPU: AMD RX 570 / 19.1.1
RSX-Capture: https://mega.nz/#!kVR1hKyI!GnGoVjlD2r1tYNOOxmc5DfKyd0LiJu9glABummzrkts
Log: RPCS3.log.gz

v0.0.5-7731 / v0.0.5-7657
1

@Emulator-Team-2 Retest with https://github.com/RPCS3/rpcs3/pull/5565 for GTA
NVM - I have been informed that it is an AMD only bug

[6453d70d]
No change, this game still looks the same.

Is it vulkan-only? You did not mention if OGL was also affected.

v0.0.5-7742 / [OpenGL]
1


[rsx: Fixups and improvements]
On your new pr, GTA 4 has a black screen and crashes a few seconds later after the loading screen with this error.

[OpenGL]

F {RSX [0x029dc44]} RSX: class std::runtime_error thrown: Verification failed: 
(in file c:\projects\rpcs3\rpcs3\emu\rsx\gl\glvertexbuffers.cpp:245)]

RPCS3.log

Does vulkan also crash on the PR build? Its important to check both when reporting bugs/regressions
.

No, the game doesn't crash with Vulkan, but the graphics are completely broken. [master, pr ]

Tom Clancy's H.A.W.X [BLUS30186] no longer displays anything, only a black screen.

Settings: Default CPU Decoder settings and both renderers work. Choice of renderer doesn't make a difference, but different renderers were used for the RSX Captures below because in each case, the other renderer would crash the game and be unable to produce a capture. Write Color Buffers were enabled in both tests since otherwise, the game would crash with a "Failed to compile shader" error.

Also, ignore the FPS counter on both screenshots as they are not indicative of average performance.



Before #5427:
h a w x screenshot - 0 0 5-7658

H.A.W.X. RSX Capture (OpenGL) - 0.0.5-7658.zip
H.A.W.X. Log - 0.0.5-7658.log



From #5427 to current master:
h a w x screenshot - 0 0 5-7678

H.A.W.X. RSX Capture (Vulkan) - 0.0.5-7678.zip
H.A.W.X. Log - 0.0.5-7678.log

All these regressions need testing on the current PR https://github.com/RPCS3/rpcs3/pull/5565.
HAWX for example displays correct graphics in the PR build.

The latest changes fix the OpenGL crash and broken graphics on Vulkan.
1

I think all these issues have been resolved after the PR has been merged. The sly cooper bug is however not a true regression and will be fixed separately in upcoming weeks. The issue can be closed if that is the only regression left.

The regression in H.A.W.X does not seem to be fixed for me in master (though the game now endlessly compiles shaders without Write Color Buffers instead of crashing). Should I start a new issue to isolate my problem, or continue discussing it here?

What happens if you open the RSX capture file attached? (Utilities->Open RSX capture)

When I use current master and open the post-regression RSX capture file (I assume that's what you wanted) I get a black screen like before.
H.A.W.X. Log - 0.0.5-7757.log
H.A.W.X. Log - 0.0.5-7757.log.gz
Though when I load the pre-regression RSX capture file, I get the image of the menu seen above.
(Both tests done without Write Color Buffers enabled)

Found a few regressions here
Uncharted 1 flicekring Naughty Dog intro, Simpsons The Game also may have short random artifacts during character's special attacs, which rely on WCB+CPU Blit
5
both regressed after 52ac0a90
Assassin's Creed has render flickering inmenu and during gameplay after 2a62fa89

acter's special attacs, which rely on WCB+CPU Blit
Uncharted flickering is gone. Just you use only WCB (no CPU blit)

Ok i agree, for Uncharted with WCB flickering are gone, but for Simpsons The Game CPU Blit is vital, there will be even more severe artefacts with just WCB, and and the flickering in Simpsons happens even with WCB+CPU Blit are ON, so still an issue

Time Crisis 4 is still broken on VK (washed out):
2019-01-27 09_52_38-window

I can just reopen this issue for tracking:
https://github.com/RPCS3/rpcs3/issues/4949

And on OpenGL, it's completely broken, crash on load (tried clearing cache):
RPCS3.zip

Sorry for the late report, hadn't gotten around to test this before. In Lollipop Chainsaw, there's a bug where certain effects just render a static image on screen. After FBO_Fixes, this static image will cause VRAM usage to climb up rapidly every time it's shown, eventually causing an out of video memory error after just one or two of these screens.

This does not affect OpenGL, only Vulkan. Also strict rendering mode fixes the crash, but it wasn't required before FBO fixes. Enabling debug output reduces the speed of VRAM usage growth, but that's probably because it renders less frames during those freezes. It does cause the game to print a lot of errors though, but I'm not sure how much of it is just pointless noise.

If you want an easy location in game to test this then delete your old save and start a new game. The intro to first stage has a long freeze that should fill the whole VRAM in one go.

Here's what it looks like in task manager:
image

Log with debug output

I tested this by compiling a version with AUDIT enabled, but it didn't make any difference.

Disable the vulkan memory allocator. On AMD, there are very few memory handles available to the application, if we're leaking a temp resource, you should run out of handles long before you run out of memory. The driver only allows 4096 objects to be allocated. The allocator does huge pool allocations and makes memory allocations just in software like a normal heap and bypasses this, making it harder to determine if something is leaking.

For the other graphics glitches, there are bugs that were uncovered by doing things correctly. I urge testing with this experimental build https://ci.appveyor.com/project/kd-11/rpcs3/builds/22079284, resolves some known issues reported here.
UPDATE: Newer build https://ci.appveyor.com/project/kd-11/rpcs3/builds/22080522

Tested the new build:
Time Crisis bloom regression above not fixed.
Backbreaker Vengeance (needs WCB+Blit to avoid logged regressions): Lost ~7-8 fps (30 fps title).
Ran through a bunch of other games - no improvements/regressions of note.

Using the newer build: The H.A.W.X regression was not fixed for me

Provide renderdoc before and after since RSX captures are tainted by broken graphics code. Use the latest version of renderdoc.

Hmm, interesting. I experimented with this and your suggestion about disabling vulkan memory allocator didn't help, the game still ran out of VRAM just as fast as it used to. However, since the game spams "Blit request denied because the source region does not fit!" to console I tried forcing CPU blit, and that somehow fixes this issue. By enabling WCB with CPU blit the whole effect is rendered properly, which I wasn't aware of.

So you do have a memory leak in some part of emulator code, and it's a part that gets skipped if CPU blit is enabled.

Thats a huge part with too much going on, although the source not fitting is an interesting glitch for sure. I'm curious since the hw blit path does not actually allocate anything with the exception of blit resources which are supposed to be reused whenever possible, so it is likely the old known blit dst leak. I sill wonder why it is not reusing the created resources if this is the case.

RenderDocs and logs for H.A.W.X:
All tests were done with default settings + WRC and Use Legacy OpenGL Buffers



v0.0.5-7658/#5509 (Last working version)


Download RenderDoc from GitHub (multiple files):
(I had to split it up because GitHub only supports 10MB files)

When downloaded, remove the .zip off the end of the file
H.A.W.X. RenderDoc (OpenGL) - 0.0.5-7658.7z.001.zip
H.A.W.X. RenderDoc (OpenGL) - 0.0.5-7658.7z.002.zip



Download RenderDoc from Google Drive:
https://drive.google.com/open?id=1Z20SbUyYVwpcdyvLI9-4Tuvq-7iiFjuU

Logs:
H.A.W.X. Log - 0.0.5-7658 (2).log
H.A.W.X. Log.gz - 0.0.5-7658.log.gz




v0.0.5-7678/#5427 (Start of the regression)


Download RenderDoc from GitHub:
When downloaded, remove the .zip off the end of the file

H.A.W.X. RenderDoc (OpenGL) - 0.0.5-7678.rdc.7z.zip



Download RenderDoc from Google Drive:
https://drive.google.com/open?id=1BDcNrfxvAPaNS-SAHyObuw8d1do6U1C1

Logs:
H.A.W.X. Log - 0.0.5-7678 (2).log
H.A.W.X. Log.gz - 0.0.5-7678.log.gz


v0.0.6-7786/#5611 (Current Master)


Download RenderDoc from GitHub:
When downloaded, remove the .zip off the end of the file

H.A.W.X. RenderDoc (OpenGL) - 0.0.5-7686.7z.zip



Download RenderDoc from Google Drive:
https://drive.google.com/open?id=1FEh-r5fo0OJaEOQWknLGoJ_IrH4u7wAw

Logs:
H.A.W.X. Log - 0.0.5-7786.log
H.A.W.X. Log.gz - 0.0.5-7686.log.gz


v0.0.6-7788 (Updated Experimental Test Build)


Download RenderDoc from GitHub:
When downloaded, remove the .zip off the end of the file

H.A.W.X. RenderDoc (OpenGL) - 0.0.5-7688.7z.zip



Download RenderDoc from Google Drive:
https://drive.google.com/open?id=1Sgw0FfOlYnxd1yGbODCljAIUjn2qwR-6

Logs:
H.A.W.X. Log - 0.0.5-7688.log
H.A.W.X. Log.gz - 0.0.5-7688.log.gz



It only activates when using Vulkan and Strict rendering somehow fixes it. Also the issue never happened before FBO_Fixes was merged. Maybe that would help narrowing it down?

But either way, I think I've pestered you enough about it. That issue only seems to affect one game and even then it can be avoided with settings changes, so it's not something that you should spend too much time looking into.

@creeperjedi The issue seems to be a missing shader (completely missing for some reason, likely broken blit). Try using CPU blit with WCB and see if it works. I'd also like a new capture with the experimental build. Just capture that start screen as it seems to be easier to replicate.

Some of the other glitches are likely fixed by https://github.com/RPCS3/rpcs3/pull/5635 if they affect vulkan only.

  • TC4 is still washed out and OpenGL causes fatal errors. Both fine prior to FBO fixes. I can reopen the specific TC4 issue to track separately if you want. #4949
  • Performance regression still present in Backbreaker, maybe others (though not as bad as the build from a few days ago) on these new test builds/PR
  • No other issues/improvements of note.

2019-02-05 08_39_16-window

There have been no new builds related to fbos, so if you still have a performance regression, look into your system setup. The new PR build does not impact performance.
As for tc4, do not reopen a duplicate. More open tickets result in slower progress since emulator development still has to move forward and minor issues have to be temporarily postponed often. Attach renderdoc dumps here instead (vulkan trace is fine).

I tried to get an RSX Capture, but the emulator just instantly crashes when I click the "RSX Capture" button in the debugger. Instead, I got a RenderDoc, if that helps.

Tested using default settings + WRC, CPU Blit, and Use Legacy OpenGL Buffers

RenderDoc


Download RenderDoc from GitHub (multiple files):
(I had to split it up because GitHub only supports 10MB files)

When downloaded, remove the .zip off the end of the file
H.A.W.X. RenderDoc (OpenGL) - 0.0.5-7688 (2).7z.001.zip
H.A.W.X. RenderDoc (OpenGL) - 0.0.5-7688 (2).7z.002.zip



Download RenderDoc from Google Drive:
https://drive.google.com/open?id=1YrMIlHhdKfAdwbPcn8KDgchAu9GzkP7q




Logs:

H.A.W.X. Log - 0.0.5-7688 (2).log
H.A.W.X. Log.gz - 0.0.5-7688.log (2).gz

Time Crisis 4 still has broken bloom, like above.

HW blit memory leak is still there. I also found two other games which are affected by it; NHL 14 and Uncharted 3.

H.A.W.X now displays the main menu, just like before the regression, but freezes on this screen (see image below) right before it would enter ingame.
h a w x freeze screen
H.A.W.X. Log - 0.0.6-426355a1.log
Settings: Default + Vulkan + Write Color Buffers

@legend800 It might be worth testing Time Crisis 4 again because a recent update to the aforementioned PR fixed some broken bloom in H.A.W.X. (which I can see now, since the game doesn't just display black anymore).


Before:
h a w x high bloom


After:
h a w x normal bloom

Good call. Yep, all fixed now on latest commit in the new PR.

2019-03-03 13_11_22-window

Closing since most graphics bugs here if not all are fixed in latest master. Open new bug tickets if needed.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

altiereslima picture altiereslima  路  3Comments

Birch-san picture Birch-san  路  3Comments

uaqlover picture uaqlover  路  3Comments

elad335 picture elad335  路  3Comments

AniLeo picture AniLeo  路  3Comments