The main benefit of Vulkan over older mobile rendering APIs such as OpenGL ES 3.x is speed. Vulkan is designed to take advantage of multiple CPU cores by allowing the application to build command lists in multiple threads in parallel. This allows the application to take advantage of all of the CPU cores on the device, improving performance. The Vulkan preview release supports this via the "Enable Graphics Jobs" checkbox in the player settings. However, we're seeing large performance gains even when running the renderer in a single thread. In one of our internal benchmarks we're seeing up to 35% improvement in frame times on Android, compared to OpenGL ES 3.1 renderer, even though they're both running in a single rendering thread!
Getting startedGet the experimental build from our beta page. The build is based on Unity 5.5 beta 4 release. Remember to back up your projects before trying this out!
To enable Vulkan support, open "Player Settings…", go to the "Other Settings" pane and clear the "Auto Graphics API" checkbox. You are presented with an ordered list of graphics APIs to choose from. If Vulkan is not on that list, click the '+' sign at the bottom of the list to add it. Then drag Vulkan to be the first item on the list so that it'll be used whenever supported, and you're done! All your existing shaders will get translated to Vulkan SPIR-V (unless specifically disabled via #pragma only_renderers or similar), and the idea is that things should "Just Work".
You can also experiment with the Enable Graphics Jobs checkbox, it can give a nice performance boost especially on multi-core CPUs.
NOTE! When targeting Android, make sure you never have both "Multithreaded Rendering" and "Graphics Jobs (Experimental)" settings enabled at the same time. They are mutually exclusive, and in the final version we'll silently ignore the Multithreaded Renderer setting if Graphics Jobs are enabled.
Now, just build & run, and if everything went as planned, you should see something like this in the player log at startup:
Supported devicesThis preview build has Vulkan support enabled for the following targets:
On Windows, we've been mainly testing on Nvidia and AMD GPUs. Remember to update your GPU drivers! Vulkan is a new technology and the drivers keep improving constantly, so before reporting a crash, check first if an updated driver fixes the problem.
On Android, we've tested on the following devices:
The following devices are known not to work with the currently available firmware:
On Linux, only the Nvidia GPUs have been tested. You'll need to have libvulkan1 installed (either from your distro or via the LunarG Vulkan SDK) and recent enough drivers (367.x or newer). However, we've seen random hangs when transitioning from the splash screen into the game itself. So when testing this experimental release, you might consider disabling the Unity splash screen, if you have that option.
Known issuesAs this is an experimental developer preview, there are some known issues we're working on. We also welcome your feedback! Please let us know of any bugs or issues you find:
We hope you'll have fun experimenting with the new renderer. Please talk to us about it at our forums: what works, what doesn't, what you like about it and what you're missing. If you believe you've found a bug, please report it via our bug reporting system (make sure to mention it refers to the experimental Vulkan build). We're especially interested in cases where the Vulkan renderer would be slower than GL ES 3.x on Android, or significantly slower than DX11 or DX9 on Windows.
Source: Introducing the Vulkan renderer preview
No comments:
Post a Comment