About Us > FAQ

Experts in High-Quality
3D Graphics Solutions
and 3D Graphics Performance

Have questions about LunarG, the Vulkan® SDK, available Vulkan® ecosystem tools to help developers tune graphics performance, or OpenXR™? If so, below are some frequently asked questions and answers by area.

The Vulkan® SDK is available on the Vulkan® SDK download site.
The SDK offers a number of advantages:
  • Vulkan®, by design, is a very low­-level API that provides applications direct control over GPU acceleration with minimized CPU overhead and efficient multi­-threaded performance. The SDK provides tools to help you develop to this lower level API.
  • The SDK is available for Linux, Windows®, macOS, and Ubuntu (package format) operating systems. Because Vulkan® is a direct competitor of Microsoft® DirectX12®, Microsoft will not offer Vulkan® developer tools for Windows. The SDK provides comprehensive tools for Linux/Ubuntu, Windows, and macOS operating systems.
  • Vulkan® is a cross­-platform API that supports a range of devices including desktop, mobile, and console. The Vulkan® loader and validation layers are canonical pieces that are critical in achieving this cross-­platform compatibility. These components are open source, and you can choose to build them. To speed development efforts, the SDK includes the loader and layers already built for you.
  • Because Vulkan® is a very low­-level API, a simple program is much longer to write compared to OpenGL. The included utilities and samples help you learn the process.
Vulkan® requires drivers to omit traditional error checks; drivers assume that the application is using the driver correctly. The validation layers are the key for identifying errors in using the API during development. The layers check for correct implementation of the Vulkan® API and return any errors found. You can enable validation layers during application development, and then disable them for production shipments.
Yes, examples demonstrating the use of the Vulkan® API are located in the SDK. Also included with the SDK is a Vulkan® Tutorial that is organized to walk you through the steps to create a simple Vulkan® program. Each tutorial section corresponds directly to a sample program in the Vulkan® SDK samples progression and is designed to be read as you look at and experiment with real code from the progression.
You can capture a capture file of the Vulkan® API calls and replay them using the capture tools. Commonly, application developers share application workloads with third parties, such as IHVs (independent hardware vendors), who don’t have access to their application.
  • The capture tool (GFXReconstruct) captures the Vulkan® API activity in an application and stores it in a file.
  • The replay tool (also found in GFXReconstruct) plays back the capture file, independent of the application.
As an example, this capability is useful for reporting a rendering problem to an IHV. The capture file reduces the need for the IHV to set up an environment to reproduce the problem.
Loader: Consistent loader behavior across platforms is key to Vulkan®. The Vulkan® loader:
    • Discovers and manages the Vulkan® devices/drivers and layers available to the application.
    • Is delivered with the Vulkan® driver update packages provided by the IHVs.
    • Is included in the SDK for Linux and macOS
The SDK supports Windows 7 (64-bit), Windows 10 (64-bit), Linux tarball and Ubuntu packages, and macOS. For the specific distributions refer to the documentation found on the Vulkan® SDK download site (https://vulkan.lunarg.com/).
The Vulkan® shader language is SPIR-­V, which is a low­-level binary intermediate representation (IR). The Vulkan® API requires the SPIR­-V format for all shaders. SPIR-­V splits the compiler chain, enabling high-­level language front­ ends to emit programs in a standardized intermediate form to be ingested by Vulkan®.
No. You can use existing GLSL and HLSL shaders with the included tool glslangValidator, which creates SPIR-­V shaders from equivalent GLSL and HSLS shaders.
SPIR-V tools are included with the Vulkan® SDK. Examples of existing tools are: an optimizer, a disassembler, an assembler, a validator, and a remapper. See the SDK documentation on the Vulkan® SDK download site for a current list of available SPIR-V tools (https://vulkan.lunarg.com/doc/sdk/latest/windows/spirv_toolchain.html).

Need Help with
3D Graphics Software?

Interested in LunarG software services or have a unique need that you don't see represented here? Let's talk about your project...