yuzu
yuzu copied to clipboard
GPU: Implement channel scheduling.
This allows scheduling channels in the GPU and avoids games that have multiple channels from running a channel before another.
The scheduling algorithm is pretty simple and does not take into account timeslices. It just tries to give every channel an equal opportunity to run and lets channels yield when they are blocked by another.
It needs testing.
This may be needed for multiprocess emulation when one process's GPU channel requires a shared resource from another process's GPU channel to be finished.
Games that use multiple channels are very few and don't seem impacted by this.
~~EDIT: this seems to crash renderdocs~~