A Guide to Vulkan Synchronization Validation

Correct synchronization is needed to ensure correct results from Vulkan operations (whether graphical or computational). 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.

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.

The Guide to Vulkan Synchronization Validation (PDF), 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.

Authored by

Comments

 

Khronos® and Vulkan® are registered trademarks, and ANARI™, WebGL™, glTF™, NNEF™, OpenVX™, SPIR™, SPIR-V™, SYCL™, OpenVG™ and 3D Commerce™ are trademarks of The Khronos Group Inc. OpenXR™ is a trademark owned by The Khronos Group Inc. and is registered as a trademark in China, the European Union, Japan and the United Kingdom. OpenCL™ is a trademark of Apple Inc. and OpenGL® is a registered trademark and the OpenGL ES™ and OpenGL SC™ logos are trademarks of Hewlett Packard Enterprise used under license by Khronos. All other product names, trademarks, and/or company names are used solely for identification and belong to their respective owners.
devilish