Ryujinx
Ryujinx copied to clipboard
Vulkan: Batch vertex buffer updates
This PR batches together vertex buffer updates to reduce the number of individual calls to update vertex buffers. It also avoids rebinding vertex buffers that have not changed, which is common when games are doing instanced rendering.

Improves performance slightly on BOTW on my system. Some areas bind more vertex buffers per draw than others.
Note that any improvement greatly depends on the game and the driver.
Download the artifacts for this pull request:
- ryujinx-Release-1.1.0+7dc107c-linux_x64
- ryujinx-Release-1.1.0+7dc107c-osx_x64
- ryujinx-Release-1.1.0+7dc107c-win_x64
Experimental GUI (Avalonia)
GUI-less (SDL2)
Only for Developers
- ava-ryujinx-Debug-1.1.0+7dc107c-linux_x64
- ava-ryujinx-Debug-1.1.0+7dc107c-osx_x64
- ava-ryujinx-Debug-1.1.0+7dc107c-win_x64
- ryujinx-Debug-1.1.0+7dc107c-linux_x64
- ryujinx-Debug-1.1.0+7dc107c-osx_x64
- ryujinx-Debug-1.1.0+7dc107c-win_x64
- sdl2-ryujinx-headless-Debug-1.1.0+7dc107c-linux_x64
- sdl2-ryujinx-headless-Debug-1.1.0+7dc107c-osx_x64
- sdl2-ryujinx-headless-Debug-1.1.0+7dc107c-win_x64