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 improvements 2 [part 2 of 3] #6357

Merged
merged 3 commits into from Aug 18, 2019
Merged

Conversation

kd-11
Copy link
Contributor

@kd-11 kd-11 commented Aug 16, 2019

  • Further improves surface cache hierarchy and data tracking. Preserves data more strictly by ensuring everything generated on the GPU is visible to other surfaces.
  • Implements Read Color Buffers and Read Depth Buffer for Vulkan. Fixes missing data when Cell and RSX work together to render a scene.
  • Adds a workaround to prevent race conditions between Cell and RSX in the middle of a transfer operation. This is superceded by later works, but as they are still incomplete, this can serve as a stop-gap measure.

- Further improve aliased data preservation by unconditionally scanning.
  Its is possible for cache aliasing to occur when doing memory split.
- Also sets up for RCB/RDB implementation
- Implements render target data load (aka Read Color Buffer/Read Depth Buffer)
- Refactors vulkan surface barrier to be much cleaner.
- Removes redundant surface barrier invocations after doing a merged load
  from surface cache.
- Adds explicit access modes when gathering surfaces from cache.
@MarioSonic2987
Copy link
Contributor

Appears a weird layer in GTA IV since this PR.

Images

image
image

RenderDoc VK

if (tag.second != *reinterpret_cast<u64*>(vm::g_sudo_addr + tag.first))
void shuffle_tag()
{
memory_tag_samples[0].second = memory_tag_samples[0].second;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Self-assignment looks like a typo

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea, missing ~

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

Successfully merging this pull request may close these issues.

None yet

3 participants