Vulkan® 1.1.175 - A Specification

The Khronos® Vulkan Working Group
version 1.1.175, 2021-04-13 09:08:10Z
from git branch: github-main commit: b82ae46bb82c7a522509fd7b8f3d92a311c1b5a5
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. Errors
    • 3.8. Numeric Representation and Computation
    • 3.9. Fixed-Point Data Conversions
    • 3.10. Common Object Types
  • 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
  • 8. Render Pass
    • 8.1. Render Pass Creation
    • 8.2. Render Pass Compatibility
    • 8.3. Framebuffers
    • 8.4. Render Pass Commands
  • 9. Shaders
    • 9.1. Shader Modules
    • 9.2. Shader Execution
    • 9.3. Shader Memory Access Ordering
    • 9.4. Shader Inputs and Outputs
    • 9.5. Vertex Shaders
    • 9.6. Tessellation Control Shaders
    • 9.7. Tessellation Evaluation Shaders
    • 9.8. Geometry Shaders
    • 9.9. Fragment Shaders
    • 9.10. Compute Shaders
    • 9.11. Interpolation Decorations
    • 9.12. Static Use
    • 9.13. Scope
    • 9.14. Group Operations
    • 9.15. Quad Group Operations
    • 9.16. Derivative Operations
    • 9.17. Helper Invocations
  • 10. Pipelines
    • 10.1. Compute Pipelines
    • 10.2. Graphics Pipelines
    • 10.3. Pipeline Destruction
    • 10.4. Multiple Pipeline Creation
    • 10.5. Pipeline Derivatives
    • 10.6. Pipeline Cache
    • 10.7. Specialization Constants
    • 10.8. Pipeline Binding
    • 10.9. Dynamic State
  • 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. Resource Memory Association
    • 12.7. Resource Sharing Mode
    • 12.8. Memory Aliasing
  • 13. Samplers
    • 13.1. Sampler Y′CBCR conversion
  • 14. Resource Descriptors
    • 14.1. Descriptor Types
    • 14.2. Descriptor Sets
  • 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. Shader Resource Interface
    • 15.6. 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
  • 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. Common Operation
    • 19.2. Copying Data Between Buffers
    • 19.3. Copying Data Between Images
    • 19.4. Copying Data Between Buffers and Images
    • 19.5. Image Copies with Scaling
    • 19.6. 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
  • 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. Flat Shading
    • 24.2. Primitive Clipping
    • 24.3. Clipping Shader Outputs
    • 24.4. Coordinate Transformations
    • 24.5. Controlling the Viewport
  • 25. Rasterization
    • 25.1. Discarding Primitives Before Rasterization
    • 25.2. Rasterization Order
    • 25.3. Multisampling
    • 25.4. Sample Shading
    • 25.5. Points
    • 25.6. Line Segments
    • 25.7. Polygons
  • 26. Fragment Operations
    • 26.1. Scissor Test
    • 26.2. Sample Mask Test
    • 26.3. Multisample Coverage
    • 26.4. Depth and Stencil Operations
    • 26.5. Depth Bounds Test
    • 26.6. Stencil Test
    • 26.7. Depth Test
    • 26.8. Sample Counting
    • 26.9. 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. Extending Vulkan
    • 30.1. Instance and Device Functionality
    • 30.2. Core Versions
    • 30.3. Layers
    • 30.4. Extensions
    • 30.5. Extension Dependencies
    • 30.6. Compatibility Guarantees (Informative)
  • 31. Features
    • 31.1. Feature Requirements
  • 32. Limits
    • 32.1. Limit Requirements
  • 33. Formats
    • 33.1. Format Definition
    • 33.2. Format Properties
    • 33.3. Required Format Support
  • 34. Additional Capabilities
    • 34.1. Additional Image Capabilities
    • 34.2. Additional Buffer Capabilities
    • 34.3. Optional Semaphore Capabilities
    • 34.4. Optional Fence Capabilities
  • 35. Debugging
  • Appendix A: Vulkan Environment for SPIR-V
    • Versions and Formats
    • Capabilities
    • Validation Rules within a Module
    • Precision and Operation of SPIR-V Instructions
    • Image Format and Type Matching
    • Compatibility Between SPIR-V Image Formats And Vulkan Formats
  • Appendix B: Compressed Image Formats
    • Block-Compressed Image Formats
    • ETC Compressed Image Formats
    • ASTC Compressed Image Formats
  • Appendix C: Core Revisions (Informative)
    • Version 1.1
  • Appendix D: Layers & Extensions (Informative)
    • List of Extensions
  • Appendix E: API Boilerplate
    • Vulkan Header Files
    • Window System-Specific Header Control (Informative)
    • Provisional Extension Header Control (Informative)
  • Appendix F: Invariance
    • Repeatability
    • Multi-pass Algorithms
    • Invariance Rules
    • Tessellation Invariance
  • Appendix G: Lexicon
    • Glossary
    • Common Abbreviations
    • Prefixes
  • Appendix H: Credits (Informative)
    • Working Group Contributors to Vulkan
    • Other Credits

Loading… please wait.

    Version 1.1.175
    Last updated 2021-04-13 01:33:51 -0700