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/vk: Implement dynamic sized memory heaps #6972

Merged
merged 7 commits into from Nov 10, 2019

Conversation

@kd-11
Copy link
Contributor

kd-11 commented Nov 9, 2019

Makes the data upload heaps growable which should avoid running out of memory. The old approach was that if the runtime did not predict running out of memory early enough, the allocator would crash with a "working buffer not big enough" error. Now, if there is an out-of-memory event, the heap is garbage collected and a new one takes its place transparently. The last commit in the sequence drastically lowers memory allocation sizes to trigger the out-of-memory condition easier in sensitive games and will be tweaked before merge.

Fixes #3343

@kd-11

This comment has been minimized.

Copy link
Contributor Author

kd-11 commented Nov 9, 2019

NOTE: My comment in the description was maybe not clear enough, performance loss may happen with the current setup, but that is only because I made allocations too small on purpose for testing. More concerned with stability or lack thereof for the moment.

@Silanda

This comment has been minimized.

Copy link

Silanda commented Nov 9, 2019

Seems to fix Bayonetta.

@kd-11 kd-11 force-pushed the kd-11:rsx_volatile branch 2 times, most recently from 1f74c53 to f8d9c72 Nov 10, 2019
@kd-11 kd-11 changed the title [TESTERS NEEDED] rsx/vk: Implement dynamic sized memory heaps rsx/vk: Implement dynamic sized memory heaps Nov 10, 2019
kd-11 added 7 commits Nov 9, 2019
- The heaps will grow as desired, no need to overallocate to cater to
the most resource-hungry games
- The spec does not guarantee that queries are initialized. In fact, it
now says all queries must be reset before they are used for the first
time.
- Avoid referencing the old buffer in stale views. Status can be set
globally if requested during heap creation.
@kd-11 kd-11 force-pushed the kd-11:rsx_volatile branch from f8d9c72 to 6bac3ce Nov 10, 2019
@kd-11 kd-11 merged commit 8234bdb into RPCS3:master Nov 10, 2019
2 checks passed
2 checks passed
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.