Correct synchronization is needed to ensure correct results from Vulkan operations (whether graphical or computational). A Vulkan Synchronization Validation layer has been created to help identify resource access conflicts due to missing or incorrect synchronization operations between actions (Draw, Copy, Dispatch, Blit) reading or writing the same regions of memory. LunarG offers a Guide to Vulkan Synchronization Validation to help developers get started.
Vulkan Synchronization Validation
Modern graphics hardware is both parallel and pipelined, with various operations happening simultaneously for performance reasons. Vulkan has a limited number of ordering guarantees, but for most operations, it is the application’s responsibility to inform the implementation when ordering is required between operations. The need for such synchronization operations arises when the same region of memory is used by subsequent operations in different ways — for example a mip-level being written by a blit operation, and then being used for sampled lookup by a shader. If these two uses are not guaranteed to operate sequentially, a data hazard exists.
Click here to download the Guide to Vulkan Synchronization Validation, a LunarG white paper, provides an overview of synchronization and why it is important along with a quick start guide for new users. The reader will learn about synchronization validation and associated validation messages, how to use synchronization validation, and how to optimize it.
Developers should be familiar with both Vulkan Synchronization and using/configuring Vulkan Validation before trying to run synchronization validation.
More information about LunarG
LunarG’s software engineering experts create innovative products and services for open source and commercial customers using leading-edge 3D graphics and compute technologies, including Vulkan, OpenXR, SPIR-V, and OpenGL. We have strengths in performance analysis and tuning, runtime and tools development, shader optimizations, driver development, and porting engines and applications to Vulkan. Our software engineering team is based in Fort Collins, Colorado. LunarG was founded by software experts who are passionate about 3D graphics.
For more information about LunarG, please check out our new website.