Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!
With the addition, Flax now supports DirectX 11, DirectX 12, and Vulkan. Over DirectX 11, the Vulkan renderer reduces CPU utilization up to 10%, is faster than the DirectX 12 renderer, and they have future performance improvements planned. Flax also plans to remove their OpenGL backend in favor of Vulkan, which they view as particularly important for mobile platforms where Vulkan is much faster than OpenGL ES.
From the announcement:
Quote
Havingstable Vulkan graphics backend is a notable milestonethat moves us closer towards adding support for more platforms (who wantsFlax Editor for Linux?).
Vulkan implementation in Flax
Under the hood, we usevolkfor loadingentrypoints,Vulkan Memory Allocatorfrom AMD to improve GPU resources allocation andglslangto compile our HLSL shaders into SPIR-V.
The current implementation supports full graphics pipeline and compute shaders (only stream-output and counter buffers are missing). We use descriptors pool manager to reuse descriptor set layouts and optimized pipeline binding to reduce API calls. The pipeline state objects are cached on request and reused later which reduces memory usage. Also using ring-buffer for uniforms data reduces descriptors changes due to dynamic offset assignment that is more efficient.