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
What is Vulkan?
1.1.Vulkan Spec
1.3.Platforms
1.4.Checking for Support
1.5.Versions
1.6.What is SPIR-V?
1.8.Vulkan CTS
1.10.Vulkan Development Tools
1.11.2. Using Vulkan
Loader
2.1.Layers
2.2.Querying Properties, Extensions, Features, Limits, and Formats
2.3.Enabling Vulkan Extensions
2.3.1.Enabling Vulkan Features
2.3.2.Using SPIR-V Extension
2.3.3.Formats
2.3.4.WSI
2.5.pNext and sType
2.6.Synchronization
2.7.Threading
2.10.Depth
2.11.-
VK_EXT_depth_range_unrestricted
,VK_EXT_depth_clip_enable
,VK_EXT_depth_clip_control
Mapping Data to Shaders
2.12.Vertex Input Data Processing
2.12.1.Descriptor Dynamic Offset
2.12.2.Push Constants
2.12.3.Robustness
2.13.-
VK_EXT_image_robustness
,VK_EXT_robustness2
,VK_EXT_pipeline_robustness
Dynamic State
2.14.-
VK_EXT_extended_dynamic_state
,VK_EXT_extended_dynamic_state2
,VK_EXT_extended_dynamic_state3
,VK_EXT_vertex_input_dynamic_state
,VK_EXT_color_write_enable
,VK_EXT_attachment_feedback_loop_dynamic_state
Subgroups
2.15.-
VK_EXT_subgroup_size_control
,VK_KHR_shader_subgroup_extended_types
,VK_EXT_shader_subgroup_ballot
,VK_EXT_shader_subgroup_vote
Shader Memory Layout
2.16.-
VK_KHR_uniform_buffer_standard_layout
,VK_KHR_relaxed_block_layout
,VK_EXT_scalar_block_layout
Atomics
2.17.-
VK_KHR_shader_atomic_int64
,VK_EXT_shader_image_atomic_int64
,VK_EXT_shader_atomic_float
,VK_EXT_shader_atomic_float2
Common Pitfalls
2.18.Using HLSL shaders
2.19.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 |
Cleanup Extensions
3.1.-
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
Device Groups
3.2.-
VK_KHR_device_group
,VK_KHR_device_group_creation
External Memory and Sychronization
3.3.-
VK_KHR_external_fence
,VK_KHR_external_memory
,VK_KHR_external_semaphore
Ray Tracing
3.4.-
VK_KHR_acceleration_structure
,VK_KHR_ray_tracing_pipeline
,VK_KHR_ray_query
,VK_KHR_pipeline_library
,VK_KHR_deferred_host_operations
Shader Features
3.5.-
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
Translation Layer Extensions
3.6.-
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