Primus-VK: PRIME-Style GPU Offloading For Vulkan
For those with a PRIME style notebook or just making use of dual/multiple graphics processors in your system, Primus-VK allows for using a secondary/dedicated GPU for rendering while driving the display from the alternative (often integrated graphics) GPU. Primus-VK is implemented as a Vulkan layer as a clean approach for dealing with multiple GPUs in a Vulkan world.
Primus-VK pursues Vulkan GPU offloading by implementing this logic as a Vulkan layer for handling the rendering on one GPU and then when it comes to display-time it copies the image over to the integrated/primary GPU. This layer can be installed per-user or system-wide and has been tested on the likes of Debian. ENABLE_OPTIMUS_LAYER=1 is the environment variable used for activating the behavior. Primus-VK has also been tested with Windows games under Wine.
There is some performance overhead with this approach due to multiple memory copies involved, at least with the initial design of this Vulkan layer, but at least in nearly all instances should still be better off than being stuck with the compute power of integrated graphics.
Those wanting to experiment with Primus_VK can learn more about this Vulkan offload layer via GitHub.
Primus-VK pursues Vulkan GPU offloading by implementing this logic as a Vulkan layer for handling the rendering on one GPU and then when it comes to display-time it copies the image over to the integrated/primary GPU. This layer can be installed per-user or system-wide and has been tested on the likes of Debian. ENABLE_OPTIMUS_LAYER=1 is the environment variable used for activating the behavior. Primus-VK has also been tested with Windows games under Wine.
There is some performance overhead with this approach due to multiple memory copies involved, at least with the initial design of this Vulkan layer, but at least in nearly all instances should still be better off than being stuck with the compute power of integrated graphics.
Those wanting to experiment with Primus_VK can learn more about this Vulkan offload layer via GitHub.
19 Comments