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: Fix vertex input validation failure #14820

Merged
merged 1 commit into from Nov 15, 2023
Merged

rsx: Fix vertex input validation failure #14820

merged 1 commit into from Nov 15, 2023

Conversation

kd-11
Copy link
Contributor

@kd-11 kd-11 commented Nov 15, 2023

This bug is technically a regression. We switched from a allocate-per-draw-call to reusing the vertex input data due to the large performance impact of allocating the struct each draw call (basically millions of times per second in some games). We need to make sure previous state does not affect validation results.

  • Memcpy/memset is too slow at this level of frequency, so just reset the attributes you're using before using them.
  • Also changes the validation routine to only check attributes we're actually using.

Fixes #14815

- We switched from a allocate-per-draw-call to reusing the vertex input data. We need to make sure previous state does not affect validation results.
- Memcpy is too slow at this level of frequency, so just reset the attributes you're using before using them.
- Also changes the validation routine to only check attributes we're actually using.
@Ordinary205
Copy link
Contributor

Thanks to this PR, I managed to go further on test drive unlimited 2, which no longer crashes the whole emulator before reaching the title screen.
Test drive unlimited 2
RPCS3.log.gz

@Shoegzer
Copy link

Shoegzer commented Nov 15, 2023

This is a promising development towards resolving #10886 and #12568, as it gets a bit further through the intro screens to the actual title screen as shown above. However, WCB and RCB are both needed to fix severely broken graphics past that point, and with WCB turned on in particular, the game still freezes.

Log: RPCS3.log.zip

@Ordinary205
Copy link
Contributor

Ordinary205 commented Nov 15, 2023

This is a promising development towards resolving #10886 and #12568, as it gets a bit further through the intro screens to the actual title screen as shown above. However, WCB and RCB are both needed to fix severely broken graphics past that point, and with WCB turned on in particular, the game still freezes.

Log: RPCS3.log.zip

Have you tried using Atomic with driver wake-up delay around 200us to fix freezes? Because the game doesn't seem to freeze after 30 minutes of gameplay when using this option.

@kd-11 kd-11 merged commit ab8a12e into RPCS3:master Nov 15, 2023
4 of 6 checks passed
@Shoegzer
Copy link

@Ordinary205 The specific combination of WCB/RCB, atomic and 200us wake-up delay were one of my tests, and unfortunately it still freezes with them (black screen after title with no further progress). I retested again to be sure.

@Augusto7743
Copy link

@kd-11
Thanks very much for doing fixes in rsx code and allowing vulkan support for geforce 600 kepler too.

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.

[BLES01112] Cabela's Dangerous Hunts 2011- Crashes whole emulator when trying to get ingame
5 participants