Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rsx: Surface cache fixes #6213

Merged
merged 5 commits into from Jul 17, 2019
Merged

rsx: Surface cache fixes #6213

merged 5 commits into from Jul 17, 2019

Conversation

kd-11
Copy link
Contributor

@kd-11 kd-11 commented Jul 15, 2019

  • Allow surfaces to inherit from multiple surfaces
  • Fixes a possible reference leak when cloning surfaces
  • Fixes data loss due to memory splitting

Reimplementation of #6205
Should fix some of the regressions in #5983

@lostromb

This comment has been minimized.

@lostromb

This comment has been minimized.

@kirbyguy22
Copy link

Improves reflection behavior in Gran Turismo 6, but crashes in-game when starting a race with
·F 0:01:58.672337 {RSX [0x0be2198]} RSX: class std::runtime_error thrown: Verification failed: (in file c:\projects\rpcs3\rpcs3\emu\rsx\common\surface_utils.h:340)
PR:
gt6_surfcache_reflections_fix

Master (8385):
gt6_surfcache_reflections_master

Log:
RPCS3_pr6213_GT6.log.gz

@jenci8888
Copy link

I can confirm the same issue as Kirbyguy22, it crashes when loads 3D model in car dealer. (same error in the log as Kirbyguy22)

@lostromb
Copy link

Valkyria Chronicles [BLUS30196] depth regression is fixed by this PR. Even better, it appears that the game no longer requires Strict mode to render the "layers" of grass / water / bloom effects correctly

before
after

@jenci8888
Copy link

jenci8888 commented Jul 16, 2019

The GT Academy 2013 and GT6 reflection are fully fixed. (remains problem "mirror" view in the bumper camera and 2D trees aren't transparent background)
Before:
image
After:
image
However I just noticed with this little issue.
image
RRC: BCES01893_20190716115746_capture.gz (github sucks rename to gz)
RDC: https://drive.google.com/open?id=1OlxA7q6t2PWUK8WGnGfxOZKB-r4Q1XRq
Aaaand... Just freezes ingame when trying to render reflection on the chase camera,
here's log: RPCS3.log.gz

@kd-11
Copy link
Contributor Author

kd-11 commented Jul 16, 2019

There are other complications with the PR, I'll ask for a retest when ready.

@kd-11 kd-11 changed the title rsx: Surface cache fixes [WIP] rsx: Surface cache fixes Jul 16, 2019
@kd-11
Copy link
Contributor Author

kd-11 commented Jul 16, 2019

@jenci8888 Confirm the memory corruption should be fixed now.

@kd-11 kd-11 changed the title [WIP] rsx: Surface cache fixes rsx: Surface cache fixes Jul 16, 2019
@kd-11
Copy link
Contributor Author

kd-11 commented Jul 16, 2019

Looks like I accidentally broke refelections again. Ugh.

- After splitting, the sections may not be referenced at all for anything other than just pixel storage
- In such cases, either merge down or sample from the upstream source instead
@kd-11
Copy link
Contributor Author

kd-11 commented Jul 16, 2019

Fixed now. I had some debugging code still hanging around.

@lostromb
Copy link

Valkyria Chronicles still looks good. I tested a smattering of other games (Ni no Kuni, Minecraft, Trails of Cold Steel, Katamari, Mass Effect) and couldn't find any obvious regressions.

@kd-11 kd-11 merged commit ea2f4d5 into RPCS3:master Jul 17, 2019
@Pontifice
Copy link

Pontifice commented Jul 22, 2019

It seems this PR breaks GT5 for me.

It fails with error ·F 0:01:41.675731 {RSX [0x0a4efd0]} 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:1051)

It doesn't matter if i choose SPU Block Size Safe or Mega.

I had attached logs from previous version (8386), this version (8391) and the last at the moment (8410)

RPCS3-8386.log.gz
RPCS3-8391.log.gz
RPCS3-8410.log.gz

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants