I have also tested VR with Vulkan on Windows now, and well, it just works Just opened the VR preview in the editor thatās running with Vulkan, and the VR preview automatically run with Vulkan SM5 and it just worked. Very nice!
Performance is not as good as with D3D11 though. I canāt profile due to gpu stats not working, but with Vulkan I have 45 fps where with D3D11 I have 90 fps. With D3D11 the GPU time is 4.4 ms, so thereās a lot of free room until it would start reprojecting at 45 fps. Vulkan seems to be significantly slower than D3D11. I also tested performance of Vulkan in packaged, itās same slow as in Editor there.
Crash bugs & visual artifacts are higher priority for 4.17; performance optimizations will probably not make it to 4.17 (including gpu time/timestamp queries). Weāll focus on that for 4.18.
Its surely more important to fix the visual artifacts than to improve the performance. If there are no visual artifacts any more, then even with limited performance it will be possible to ship a VR game with Linux support using Vulkan, and thatās awesome
I did some testing with Vulkan SM5 on Windows and Linux.
On Windows I can confirm all the problems [MENTION=24522] Alcatraz[/MENTION] mentioned.
Specs: Windows 8.1 Pro, i7-2600K, 16GB RAM, GTX 670
On Linux I see loads of visual artifacts but they vanish when I enable r.Vulkan.WaitForIdleOnSubmit (thanks @Yaakuro for mentioning this!)
Specs: Arch Linux, i5-750, 16GB RAM, GTX 750Ti
During my tests I noticed that itās not possible to disable VSync by setting r.vsync to 0.
In the source code I found that the swap chainās present mode is hard coded to VK_PRESENT_MODE_FIFO_KHR which locks the FPS to the refresh rate.
By changing it to VK_PRESENT_MODE_MAILBOX_KHR in conjuction with setting t.MaxFPS to a very high value I was able to unlock the FPS.
With that I found that the FPS are much lower than with D3D11 and to make matters worse CPU usage is a lot higher.
I know itās not a priority but Iād like to see Vulkan at least on par with D3D11 rather sooner than later (I wonāt even mention D3D12 ;))
If you want Vulkan to be on par with D3D11 then you need to wait until UE4 pipeline is suited for Vulkan and DX12. It is still more like a DX11 rendering engine.
@ With 4.18 Preview being close now, can you maybe give some update on where Vulkan is now and whats still missing? I see in the last dev-rendering merge there was quite a lot of Vulkan stuff, I see you fixed profilegpu, and also improved performance quite a bit I think. I didnāt test it yet, I will once the 4.18 branch is available. It would be nice to know what āknown issuesā there are still with Vulkan that I donāt even need to report
When do you expect Vulkan in UE4 to perform same like D3D11 regarding performance?
Do you have a plan when you want to be at roughly D3D11 performance with Vulkan? Currently especially post processing seems to be very slow on Vulkan, SSAO is 3 times faster on D3D11.
Once optimizations are done, will Vulkan replace D3D11 as the engineās primary API? Will distance fields be made to work on Vulkan as well? How about D3D12?
With the release of Wolfstein working with Vulkan and optimized for AMD Ryzen, bringing impressive performanc, Im really looking foward to see this working well into the engine and starting checking my gameās project performance. It might make me delay launch until I can get it tested with Vulkan and have all regression test with it, and if possible it leaving experimental status in the next 8 months. Keep it up guys!
I got to test my asset with Vulkan at 4.19 since it is not working still at 4.18, thou I dont receive any errors. the material is just invisible atm.
PS: I tested and there is still issues. Main material is still invisible and I also noticed terrain at certain distances start to show artifacts that looks like black triangles. Im using raymarching and custom hlsl nodes, that works perfect for sm5. I was expecting at least for the remain of the scene that performance would be better but I am getting 1/2 FPS of I can get with sm5. If I set screenpercentage to 200% it is showing even worst performance than expected. I know the code is still wip but as I said, I was expecting more.
It sounds like itās going to be a while before we can get Vulkan on more mobile devices. Iām planning on making a mobile game now, but there are a lot of features I would like to use that are not accessible through the ES2 Mobile renderer: Ambient Occlusion, World Position Offset, Subsurface Scattering, and of course the plethora of texture limitations, especially on landscape (no more than 3 user-defined samplers per component).