Vulkan
®
1.3.214 - A Specification (with all registered Vulkan extensions)
The Khronos
®
Vulkan Working Group
version 1.3.214,
2022-05-17 13:52:45Z
from git branch: github-main commit: 028789841d7ba54cabc678a128e7b98d30c0b4cd
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. Common Object Types
3.12. 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. 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 Creation
8.2. Render Pass Compatibility
8.3. Framebuffers
8.4. Render Pass Commands
8.5. Render Pass Creation Feedback
9. Shaders
9.1. Shader Modules
9.2. Shader Execution
9.3. Shader Memory Access Ordering
9.4. Shader Inputs and Outputs
9.5. Task Shaders
9.6. Mesh Shaders
9.7. Vertex Shaders
9.8. Tessellation Control Shaders
9.9. Tessellation Evaluation Shaders
9.10. Geometry Shaders
9.11. Fragment Shaders
9.12. Compute Shaders
9.13. Ray Generation Shaders
9.14. Intersection Shaders
9.15. Any-Hit Shaders
9.16. Closest Hit Shaders
9.17. Miss Shaders
9.18. Callable Shaders
9.19. Interpolation Decorations
9.20. Static Use
9.21. Scope
9.22. Group Operations
9.23. Quad Group Operations
9.24. Derivative Operations
9.25. Helper Invocations
9.26. Cooperative Matrices
9.27. Validation Cache
10. Pipelines
10.1. Compute Pipelines
10.2. Graphics Pipelines
10.3. Ray Tracing Pipelines
10.4. Pipeline Destruction
10.5. Multiple Pipeline Creation
10.6. Pipeline Derivatives
10.7. Pipeline Cache
10.8. Specialization Constants
10.9. Pipeline Libraries
10.10. Pipeline Binding
10.11. Dynamic State
10.12. Pipeline Shader Information
10.13. Pipeline Compiler Control
10.14. Pipeline Creation Feedback
10.15. Pipeline Properties
11. Memory Allocation
11.1. Host Memory
11.2. Device Memory
12. Resource Creation
12.1. Buffers
12.2. Buffer Views
12.3. Images
12.4. Image Layouts
12.5. Image Views
12.6. Acceleration Structures
12.7. Resource Memory Association
12.8. Resource Sharing Mode
12.9. Memory Aliasing
12.10. Buffer Collections
13. Samplers
13.1. Sampler Y′C
B
C
R
conversion
14. Resource Descriptors
14.1. Descriptor Types
14.2. Descriptor Sets
14.3. Physical Storage Buffer Access
15. Shader Interfaces
15.1. Shader Input and Output Interfaces
15.2. Vertex Input Interface
15.3. Fragment Output Interface
15.4. Fragment Input Attachment Interface
15.5. Ray Tracing Pipeline Interface
15.6. Shader Resource Interface
15.7. Built-In Variables
16. Image Operations
16.1. Image Operations Overview
16.2. Conversion Formulas
16.3. Texel Input Operations
16.4. Texel Output Operations
16.5. Normalized Texel Coordinate Operations
16.6. Unnormalized Texel Coordinate Operations
16.7. Integer Texel Coordinate Operations
16.8. Image Sample Operations
16.9. Texel Footprint Evaluation
16.10. Image Operation Steps
16.11. Image Query Instructions
17. Fragment Density Map Operations
17.1. Fragment Density Map Operations Overview
17.2. Fetch Density Value
17.3. Fragment Area Conversion
18. Queries
18.1. Query Pools
18.2. Query Operation
18.3. Occlusion Queries
18.4. Pipeline Statistics Queries
18.5. Timestamp Queries
18.6. Performance Queries
18.7. Transform Feedback Queries
18.8. Primitives Generated Queries
18.9. Intel performance queries
18.10. Result Status Queries
18.11. Video Encode Bitstream Buffer Range
19. Clear Commands
19.1. Clearing Images Outside A Render Pass Instance
19.2. Clearing Images Inside A Render Pass Instance
19.3. Clear Values
19.4. Filling Buffers
19.5. Updating Buffers
20. Copy Commands
20.1. Copying Data Between Buffers
20.2. Copying Data Between Images
20.3. Copying Data Between Buffers and Images
20.4. Image Copies with Scaling
20.5. Resolving Multisample Images
20.6. Buffer Markers
21. Drawing Commands
21.1. Primitive Topologies
21.2. Primitive Order
21.3. Programmable Primitive Shading
21.4. Conditional Rendering
21.5. Programmable Mesh Shading
22. Fixed-Function Vertex Processing
22.1. Vertex Attributes
22.2. Vertex Input Description
22.3. Vertex Attribute Divisor in Instanced Rendering
22.4. Vertex Input Address Calculation
23. Tessellation
23.1. Tessellator
23.2. Tessellator Patch Discard
23.3. Tessellator Spacing
23.4. Tessellation Primitive Ordering
23.5. Tessellator Vertex Winding Order
23.6. Triangle Tessellation
23.7. Quad Tessellation
23.8. Isoline Tessellation
23.9. Tessellation Point Mode
23.10. Tessellation Pipeline State
24. Geometry Shading
24.1. Geometry Shader Input Primitives
24.2. Geometry Shader Output Primitives
24.3. Multiple Invocations of Geometry Shaders
24.4. Geometry Shader Primitive Ordering
24.5. Geometry Shader Passthrough
25. Mesh Shading
25.1. Task Shader Input
25.2. Task Shader Output
25.3. Mesh Generation
25.4. Mesh Shader Input
25.5. Mesh Shader Output Primitives
25.6. Mesh Shader Per-View Outputs
25.7. Mesh Shader Primitive Ordering
26. Fixed-Function Vertex Post-Processing
26.1. Transform Feedback
26.2. Viewport Swizzle
26.3. Flat Shading
26.4. Primitive Clipping
26.5. Clipping Shader Outputs
26.6. Controlling Viewport W Scaling
26.7. Coordinate Transformations
26.8. Render Pass Transform
26.9. Controlling the Viewport
27. Rasterization
27.1. Discarding Primitives Before Rasterization
27.2. Controlling the Vertex Stream Used for Rasterization
27.3. Rasterization Order
27.4. Multisampling
27.5. Custom Sample Locations
27.6. Fragment Shading Rates
27.7. Shading Rate Image
27.8. Sample Shading
27.9. Barycentric Interpolation
27.10. Points
27.11. Line Segments
27.12. Polygons
28. Fragment Operations
28.1. Discard Rectangles Test
28.2. Scissor Test
28.3. Exclusive Scissor Test
28.4. Sample Mask Test
28.5. Fragment Shading
28.6. Multisample Coverage
28.7. Depth and Stencil Operations
28.8. Depth Bounds Test
28.9. Stencil Test
28.10. Depth Test
28.11. Representative Fragment Test
28.12. Sample Counting
28.13. Fragment Coverage To Color
28.14. Coverage Reduction
29. The Framebuffer
29.1. Blending
29.2. Logical Operations
29.3. Color Write Mask
29.4. Color Write Enable
30. Dispatching Commands
31. Device-Generated Commands
31.1. Indirect Commands Layout
31.2. Indirect Commands Generation And Execution
32. Sparse Resources
32.1. Sparse Resource Features
32.2. Sparse Buffers and Fully-Resident Images
32.3. Sparse Partially-Resident Buffers
32.4. Sparse Partially-Resident Images
32.5. Sparse Memory Aliasing
32.6. Sparse Resource Implementation Guidelines (Informative)
32.7. Sparse Resource API
33. Window System Integration (WSI)
33.1. WSI Platform
33.2. WSI Surface
33.3. Presenting Directly to Display Devices
33.4. Querying for WSI Support
33.5. Surface Queries
33.6. Full Screen Exclusive Control
33.7. Device Group Queries
33.8. Display Timing Queries
33.9. Present Wait
33.10. WSI Swapchain
33.11. Hdr Metadata
34. Deferred Host Operations
34.1. Requesting Deferral
34.2. Deferred Host Operations API
35. Private Data
36. Acceleration Structures
36.1. Acceleration Structures
36.2. Host Acceleration Structure Operations
37. Ray Traversal
37.1. Ray Intersection Candidate Determination
37.2. Ray Intersection Culling
37.3. Ray Intersection Confirmation
37.4. Ray Closest Hit Determination
37.5. Ray Result Determination
38. Ray Tracing
38.1. Shader Call Instructions
38.2. Ray Tracing Commands
38.3. Shader Binding Table
38.4. Ray Tracing Pipeline Stack
39. Video Decode and Encode Operations
39.1. Technical Terminology and Semantics
39.2. Introduction
39.3. Video Physical Device Capabilities
39.4. Video Session Objects
39.5. Video Decode Operations
39.6. Video Decode of AVC (ITU-T H.264)
39.7. Video Decode of HEVC (ITU-T H.265)
39.8. Video Encode Operations
39.9. Encode H.264
39.10. Encode H.265
40. Extending Vulkan
40.1. Instance and Device Functionality
40.2. Core Versions
40.3. Layers
40.4. Extensions
40.5. Extension Dependencies
40.6. Compatibility Guarantees (Informative)
41. Features
41.1. Feature Requirements
41.2. Profile Features
42. Limits
42.1. Limit Requirements
42.2. Additional Multisampling Capabilities
42.3. Profile Limits
43. Formats
43.1. Format Definition
43.2. Format Properties
43.3. Required Format Support
44. Additional Capabilities
44.1. Additional Image Capabilities
44.2. Additional Buffer Capabilities
44.3. Optional Semaphore Capabilities
44.4. Optional Fence Capabilities
44.5. Timestamp Calibration Capabilities
45. Debugging
45.1. Debug Utilities
45.2. Debug Markers
45.3. Debug Report Callbacks
45.4. Device Loss Debugging
45.5. Active Tooling Information
Appendix A: Vulkan Environment for SPIR-V
Versions and Formats
Capabilities
Validation Rules within a Module
Precision and Operation of SPIR-V Instructions
Signedness of SPIR-V Image Accesses
Image Format and Type Matching
Compatibility Between SPIR-V Image Formats 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)
Version 1.3
Version 1.2
Version 1.1
Version 1.0
Appendix E: Layers & Extensions (Informative)
List of Current Extensions
List of Provisional Extensions
List of Deprecated Extensions
Appendix F: Vulkan Roadmap Milestones
Roadmap 2022
Appendix G: API Boilerplate
Vulkan Header Files
Window System-Specific Header Control (Informative)
Provisional Extension Header Control (Informative)
Appendix H: Invariance
Repeatability
Multi-pass Algorithms
Invariance Rules
Tessellation Invariance
Appendix I: Lexicon
Glossary
Common Abbreviations
Prefixes
Appendix J: Credits (Informative)
Working Group Contributors to Vulkan
Other Credits
Loading… please wait.
Search: