-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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: Optimizations #6112
rsx: Optimizations #6112
Conversation
Getting just a black screen on radv 19.1 on my rx 570 amdvlk seems to work fine |
Probably depends on what you're running but I can check in a few seconds. |
Confirmed issue on RADV drivers. It will get fixed before merge. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Massive GPU Usage Improvement in GOW3! From 37-40% GPU (last rpcs3) to 13% GPU in this PR! FPS is still low but I guess that came from a different PR Params: GOW3, GTX1060 Vulkan SPU-LLVM PPU-LLVM Multithread RSX ON |
@Snakegodeater I don't want to be rude, but this pull request is going to end up getting a lot of replies which makes it hard to follow. Asking unrelated questions does not help at all, it'd be better if you asked this in f.ex. Discord chat instead of here. |
RADV issue seems to be a driver bug relating to texelFetch instruction. I'll open a bug report with them. |
In R&C2 I'm seeing around 10 FPS improvement in the most demanding areas. i9 8950HK 5 GHz and 1080 |
Resistance 3 haven demo doesnt go ingame anymore. |
Amazing! I'm getting like 50% fps improvement in Persona 5 I'm using i5 8400 integrated HD 630 vulkan Multithread RSX off |
i7-3770, Nvidia 1030 (418.56), Vulkan renderer, Multithread RSX off, Ubuntu 18.04 P5 (Yongen-Jaya): |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
- When multithreaded RSX is enabled, the vertex cache just lowers performance - The small cost of upload is paid by the asynchronous thread, allowing RSX to work optimally
- Remove string comparisons from the hot-path! - Use attribute streaming and push constants to avoid forcing a descriptor block copy every other draw call/pass. While this isn't so bad on nvidia cards, it makes AMD cards a slideshow.
- Avoid spamming the driver with samplerParameter calls unless the parameters have actually changed
- Use a lockless queue - Do not enqueue small transfers
- Avoid spamming QPC when not needed - Free performance when debug overlay is not enabled
- Typo fix - This check leads to forever relocating memory if size never exceeds capacity!
- Do not consume a slot every draw call, instead batch as many draws as possible - Since renderpasses are dispatched per-draw-clause, keeping occlusion queries outside the renderpasses works fine - If renderpasses are reorganized, occlusion tasks will have to be reorganized again
- Use two counters to avoid atomic operations - Yield instead of sleeping because some games are very sensitive to timing
Wipeout HD has a serious problem but not from this PR; I'll investigate that as a separate issue. On my setup I get verification failed error when WCB is enabled which is different from what is reported here and is likely unrelated. FFXIII crash does not originate in RSX code and is not in the VRAM partition either. My guess would be race conditions causing problems now that RSX is running "too fast". |
you are right it's the wcb i tested and without wcb it works on master before this pr |
Just noting that after Yahz's comments on inFamous I tested it on my PC with this revision and I didn't get anywhere near the FPS he got. For me it ranged from 5 - 25, jumping wildly, with major audio issues going on. |
I can confirm that Wipeout HD runs fine with WCB on the build before this (tried multiple times) and now it always hangs on the loading screen 100% of time before track renders. So while the game has other issues, this PR really exacerbated the problem I guess and now it doesn't work anymore. Previously, I had this game marked as "fully playable" given there's no issues with it aside from the occasional lag. Let me know if you want a tracking issue for this. Build before (fine): Build after this was merged (broken): |
@JasonFre Yahfz has an 8700k overclocked to 5.3GHz, good luck beating his FPS. If your not on a system that is close to that powerful than ofc you won't be reaching the same performance levels. You should really be listing your hardware/settings though. And if it's just because your hardware isn't strong enough or your settings are wrong than it belongs on Discord. https://discord.me/RPCS3 |
This PR is a collection of several optimizations done over the past week or so. Highlights:
Other miscellaneous improvements:
Overall, the performance uplift on vulkan is quite significant, but unfortunately most games may not see the full benefit as they just moved the performance bottleneck to other units of the emulator. In purely PPU+RSX workloads, the performance jump is anywhere from 20-50% depending on the system. In some games the framerate may not change much, but the working time spent by RSX (RSX load) goes down significantly.
NOTE: If you experience flickering visuals with Multithreaded RSX option enabled, just don't use it. It is a sign that the extra thread is being unscheduled frequently by your OS and is not able to keep up; something which defeats the purpose of an offloader thread. More tuning on this will be done later. This option defaults to OFF as it can hurt performance in some games even on high core count CPUs.