Vulkan® Guide
This document is also available in the following languages:
Japanese
The Vulkan Guide is designed to help developers get up and going with the world of Vulkan. It is aimed to be a light read that leads to many other useful links depending on what a developer is looking for. All information is intended to help better fill the gaps about the many nuances of Vulkan.
|
Note
|
The Vulkan Guide can be built as a single page using |
1. Logistics Overview
1.1. What is Vulkan?
1.3. Vulkan Spec
1.4. Platforms
1.5. Checking for Support
1.6. Versions
1.8. What is SPIR-V?
1.10. Vulkan CTS
1.11. Vulkan Development Tools
2. Using Vulkan
2.1. Loader
2.2. Layers
2.3. Querying Properties, Extensions, Features, Limits, and Formats
2.3.1. Enabling Vulkan Extensions
2.3.2. Enabling Vulkan Features
2.3.3. Using SPIR-V Extension
2.3.4. Formats
2.5. WSI
2.6. pNext and sType
2.7. Synchronization
2.10. Threading
2.11. Depth
-
VK_EXT_depth_range_unrestricted,VK_EXT_depth_clip_enable,VK_EXT_depth_clip_control
2.12. Mapping Data to Shaders
2.12.1. Vertex Input Data Processing
2.12.2. Descriptor Dynamic Offset
2.12.3. Push Constants
2.13. Robustness
-
VK_EXT_image_robustness,VK_EXT_robustness2,VK_EXT_pipeline_robustness
2.14. Dynamic State
-
VK_EXT_extended_dynamic_state,VK_EXT_extended_dynamic_state2,VK_EXT_vertex_input_dynamic_state,VK_EXT_color_write_enable
2.15. Subgroups
-
VK_EXT_subgroup_size_control,VK_KHR_shader_subgroup_extended_types,VK_EXT_shader_subgroup_ballot,VK_EXT_shader_subgroup_vote
2.16. Shader Memory Layout
-
VK_KHR_uniform_buffer_standard_layout,VK_KHR_relaxed_block_layout,VK_EXT_scalar_block_layout
2.17. Atomics
-
VK_KHR_shader_atomic_int64,VK_EXT_shader_image_atomic_int64,VK_EXT_shader_atomic_float,VK_EXT_shader_atomic_float2
2.18. Common Pitfalls
2.19. Using HLSL shaders
3. When and Why to use Extensions
|
Note
|
These are supplemental references for the various Vulkan Extensions. Please consult the Vulkan Spec for further details on any extension |
3.1. Cleanup Extensions
-
VK_EXT_4444_formats,VK_KHR_bind_memory2,VK_KHR_create_renderpass2,VK_KHR_dedicated_allocation,VK_KHR_driver_properties,VK_KHR_get_memory_requirements2,VK_KHR_get_physical_device_properties2,VK_EXT_host_query_reset,VK_KHR_maintenance1,VK_KHR_maintenance2,VK_KHR_maintenance3,VK_KHR_maintenance4,VK_KHR_separate_depth_stencil_layouts,VK_KHR_depth_stencil_resolve,VK_EXT_separate_stencil_usage,VK_EXT_sampler_filter_minmax,VK_KHR_sampler_mirror_clamp_to_edge,VK_EXT_ycbcr_2plane_444_formats,VK_KHR_format_feature_flags2,VK_EXT_rgba10x6_formats,VK_KHR_copy_commands2
3.2. Device Groups
-
VK_KHR_device_group,VK_KHR_device_group_creation
3.3. External Memory and Sychronization
-
VK_KHR_external_fence,VK_KHR_external_memory,VK_KHR_external_semaphore
3.4. Ray Tracing
-
VK_KHR_acceleration_structure,VK_KHR_ray_tracing_pipeline,VK_KHR_ray_query,VK_KHR_pipeline_library,VK_KHR_deferred_host_operations
3.5. Shader Features
-
VK_KHR_8bit_storage,VK_KHR_16bit_storage,VK_KHR_shader_clock,VK_EXT_shader_demote_to_helper_invocation,VK_KHR_shader_draw_parameters,VK_KHR_shader_float16_int8,VK_KHR_shader_float_controls,VK_KHR_shader_non_semantic_info,VK_EXT_shader_stencil_export,VK_KHR_shader_terminate_invocation,VK_EXT_shader_viewport_index_layer,VK_KHR_spirv_1_4,VK_KHR_storage_buffer_storage_class,VK_KHR_variable_pointers,VK_KHR_vulkan_memory_model,VK_KHR_workgroup_memory_explicit_layout,VK_KHR_zero_initialize_workgroup_memory
3.6. Translation Layer Extensions
-
VK_EXT_custom_border_color,VK_EXT_border_color_swizzle,VK_EXT_depth_clip_enable,VK_EXT_depth_clip_control,VK_EXT_provoking_vertex,VK_EXT_transform_feedback,VK_EXT_image_view_min_lod

