Closed OtavioRaposo closed 4 years ago
Every ball hit spawns a ridiculous amount of render passes, this is expected. Mario Tennis is known for this, and needs high sync in Angrylion to work, which also murders performance in general. Depends on your hardware though, I don't get stutter, but just a dip in performance.
Yes, but the stutter doesn't happen in angrylion (even in high sync). Shouldn't parallel-rdp be faster for the same hardware?
Depends on your hardware. GPU acceleration depends on a lot on parallelism, and GPU accel suffers more than CPU suffers under weird scenarios like certain frames of Mario Tennis. You can always construct pathological cases where a CPU implementation beats the GPU one. CPU runs perhaps on ~8 threads, while GPU runs on 10000+ threads.
I'm using a core i3-9100f and a RX 570 gpu. It's a pretty balanced gaming hardware. I still don't understand why angrylion is getting better performance than parallel-rdp.
I don't know how to explain this in simpler terms.
It's ok, but unfortunate, because I was looking forward to parallel replacing angrylion as my default emulator. These problems make parallel unreliable for me.
There are probably some opportunities to specifically optimize for these cases, but it's non-trivial.
I wrote a simple profiling setup for Granite which lets me debug performance issues like these.
Mario Tennis is doing a ton of microscopic render passes, each just taking a few tens of microseconds, but the delay between each GPU submit is just killing the GPU when you get a string of ~50 render passes in a row like this. I have some ideas how to optimize for this case now. parallel-RDP is currently optimized for "normal" passes.
That would be because Mario Tennis implements heat haze and blur on ball movements. Yes, heat haze by render-to-texture.
Rewrote submission logic and Mario Tennis is essentially fixed now. Don't even notice a dip in performance anymore.
Rewrote submission logic and Mario Tennis is essentially fixed now. Don't even notice a dip in performance anymore.
Are these updates already available in the parallel-64 libretro core?
Part of this PR update: https://github.com/libretro/parallel-n64/pull/664
It happens with me every time I hit the tennis ball. In angrylion the stuttering doesn't occur.