| // Copyright 2014-2021 The Khronos Group Inc. |
| // |
| // SPDX-License-Identifier: CC-BY-4.0 |
| |
| // :regtitle: is explained in |
| // http://discuss.asciidoctor.org/How-to-add-markup-to-author-information-in-document-title-td6488.html |
| = Vulkan^®^ {revnumber} - A Specification {apititle} |
| :regtitle: pass:q,r[^®^] |
| The Khronos{regtitle} Vulkan Working Group |
| :data-uri: |
| :icons: font |
| :toc2: |
| :toclevels: 2 |
| :numbered: |
| :source-highlighter: rouge |
| :rouge-style: github |
| |
| // Various special / math symbols. This is easier to edit with than Unicode. |
| include::config/attribs.txt[] |
| |
| // Table of contents is inserted here |
| toc::[] |
| |
| :leveloffset: 1 |
| |
| <<<< |
| |
| [[preamble]] |
| = Preamble |
| |
| include::copyright-spec.txt[] |
| |
| :test: 0 |
| ifeval::["{test}"=="1"] |
| |
| // Include or insert trivial test markup here, to bypass building full spec |
| // include::chapters/textest.txt[] |
| |
| include::chapters/introduction.txt[] |
| |
| endif::[] |
| |
| ifeval::["{test}"!="1"] |
| include::chapters/introduction.txt[] |
| |
| include::chapters/fundamentals.txt[] |
| |
| include::chapters/initialization.txt[] |
| |
| include::chapters/devsandqueues.txt[] |
| |
| include::chapters/cmdbuffers.txt[] |
| |
| include::chapters/synchronization.txt[] |
| |
| include::chapters/renderpass.txt[] |
| |
| include::chapters/shaders.txt[] |
| |
| include::chapters/pipelines.txt[] |
| |
| include::chapters/memory.txt[] |
| |
| include::chapters/resources.txt[] |
| |
| include::chapters/samplers.txt[] |
| |
| include::chapters/descriptorsets.txt[] |
| |
| include::chapters/interfaces.txt[] |
| |
| include::chapters/textures.txt[] |
| |
| ifdef::VK_EXT_fragment_density_map[] |
| include::chapters/fragmentdensitymapops.txt[] |
| endif::VK_EXT_fragment_density_map[] |
| |
| include::chapters/queries.txt[] |
| |
| // Transfer operations |
| include::chapters/clears.txt[] |
| |
| include::chapters/copies.txt[] |
| |
| // Graphics Operations |
| include::chapters/drawing.txt[] |
| |
| include::chapters/fxvertex.txt[] |
| |
| include::chapters/tessellation.txt[] |
| |
| include::chapters/geometry.txt[] |
| |
| ifdef::VK_NV_mesh_shader[] |
| include::chapters/VK_NV_mesh_shader/mesh.txt[] |
| endif::VK_NV_mesh_shader[] |
| |
| include::chapters/vertexpostproc.txt[] |
| |
| include::chapters/primsrast.txt[] |
| |
| include::chapters/fragops.txt[] |
| |
| include::chapters/framebuffer.txt[] |
| |
| // Compute |
| include::chapters/dispatch.txt[] |
| |
| // Device Generated Commands |
| ifdef::VK_NV_device_generated_commands[] |
| include::chapters/VK_NV_device_generated_commands/generatedcommands.txt[] |
| endif::VK_NV_device_generated_commands[] |
| |
| // Sparse |
| include::chapters/sparsemem.txt[] |
| |
| ifdef::VK_KHR_surface[] |
| include::chapters/VK_KHR_surface/wsi.txt[] |
| endif::VK_KHR_surface[] |
| |
| // Deferred host ops |
| ifdef::VK_KHR_deferred_host_operations[] |
| include::chapters/VK_KHR_deferred_host_operations/deferred_host_operations.txt[] |
| endif::VK_KHR_deferred_host_operations[] |
| |
| // Private data |
| ifdef::VK_EXT_private_data[] |
| include::chapters/VK_EXT_private_data.txt[] |
| endif::VK_EXT_private_data[] |
| |
| // Acceleration structures |
| ifdef::VK_NV_ray_tracing,VK_KHR_acceleration_structure[] |
| include::chapters/accelstructures.txt[] |
| endif::VK_NV_ray_tracing,VK_KHR_acceleration_structure[] |
| |
| // Ray traversal |
| ifdef::VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_ray_query[] |
| include::chapters/raytraversal.txt[] |
| 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.txt[] |
| endif::VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline[] |
| |
| // Vulkan Video extensions |
| ifdef::VK_KHR_video_queue[] |
| include::chapters/video_extensions.txt[] |
| endif::VK_KHR_video_queue[] |
| |
| ifdef::VK_KHR_video_decode_queue[] |
| include::chapters/video_decode_extensions.txt[] |
| endif::VK_KHR_video_decode_queue[] |
| |
| ifdef::VK_EXT_video_decode_h264[] |
| include::chapters/video_decode_h264_extensions.txt[] |
| endif::VK_EXT_video_decode_h264[] |
| |
| ifdef::VK_EXT_video_decode_h265[] |
| include::chapters/video_decode_h265_extensions.txt[] |
| endif::VK_EXT_video_decode_h265[] |
| |
| ifdef::VK_KHR_video_encode_queue[] |
| include::chapters/video_encode_extensions.txt[] |
| endif::VK_KHR_video_encode_queue[] |
| |
| ifdef::VK_EXT_video_encode_h264[] |
| include::chapters/video_encode_h264_extensions.txt[] |
| endif::VK_EXT_video_encode_h264[] |
| |
| ifdef::VK_EXT_video_encode_h265[] |
| include::chapters/video_encode_h265_extensions.txt[] |
| endif::VK_EXT_video_encode_h265[] |
| |
| // Sort of an appendix |
| include::chapters/extensions.txt[] |
| |
| include::chapters/features.txt[] |
| |
| include::chapters/limits.txt[] |
| |
| include::chapters/formats.txt[] |
| |
| include::chapters/capabilities.txt[] |
| |
| include::chapters/debugging.txt[] |
| |
| // Appendices |
| :numbered!: |
| |
| include::appendices/spirvenv.txt[] |
| |
| ifdef::VK_VERSION_1_2,VK_KHR_vulkan_memory_model[] |
| include::appendices/memorymodel.txt[] |
| endif::VK_VERSION_1_2,VK_KHR_vulkan_memory_model[] |
| |
| include::appendices/compressedtex.txt[] |
| |
| include::appendices/versions.txt[] |
| |
| // Extension appendices are now included from extensions.txt |
| include::appendices/extensions.txt[] |
| |
| include::appendices/boilerplate.txt[] |
| |
| include::appendices/invariance.txt[] |
| |
| include::appendices/glossary.txt[] |
| |
| include::appendices/credits.txt[] |
| |
| endif::[] |