Vulkan
®
1.3.283 - A Specification (with all ratified extensions)
The Khronos
®
Vulkan Working Group
version 1.3.283,
2024-04-19 06:48:01Z
from git branch: github-main commit: dedb71a7edc6d5af3f9bfd5e2ef53814de999ef7
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. 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. Common Render Pass Data Races (Informative)
9. Shaders
9.1. Shader Objects
9.2. Shader Modules
9.3. Binding Shaders
9.4. Shader Execution
9.5. Shader Memory Access Ordering
9.6. Shader Inputs and Outputs
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
10. Pipelines
10.1. Multiple Pipeline Creation
10.2. Compute Pipelines
10.3. Graphics Pipelines
10.4. Ray Tracing Pipelines
10.5. Pipeline Destruction
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 Properties and Shader Information
10.13. 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. Images
12.4. Image Layouts
12.5. Image Views
12.6. Acceleration Structures
12.7. Micromaps
12.8. Resource Memory Association
12.9. Resource Sharing Mode
12.10. Memory Aliasing
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 Tile Image Interface
15.5. Fragment Input Attachment Interface
15.6. Ray Tracing Pipeline Interface
15.7. Shader Resource Interface
15.8. 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. Image Operation Steps
16.10. Image Query Instructions
17. Queries
17.1. Query Pools
17.2. Query Operation
17.3. Occlusion Queries
17.4. Pipeline Statistics Queries
17.5. Timestamp Queries
17.6. Performance Queries
17.7. Transform Feedback Queries
17.8. Result Status Queries
17.9. Video Encode Feedback Queries
18. Clear Commands
18.1. Clearing Images Outside a Render Pass Instance
18.2. Clearing Images Inside a Render Pass Instance
18.3. Clear Values
18.4. Filling Buffers
18.5. Updating Buffers
19. Copy Commands
19.1. Copying Data Between Buffers
19.2. Copying Data Between Images
19.3. Copying Data Between Buffers and Images
19.4. Image Copies With Scaling
19.5. Resolving Multisample Images
20. Drawing Commands
20.1. Primitive Topologies
20.2. Primitive Order
20.3. Programmable Primitive Shading
21. Fixed-Function Vertex Processing
21.1. Vertex Attributes
21.2. Vertex Input Description
21.3. Vertex Attribute Divisor in Instanced Rendering
21.4. Vertex Input Address Calculation
22. Tessellation
22.1. Tessellator
22.2. Tessellator Patch Discard
22.3. Tessellator Spacing
22.4. Tessellation Primitive Ordering
22.5. Tessellator Vertex Winding Order
22.6. Triangle Tessellation
22.7. Quad Tessellation
22.8. Isoline Tessellation
22.9. Tessellation Point Mode
22.10. Tessellation Pipeline State
23. Geometry Shading
23.1. Geometry Shader Input Primitives
23.2. Geometry Shader Output Primitives
23.3. Multiple Invocations of Geometry Shaders
23.4. Geometry Shader Primitive Ordering
24. Fixed-Function Vertex Post-Processing
24.1. Transform Feedback
24.2. Flat Shading
24.3. Primitive Clipping
24.4. Clipping Shader Outputs
24.5. Coordinate Transformations
24.6. Controlling the Viewport
25. Rasterization
25.1. Discarding Primitives Before Rasterization
25.2. Controlling the Vertex Stream Used for Rasterization
25.3. Rasterization Order
25.4. Multisampling
25.5. Fragment Shading Rates
25.6. Sample Shading
25.7. Barycentric Interpolation
25.8. Points
25.9. Line Segments
25.10. Polygons
26. Fragment Operations
26.1. Discard Rectangles Test
26.2. Scissor Test
26.3. Sample Mask Test
26.4. Fragment Shading
26.5. Multisample Coverage
26.6. Depth and Stencil Operations
26.7. Depth Bounds Test
26.8. Stencil Test
26.9. Depth Test
26.10. Sample Counting
26.11. Coverage Reduction
27. The Framebuffer
27.1. Blending
27.2. Logical Operations
27.3. Color Write Mask
28. Dispatching Commands
29. Sparse Resources
29.1. Sparse Resource Features
29.2. Sparse Buffers and Fully-Resident Images
29.3. Sparse Partially-Resident Buffers
29.4. Sparse Partially-Resident Images
29.5. Sparse Memory Aliasing
29.6. Sparse Resource Implementation Guidelines (Informative)
29.7. Sparse Resource API
30. Window System Integration (WSI)
30.1. WSI Platform
30.2. WSI Surface
30.3. Presenting Directly to Display Devices
30.4. Querying for WSI Support
30.5. Surface Queries
30.6. Device Group Queries
30.7. Present Wait
30.8. WSI Swapchain
30.9. Hdr Metadata
31. Deferred Host Operations
31.1. Requesting Deferral
31.2. Deferred Host Operations API
32. Private Data
33. Acceleration Structures
33.1. Acceleration Structures
33.2. Host Acceleration Structure Operations
34. Micromap
34.1. Micromaps
34.2. Host Micromap Operations
35. Ray Traversal
35.1. Ray Intersection Candidate Determination
35.2. Ray Intersection Culling
35.3. Ray Intersection Confirmation
35.4. Ray Closest Hit Determination
35.5. Ray Result Determination
36. Ray Tracing
36.1. Shader Call Instructions
36.2. Ray Tracing Commands
36.3. Shader Binding Table
36.4. Ray Tracing Pipeline Stack
36.5. Ray Tracing Capture Replay
37. Video Coding
37.1. Video Picture Resources
37.2. Decoded Picture Buffer
37.3. Video Profiles
37.4. Video Capabilities
37.5. Video Sessions
37.6. Video Profile Compatibility
37.7. Video Session Parameters
37.8. Video Coding Scope
37.9. Video Coding Control
37.10. Inline Queries
37.11. Video Decode Operations
37.12. H.264 Decode Operations
37.13. H.265 Decode Operations
37.14. AV1 Decode Operations
37.15. Video Encode Operations
37.16. Video Encode Rate Control
37.17. H.264 Encode Operations
37.18. H.265 Encode Operations
38. Extending Vulkan
38.1. Instance and Device Functionality
38.2. Core Versions
38.3. Layers
38.4. Extensions
38.5. Extension Dependencies
38.6. Compatibility Guarantees (Informative)
39. Features
39.1. Feature Requirements
39.2. Profile Features
40. Limits
40.1. Limit Requirements
40.2. Profile Limits
41. Formats
41.1. Format Definition
41.2. Format Properties
41.3. Required Format Support
42. Additional Capabilities
42.1. Additional Image Capabilities
42.2. Additional Buffer Capabilities
42.3. Optional Semaphore Capabilities
42.4. Optional Fence Capabilities
42.5. Timestamp Calibration Capabilities
43. Debugging
43.1. Active Tooling Information
43.2. 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
Signedness of SPIR-V Image Accesses
Image Format and Type Matching
Compatibility Between SPIR-V Image Formats and Vulkan Formats
Ray Query Precision and Operation
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
Appendix C: Compressed Image Formats
Block-Compressed Image Formats
ETC Compressed Image Formats
ASTC 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)
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
Appendix G: API Boilerplate
Vulkan Header Files
Window System-Specific Header Control (Informative)
Provisional Extension Header Control (Informative)
Video Std Headers
Appendix H: Invariance
Repeatability
Multi-pass Algorithms
Invariance Rules
Tessellation Invariance
Appendix I: Lexicon
Glossary
Common Abbreviations
Video-Specific Abbreviations
Prefixes
Appendix J: Credits (Informative)
Working Group Contributors to Vulkan
Other Credits
Loading… please wait.
Search: