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′CBCR 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.

    Version 1.3.214
    Last updated 2022-01-21 21:58:54 -0800