// Copyright 2014-2023 The Khronos Group Inc. // // SPDX-License-Identifier: CC-BY-4.0 // Core versions and extensions to enable // Must be included before the header and attribs.adoc include::{generated}/specattribs.adoc[] // Define titles and title logos for either Vulkan or Vulkan SC ifdef::VKSC_VERSION_1_0[] :DocTitle: Vulkan^®^ {SC} {revnumber} - A Specification {apititle} : Based on Vulkan {baserevnumber} :SC: SC :VulkanLogo: vulkansc-unscaled.svg :LogoDir: vulkansc endif::VKSC_VERSION_1_0[] ifndef::VKSC_VERSION_1_0[] :DocTitle: Vulkan^®^ {revnumber} - A Specification {apititle} :SC: :VulkanLogo: vulkan2-unscaled.svg :LogoDir: vulkan endif::VKSC_VERSION_1_0[] // :regtitle: is explained in // https://discuss.asciidoctor.org/How-to-add-markup-to-author-information-in-document-title-td6488.html = {DocTitle} :regtitle: pass:q,r[^®^] The Khronos{regtitle} Vulkan {SC} Working Group :data-uri: :icons: font :toc2: :toclevels: 2 :numbered: :source-highlighter: rouge :rouge-style: github :docinfo: shared-header :docinfodir: {config}/{LogoDir} :title-logo-image: image:{images}/{VulkanLogo}[top="25%"] :attribute-missing: warn // Various special / math symbols. This is easier to edit with than Unicode. include::{config}/attribs.adoc[] // Table of contents is inserted here toc::[] :leveloffset: 1 <<<< // Preamble "chapter" include::{chapters}/preamble.adoc[] // Actual chapters :test: 0 ifeval::["{test}"=="1"] // Include or insert trivial test markup here, to bypass building full spec // include::{chapters}/textest.adoc[] include::{chapters}/introduction.adoc[] endif::[] ifeval::["{test}"!="1"] include::{chapters}/introduction.adoc[] include::{chapters}/fundamentals.adoc[] include::{chapters}/initialization.adoc[] include::{chapters}/devsandqueues.adoc[] include::{chapters}/cmdbuffers.adoc[] include::{chapters}/synchronization.adoc[] include::{chapters}/renderpass.adoc[] include::{chapters}/shaders.adoc[] include::{chapters}/pipelines.adoc[] include::{chapters}/memory.adoc[] include::{chapters}/resources.adoc[] include::{chapters}/samplers.adoc[] include::{chapters}/descriptorsets.adoc[] include::{chapters}/interfaces.adoc[] include::{chapters}/textures.adoc[] ifdef::VK_EXT_fragment_density_map[] include::{chapters}/fragmentdensitymapops.adoc[] endif::VK_EXT_fragment_density_map[] include::{chapters}/queries.adoc[] // Transfer operations include::{chapters}/clears.adoc[] include::{chapters}/copies.adoc[] // Graphics Operations include::{chapters}/drawing.adoc[] include::{chapters}/fxvertex.adoc[] include::{chapters}/tessellation.adoc[] include::{chapters}/geometry.adoc[] ifdef::VK_NV_mesh_shader,VK_EXT_mesh_shader[] include::{chapters}/VK_NV_mesh_shader/mesh.adoc[] endif::VK_NV_mesh_shader,VK_EXT_mesh_shader[] ifdef::VK_HUAWEI_cluster_culling_shader[] include::{chapters}/VK_HUAWEI_cluster_culling_shader/clusterculling.adoc[] endif::VK_HUAWEI_cluster_culling_shader[] include::{chapters}/vertexpostproc.adoc[] include::{chapters}/primsrast.adoc[] include::{chapters}/fragops.adoc[] include::{chapters}/framebuffer.adoc[] // Compute include::{chapters}/dispatch.adoc[] // Device Generated Commands ifdef::VK_NV_device_generated_commands[] include::{chapters}/VK_NV_device_generated_commands/generatedcommands.adoc[] endif::VK_NV_device_generated_commands[] // Sparse include::{chapters}/sparsemem.adoc[] ifdef::VK_KHR_surface[] include::{chapters}/VK_KHR_surface/wsi.adoc[] endif::VK_KHR_surface[] // Deferred host ops ifdef::VK_KHR_deferred_host_operations[] include::{chapters}/VK_KHR_deferred_host_operations/deferred_host_operations.adoc[] endif::VK_KHR_deferred_host_operations[] // Private data ifdef::VK_VERSION_1_3,VK_EXT_private_data[] include::{chapters}/VK_EXT_private_data.adoc[] endif::VK_VERSION_1_3,VK_EXT_private_data[] // Acceleration structures ifdef::VK_NV_ray_tracing,VK_KHR_acceleration_structure[] include::{chapters}/accelstructures.adoc[] endif::VK_NV_ray_tracing,VK_KHR_acceleration_structure[] // Micromaps ifdef::VK_EXT_opacity_micromap[] include::{chapters}/VK_EXT_opacity_micromap/micromaps.adoc[] endif::VK_EXT_opacity_micromap[] // Ray traversal ifdef::VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_ray_query[] include::{chapters}/raytraversal.adoc[] endif::VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_ray_query[] // Ray tracing ifdef::VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline[] include::{chapters}/raytracing.adoc[] endif::VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline[] // Memory Decompression ifdef::VK_NV_memory_decompression[] include::{chapters}/VK_NV_memory_decompression.adoc[] endif::VK_NV_memory_decompression[] // Vulkan Video extensions ifdef::VK_KHR_video_queue[] include::{chapters}/video_extensions.adoc[] endif::VK_KHR_video_queue[] ifdef::VK_NV_optical_flow[] include::{chapters}/VK_NV_optical_flow/optical_flow.adoc[] endif::VK_NV_optical_flow[] ifdef::VK_AMDX_shader_enqueue[] include::{chapters}/executiongraphs.adoc[] endif::VK_AMDX_shader_enqueue[] ifdef::VK_NV_low_latency2[] include::{chapters}/VK_NV_low_latency2/low_latency2.adoc[] endif::VK_NV_low_latency2[] // Sort of an appendix include::{chapters}/extensions.adoc[] include::{chapters}/features.adoc[] include::{chapters}/limits.adoc[] include::{chapters}/formats.adoc[] include::{chapters}/capabilities.adoc[] include::{chapters}/debugging.adoc[] // Appendices :numbered!: include::{appendices}/spirvenv.adoc[] ifdef::VK_VERSION_1_2,VK_KHR_vulkan_memory_model[] include::{appendices}/memorymodel.adoc[] endif::VK_VERSION_1_2,VK_KHR_vulkan_memory_model[] include::{appendices}/compressedtex.adoc[] include::{appendices}/versions.adoc[] // Extension appendices are now included from extensions.adoc include::{appendices}/extensions.adoc[] ifdef::VK_VERSION_1_3[] include::{appendices}/roadmap.adoc[] endif::VK_VERSION_1_3[] include::{appendices}/boilerplate.adoc[] include::{appendices}/invariance.adoc[] ifdef::VKSC_VERSION_1_0[] include::{appendices}/vulkanscdeviations.adoc[] endif::VKSC_VERSION_1_0[] include::{appendices}/glossary.adoc[] include::{appendices}/credits.adoc[] endif::[]