blob: cb5b3acf6645e8ce6e64ee73a9246008a78b9ebe [file] [log] [blame]
// 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::[]