Vulkan
®
1.4.341 - A Specification (with all registered extensions)
The Khronos
®
Vulkan Working Group
version 1.4.341,
2026-02-03 09:15:05Z
from git branch: makepkg commit: ac8223b312d40a6bc1733fb3490bdcdb5a389d50
Table of Contents
Titlepage
1. Preamble
2. Introduction
2.1. Document Conventions
3. Fundamentals
3.1. Host and Device Environment
3.2. Execution Model
3.3. Object Model
3.4. Application Binary Interface
3.5. Command Syntax and Duration
3.6. Threading Behavior
3.7. Valid Usage
3.8.
VkResult
Return Codes
3.9. Numeric Representation and Computation
3.10. Fixed-Point Data Conversions
3.11. String Representation
3.12. Common Object Types
3.13. API Name Aliases
4. Initialization
4.1. Command Function Pointers
4.2. Instances
5. Devices and Queues
5.1. Physical Devices
5.2. Devices
5.3. Queues
6. Command Buffers
6.1. Command Buffer Lifecycle
6.2. Command Pools
6.3. Command Buffer Allocation and Management
6.4. Command Buffer Recording
6.5. Command Buffer Submission
6.6. Queue Forward Progress
6.7. Secondary Command Buffer Execution
6.8. Nested Command Buffers
6.9. Command Buffer Device Mask
7. Synchronization and Cache Control
7.1. Execution and Memory Dependencies
7.2. Implicit Synchronization Guarantees
7.3. Fences
7.4. Semaphores
7.5. Events
7.6. Pipeline Barriers
7.7. Memory Barriers
7.8. Wait Idle Operations
7.9. Host Write Ordering Guarantees
7.10. Synchronization and Multiple Physical Devices
7.11. Calibrated Timestamps
8. Render Pass
8.1. Render Pass Objects
8.2. Render Pass Creation
8.3. Render Pass Compatibility
8.4. Framebuffers
8.5. Render Pass Load Operations
8.6. Render Pass Store Operations
8.7. Render Pass Multisample Resolve Operations
8.8. Render Pass Commands
8.9. Render Pass Creation Feedback
8.10. Common Render Pass Data Races (Informative)
8.11. Tile Shading Render Pass
9. Shaders
9.1. Shader Objects
9.2. Shader Modules
9.3. Shader Module Identifiers
9.4. Binding Shaders
9.5. Shader Execution
9.6. Shader Out-of-Bounds Memory Access
9.7. Shader Memory Access Ordering
9.8. Shader Inputs and Outputs
9.9. Task Shaders
9.10. Mesh Shaders
9.11. Cluster Culling Shaders
9.12. Vertex Shaders
9.13. Tessellation Control Shaders
9.14. Tessellation Evaluation Shaders
9.15. Geometry Shaders
9.16. Fragment Shaders
9.17. Compute Shaders
9.18. Ray Generation Shaders
9.19. Intersection Shaders
9.20. Any-Hit Shaders
9.21. Closest Hit Shaders
9.22. Miss Shaders
9.23. Callable Shaders
9.24. Interpolation Decorations
9.25. Push Constant Decorations
9.26. Static Use
9.27. Scope
9.28. Group Operations
9.29. Quad Group Operations
9.30. Derivative Operations
9.31. Helper Invocations
9.32. Cooperative Matrices
9.33. Cooperative Vectors
9.34. Validation Cache
9.35. CUDA Modules
10. Pipelines
10.1. Multiple Pipeline Creation
10.2. Pipeline Creation Flags
10.3. Compute Pipelines
10.4. Graphics Pipelines
10.5. Ray Tracing Pipelines
10.6. Pipeline Destruction
10.7. Pipeline Derivatives
10.8. Pipeline Cache
10.9. Pipeline Binaries
10.10. Specialization Constants
10.11. Pipeline Libraries
10.12. Pipeline Binding
10.13. Dynamic State
10.14. Pipeline Properties and Shader Information
10.15. Pipeline Compiler Control
10.16. Pipeline Creation Feedback
11. Memory Allocation
11.1. Host Memory
11.2. Device Memory
12. Resource Creation
12.1. Buffers
12.2. Buffer Views
12.3. Buffer Device Addresses
12.4. Images
12.5. Image Layouts
12.6. Image Views
12.7. Acceleration Structures
12.8. Micromaps
12.9. Resource Memory Association
12.10. Resource Sharing Mode
12.11. Memory Aliasing
12.12. Buffer Collections
12.13. Tensors
12.14. Tensor Views
13. Images
13.1. Image Coordinate Validation
13.2. Image Reads
13.3. Image Writes
14. Samplers
14.1. Sampler Y′C
B
C
R
Conversion
14.2. Custom Border Colors
14.3. Sampler block matching
15. Resource Descriptors
15.1. Descriptor Types
15.2. Descriptor Sets
15.3. Physical Storage Buffer Access
15.4. Descriptor Buffers
16. Descriptor Heaps
16.1. Writing Descriptors
16.2. Using Heaps
16.3. Shader Bindings
16.4. Packing descriptors more tightly
17. Shader Interfaces
17.1. Shader Input and Output Interfaces
17.2. Vertex Input Interface
17.3. Fragment Output Interface
17.4. Legacy Dithering
17.5. Fragment Tile Image Interface
17.6. Tile Attachment Interface
17.7. Fragment Input Attachment Interface
17.8. Ray Tracing Pipeline Interface
17.9. Shader Resource Interface
17.10. Built-In Variables
18. Image Operations
18.1. Image Operations Overview
18.2. Sampling Operations
18.3. Normalized Texel Coordinate Operations
18.4. Unnormalized Texel Coordinate Operations
18.5. Integer Texel Coordinate Operations
18.6. Image Sample Operations
18.7. Texel Footprint Evaluation
18.8. Weight Image Sampling
18.9. Block Matching
18.10. Box Filter Sampling
18.11. Image Operation Steps
18.12. Image Query Instructions
19. Fragment Density Map Operations
19.1. Fragment Density Map Operations Overview
19.2. Fetch Density Value
19.3. Fragment Area Conversion
20. Tensor Operations
20.1. Tensor Operations Overview
20.2. Tensor Element Input Operations
20.3. Tensor Element Output Operations
20.4. Tensor Query Instructions
21. Queries
21.1. Query Pools
21.2. Query Operation
21.3. Occlusion Queries
21.4. Pipeline Statistics Queries
21.5. Timestamp Queries
21.6. Performance Queries
21.7. Transform Feedback Queries
21.8. Primitives Generated Queries
21.9. Mesh Shader Queries
21.10. Intel Performance Queries
21.11. Result Status Queries
21.12. Video Encode Feedback Queries
22. Clear Commands
22.1. Clearing Images Outside a Render Pass Instance
22.2. Clearing Images Inside a Render Pass Instance
22.3. Clear Values
22.4. Filling Buffers
22.5. Updating Buffers
23. Copy Commands
23.1. Copying Data Between Buffers
23.2. Copying Data Between Images
23.3. Copying Data Between Buffers and Images
23.4. Indirect Copies
23.5. Image Copies With Scaling
23.6. Resolving Multisample Images
23.7. Buffer Markers
23.8. Copying Data Between Tensors
24. Drawing Commands
24.1. Primitive Topologies
24.2. Effective Primitive Topology
24.3. Primitive Order
24.4. Programmable Primitive Shading
24.5. Conditional Rendering
24.6. Programmable Mesh Shading
24.7. Programmable Cluster Culling Shading
25. Fixed-Function Vertex Processing
25.1. Vertex Attributes
25.2. Vertex Input Description
25.3. Vertex Attribute Divisor in Instanced Rendering
25.4. Vertex Input Address Calculation
26. Tessellation
26.1. Tessellator
26.2. Tessellator Patch Discard
26.3. Tessellator Spacing
26.4. Tessellation Primitive Ordering
26.5. Tessellator Vertex Winding Order
26.6. Triangle Tessellation
26.7. Quad Tessellation
26.8. Isoline Tessellation
26.9. Tessellation Point Mode
26.10. Tessellation Pipeline State
27. Geometry Shading
27.1. Geometry Shader Input Primitives
27.2. Geometry Shader Output Primitives
27.3. Multiple Invocations of Geometry Shaders
27.4. Geometry Shader Primitive Ordering
27.5. Geometry Shader Passthrough
28. Mesh Shading
28.1. Task Shader Input
28.2. Task Shader Output
28.3. Mesh Generation
28.4. Mesh Shader Input
28.5. Mesh Shader Output
28.6. Mesh Shader Per-View Outputs
28.7. Mesh Shader Primitive Ordering
29. Cluster Culling Shading
29.1. Cluster Culling Shader Input
29.2. Cluster Culling Shader Output
29.3. Cluster Culling Shader Cluster Ordering
29.4. Cluster Culling Shader Primitive Ordering
30. Fixed-Function Vertex Post-Processing
30.1. Transform Feedback
30.2. Viewport Swizzle
30.3. Flat Shading
30.4. Primitive Clipping
30.5. Clipping Shader Outputs
30.6. Controlling Viewport W Scaling
30.7. Coordinate Transformations
30.8. Render Pass Transform
30.9. Controlling the Viewport
31. Rasterization
31.1. Discarding Primitives Before Rasterization
31.2. Controlling the Vertex Stream Used for Rasterization
31.3. Rasterization Order
31.4. Multisampling
31.5. Custom Sample Locations
31.6. Fragment Shading Rates
31.7. Shading Rate Image
31.8. Sample Shading
31.9. Barycentric Interpolation
31.10. Points
31.11. Line Segments
31.12. Polygons
32. Fragment Operations
32.1. Discard Rectangles Test
32.2. Scissor Test
32.3. Exclusive Scissor Test
32.4. Sample Mask Test
32.5. Fragment Shading
32.6. Multisample Coverage
32.7. Depth and Stencil Operations
32.8. Depth Bounds Test
32.9. Stencil Test
32.10. Depth Test
32.11. Representative Fragment Test
32.12. Sample Counting
32.13. Fragment Coverage to Color
32.14. Coverage Reduction
33. The Framebuffer
33.1. Blending
33.2. Logical Operations
33.3. Color Write Mask
33.4. Color Write Enable
33.5. Framebuffer Query Instructions
34. Dispatching Commands
34.1. Dispatch Command for CUDA PTX Kernels
34.2. Compute Occupancy Priority
35. Device-Generated Commands
35.1. Indirect Commands Layout
35.2. Indirect Commands Generation and Execution
36. Sparse Resources
36.1. Sparse Resource Features
36.2. Sparse Buffers and Fully-Resident Images
36.3. Sparse Partially-Resident Buffers
36.4. Sparse Partially-Resident Images
36.5. Sparse Memory Aliasing
36.6. Sparse Resource Implementation Guidelines (Informative)
36.7. Sparse Resource API
37. Window System Integration (WSI)
37.1. WSI Platform
37.2. WSI Surface
37.3. Presenting Directly to Display Devices
37.4. Querying for WSI Support
37.5. Surface Queries
37.6. Full Screen Exclusive Control
37.7. Device Group Queries
37.8. Present Timing Queries
37.9. Present Wait
37.10. WSI Swapchain
37.11. HDR Metadata
37.12. Lag Control
37.13. Present Barrier
38. Deferred Host Operations
38.1. Requesting Deferral
38.2. Deferred Host Operations API
39. Private Data
40. Acceleration Structures
40.1. Acceleration Structures
40.2. Cluster Level Acceleration Structures
40.3. Partitioned Top Level Acceleration Structures
40.4. Host Acceleration Structure Operations
41. Compressed triangle data
41.1. Dense Geometry Format Version 1 (DGF1)
42. Micromap
42.1. Micromaps
42.2. Host Micromap Operations
43. Ray Traversal
43.1. Ray Intersection Candidate Determination
43.2. Ray Intersection Culling
43.3. Ray Intersection Confirmation
43.4. Ray Closest Hit Determination
43.5. Ray Result Determination
44. Ray Tracing
44.1. Shader Call Instructions
44.2. Ray Tracing Commands
44.3. Shader Binding Table
44.4. Ray Tracing Pipeline Stack
44.5. Ray Tracing Capture Replay
44.6. Ray Tracing Validation
45. Memory Decompression
46. Video Coding
46.1. Video Picture Resources
46.2. Decoded Picture Buffer
46.3. Video Profiles
46.4. Video Capabilities
46.5. Video Sessions
46.6. Video Profile Compatibility
46.7. Video Session Parameters
46.8. Video Coding Scope
46.9. Video Coding Control
46.10. Inline Queries
46.11. Video Decode Operations
46.12. H.264 Decode Operations
46.13. H.265 Decode Operations
46.14. VP9 Decode Operations
46.15. AV1 Decode Operations
46.16. Video Encode Operations
46.17. Video Encode Intra Refresh
46.18. Video Encode Rate Control
46.19. Video Encode Quantization Maps
46.20. Video Encode R′G′B′ Conversion
46.21. H.264 Encode Operations
46.22. H.265 Encode Operations
46.23. AV1 Encode Operations
47. Optical Flow
47.1. Optical Flow Queues
47.2. Optical Flow Image Formats
47.3. Optical Flow Session
48. Execution Graphs
48.1. Pipeline Creation
48.2. Initializing Scratch Memory
48.3. Dispatching a Graph
48.4. Shader Enqueue
49. External Compute Queues
50. Data graphs
50.1. Pipeline Creation
50.2. Sessions
50.3. Dispatch
50.4. Properties
50.5. Processing Engines
50.6. Operations
51. Extending Vulkan
51.1. Functionality Levels
51.2. Instance and Device Versions
51.3. Core Versions
51.4. Layers
51.5. Extensions
51.6. Extension Dependencies
51.7. Compatibility Guarantees (Informative)
52. Features
52.1. Feature Requirements
52.2. Roadmap Milestone Features
53. Limits
53.1. Limit Requirements
53.2. Additional Multisampling Capabilities
53.3. Milestone Limits
54. Formats
54.1. Format Definition
54.2. Format Properties
54.3. Required Format Support
55. Additional Capabilities
55.1. Additional Image Capabilities
55.2. Additional Buffer Capabilities
55.3. Additional Tensor Capabilities
55.4. Optional Semaphore Capabilities
55.5. Optional Fence Capabilities
55.6. Timestamp Calibration Capabilities
56. Debugging
56.1. Debug Utilities
56.2. Debug Markers
56.3. Debug Report Callbacks
56.4. Device Loss Debugging
56.5. Active Tooling Information
56.6. Frame Boundary
Appendix A: Vulkan Environment for SPIR-V
Versions and Formats
Capabilities
Validation Rules Within a Module
Precision and Operation of SPIR-V Instructions
Buffer Indexing Calculations
Signedness of SPIR-V Image Accesses
Image Format and Type Matching
Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types
Compatibility Between SPIR-V Image Formats and Vulkan Formats
Ray Query Precision and Operation
Compatibility Between SPIR-V Tensor Element Types And Vulkan Formats
Appendix B: Memory Model
Agent
Memory Location
Allocation
Memory Operation
Reference
Program-Order
Shader Call Related
Shader Call Order
Scope
Atomic Operation
Scoped Modification Order
Memory Semantics
Release Sequence
Synchronizes-With
System-Synchronizes-With
Private vs. Non-Private
Inter-Thread-Happens-Before
Happens-Before
Availability and Visibility
Availability, Visibility, and Domain Operations
Availability and Visibility Semantics
Per-Instruction Availability and Visibility Semantics
Location-Ordered
Data Race
Visible-To
Acyclicity
Shader I/O
Deallocation
Descriptions (Informative)
Tessellation Output Ordering
Cooperative Matrix Memory Access
Appendix C: Compressed Image Formats
Block-Compressed Image Formats
ETC Compressed Image Formats
ASTC Compressed Image Formats
PVRTC Compressed Image Formats
Appendix D: Core Revisions (Informative)
Vulkan Version 1.4
Vulkan Version 1.3
Vulkan Version 1.2
Vulkan Version 1.1
Vulkan Version 1.0
Appendix E: Layers & Extensions (Informative)
Extension Dependencies
Extension Interactions
List of Current Extensions
List of Provisional Extensions
List of Deprecated Extensions
Appendix F: Vulkan Roadmap Milestones
Roadmap 2022
Roadmap 2024
Roadmap 2026
Appendix G: Legacy and Superseded Functionality
List of Legacy Functionality
Appendix H: API Boilerplate
Vulkan Header Files
Window System-Specific Header Control (Informative)
Provisional Extension Header Control (Informative)
Video Std Headers
Appendix I: Invariance
Repeatability
Multi-Pass Algorithms
Invariance Rules
Tessellation Invariance
Appendix J: Lexicon
Glossary
Common Abbreviations
Video-Specific Abbreviations
Prefixes
Appendix K: Credits (Informative)
Working Group Contributors to Vulkan
Other Credits
Loading… please wait.
Search: