Skip to content

Commit 66fdb14

Browse files
Keep spec links in Antora (#293)
1 parent 078df37 commit 66fdb14

File tree

98 files changed

+389
-489
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+389
-489
lines changed

chapters/depth.adoc

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ When clearing, notice that `VkClearValue` is a union and `VkClearDepthStencilVal
127127
[[pre-rasterization]]
128128
== Pre-rasterization
129129

130-
In the graphics pipeline, there are a series of link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization[pre-rasterization shader stages] that generate primitives to be rasterized. Before reaching the rasterization step, the final `vec4` position (`gl_Position`) of the last pre-rasterization stage runs through link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#vertexpostproc[Fixed-Function Vertex Post-Processing].
130+
In the graphics pipeline, there are a series of link:https://docs.vulkan.org/spec/latest/chapters/pipelines.html#pipelines-graphics-subsets-pre-rasterization[pre-rasterization shader stages] that generate primitives to be rasterized. Before reaching the rasterization step, the final `vec4` position (`gl_Position`) of the last pre-rasterization stage runs through link:https://docs.vulkan.org/spec/latest/chapters/vertexpostproc.html[Fixed-Function Vertex Post-Processing].
131131

132132
The following gives a high level overview of the various coordinates name and operations that occur before rasterization.
133133

@@ -155,7 +155,7 @@ A few examples where `Zd` is the result of `Zc`/`Wc`:
155155
[[user-defined-clipping-and-culling]]
156156
==== User defined clipping and culling
157157

158-
Using `ClipDistance` and `CullDistance` built-in arrays the link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization[pre-rasterization shader stages] can set link:https://www.khronos.org/opengl/wiki/Vertex_Post-Processing#User-defined_clipping[user defined clipping and culling].
158+
Using `ClipDistance` and `CullDistance` built-in arrays the link:https://docs.vulkan.org/spec/latest/chapters/pipelines.html#pipelines-graphics-subsets-pre-rasterization[pre-rasterization shader stages] can set link:https://www.khronos.org/opengl/wiki/Vertex_Post-Processing#User-defined_clipping[user defined clipping and culling].
159159

160160
In the last pre-rasterization shader stage, these values will be linearly interpolated across the primitive and the portion of the primitive with interpolated distances less than `0` will be considered outside the clip volume. If `ClipDistance` or `CullDistance` are then used by a fragment shader, they contain these linearly interpolated values.
161161

@@ -229,7 +229,7 @@ Zf = Pz * Zd + Oz
229229

230230
The depth values of all fragments generated by the rasterization of a polygon can be offset by a single value that is computed for that polygon. If `VkPipelineRasterizationStateCreateInfo::depthBiasEnable` is `VK_FALSE` at draw time, no depth bias is applied.
231231

232-
Using the `depthBiasConstantFactor`, `depthBiasClamp`, and `depthBiasSlopeFactor` in `VkPipelineRasterizationStateCreateInfo` the depth bias link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#primsrast-depthbias[can be calculated].
232+
Using the `depthBiasConstantFactor`, `depthBiasClamp`, and `depthBiasSlopeFactor` in `VkPipelineRasterizationStateCreateInfo` the depth bias link:https://docs.vulkan.org/spec/latest/chapters/primsrast.html#primsrast-depthbias[can be calculated].
233233

234234
[NOTE]
235235
====
@@ -284,9 +284,9 @@ Violating the condition​ yields undefined behavior.
284284
[[per-sample-processing-and-coverage-mask]]
285285
=== Per-sample processing and coverage mask
286286

287-
The following post-rasterization occurs as a "per-sample" operation. This means when doing link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#fragops-covg[multisampling] with a color attachment, any "depth buffer" `VkImage` used as well must also have been created with the same `VkSampleCountFlagBits` value.
287+
The following post-rasterization occurs as a "per-sample" operation. This means when doing link:https://docs.vulkan.org/spec/latest/chapters/fragops.html#fragops-covg[multisampling] with a color attachment, any "depth buffer" `VkImage` used as well must also have been created with the same `VkSampleCountFlagBits` value.
288288

289-
Each fragment has a link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#primsrast-multisampling-coverage-mask[coverage mask] based on which samples within that fragment are determined to be within the area of the primitive that generated the fragment. If a fragment operation results in all bits of the coverage mask being `0`, the fragment is discarded.
289+
Each fragment has a link:https://docs.vulkan.org/spec/latest/chapters/primsrast.html#primsrast-multisampling-coverage-mask[coverage mask] based on which samples within that fragment are determined to be within the area of the primitive that generated the fragment. If a fragment operation results in all bits of the coverage mask being `0`, the fragment is discarded.
290290

291291
[[resolving-depth-buffer]]
292292
==== Resolving depth buffer
@@ -301,7 +301,7 @@ It is possible in Vulkan using the xref:{chapters}extensions/cleanup.adoc#vk_khr
301301
Requires the `VkPhysicalDeviceFeatures::depthBounds` feature to be supported.
302302
====
303303

304-
If `VkPipelineDepthStencilStateCreateInfo::depthBoundsTestEnable` is used to take each `Za` in the depth attachment and check if it is within the range set by `VkPipelineDepthStencilStateCreateInfo::minDepthBounds` and `VkPipelineDepthStencilStateCreateInfo::maxDepthBounds`. If the value is not within the bounds, the link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#primsrast-multisampling-coverage-mask[coverage mask] is set to zero.
304+
If `VkPipelineDepthStencilStateCreateInfo::depthBoundsTestEnable` is used to take each `Za` in the depth attachment and check if it is within the range set by `VkPipelineDepthStencilStateCreateInfo::minDepthBounds` and `VkPipelineDepthStencilStateCreateInfo::maxDepthBounds`. If the value is not within the bounds, the link:https://docs.vulkan.org/spec/latest/chapters/primsrast.html#primsrast-multisampling-coverage-mask[coverage mask] is set to zero.
305305

306306
[NOTE]
307307
====
@@ -336,7 +336,7 @@ The `depthTestEnable` and `depthCompareOp` value can be set xref:{chapters}dynam
336336
[[depth-buffer-writes]]
337337
==== Depth Buffer Writes
338338

339-
Even if the depth test passes, if `VkPipelineDepthStencilStateCreateInfo::depthWriteEnable` is set to `VK_FALSE` it will not write the value out to the depth attachment. The main reason for this is because the depth test itself will set the link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#primsrast-multisampling-coverage-mask[coverage mask] which can be used for certain render techniques.
339+
Even if the depth test passes, if `VkPipelineDepthStencilStateCreateInfo::depthWriteEnable` is set to `VK_FALSE` it will not write the value out to the depth attachment. The main reason for this is because the depth test itself will set the link:https://docs.vulkan.org/spec/latest/chapters/primsrast.html#primsrast-multisampling-coverage-mask[coverage mask] which can be used for certain render techniques.
340340

341341
[NOTE]
342342
====

chapters/descriptor_dynamic_offset.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ ifndef::images[:images: images/]
77
[[descriptor-dynamic-offset]]
88
= Descriptor Dynamic Offset
99

10-
Vulkan offers two types of descriptors that allow adjusting the offset at bind time as link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#descriptorsets-binding-dynamicoffsets[defined in the spec].
10+
Vulkan offers two types of descriptors that allow adjusting the offset at bind time as link:https://docs.vulkan.org/spec/latest/chapters/descriptorsets.html#descriptorsets-binding-dynamicoffsets[defined in the spec].
1111

1212
* dynamic uniform buffer (`VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC`)
1313
* dynamic storage buffer (`VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC`)

chapters/dynamic_state.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ ifndef::images[:images: images/]
99

1010
[NOTE]
1111
====
12-
link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#pipelines-dynamic-state[Vulkan Spec chapter]
12+
link:https://docs.vulkan.org/spec/latest/chapters/pipelines.html#pipelines-dynamic-state[Vulkan Spec chapter]
1313
====
1414

1515
== Overview
@@ -38,7 +38,7 @@ vkCmdDraw();
3838
vkEndCommandBuffer();
3939
----
4040

41-
When the `VkPipeline` uses link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#pipelines-dynamic-state[dynamic state], some pipeline information can be omitted at creation time and instead set during recording of the command buffer. The new logical flow is:
41+
When the `VkPipeline` uses link:https://docs.vulkan.org/spec/latest/chapters/pipelines.html#pipelines-dynamic-state[dynamic state], some pipeline information can be omitted at creation time and instead set during recording of the command buffer. The new logical flow is:
4242

4343
[source,cpp]
4444
----
@@ -87,7 +87,7 @@ Some implementations might have a performance loss using some certain `VkDynamic
8787
[[dynamic-state-lifetime]]
8888
== Dynamic state lifetime
8989

90-
The spec talks about how there is a link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#dynamic-state-lifetime[dynamic state lifetime]. The following best describes it in some examples:
90+
The spec talks about how there is a link:https://docs.vulkan.org/spec/latest/chapters/pipelines.html#dynamic-state-lifetime[dynamic state lifetime]. The following best describes it in some examples:
9191

9292
[source,cpp]
9393
----
@@ -130,6 +130,6 @@ vkCmdDraw()
130130
[[states-that-are-dynamic]]
131131
== What states are dynamic
132132

133-
The full list of possible dynamic states can be found in link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VkDynamicState[VkDynamicState].
133+
The full list of possible dynamic states can be found in link:https://docs.vulkan.org/spec/latest/chapters/pipelines.html#VkDynamicState[VkDynamicState].
134134

135135
The `VK_EXT_extended_dynamic_state`, `VK_EXT_extended_dynamic_state2`, `VK_EXT_extended_dynamic_state3`, `VK_EXT_vertex_input_dynamic_state`, `VK_EXT_attachment_feedback_loop_dynamic_state` and `VK_EXT_color_write_enable` extensions were added with the goal to support applications that need to reduce the number of pipeline state objects they compile and bind.

chapters/enabling_extensions.adoc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ image::{images}enabling_extensions_instance_extension.png[enabling_extensions_in
1919

2020
== Check for support
2121

22-
An application can link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#extendingvulkan-extensions[query the physical device] first to check if the extension is **supported** with `vkEnumerateInstanceExtensionProperties` or `vkEnumerateDeviceExtensionProperties`.
22+
An application can link:https://docs.vulkan.org/spec/latest/chapters/extensions.html#extendingvulkan-extensions[query the physical device] first to check if the extension is **supported** with `vkEnumerateInstanceExtensionProperties` or `vkEnumerateDeviceExtensionProperties`.
2323

2424
[source,cpp]
2525
----
@@ -78,17 +78,17 @@ This means after enabling the extension, an application will still need to xref:
7878

7979
== Promotion Process
8080

81-
When minor versions of xref:{chapters}vulkan_release_summary.adoc#vulkan-release-summary[Vulkan are released], some extensions are link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#extendingvulkan-compatibility-promotion[promoted as defined in the spec]. The goal of promotion is to have extended functionality, that the Vulkan Working Group has decided is widely supported, to be in the core Vulkan spec. More details about Vulkan versions can be found in the xref:{chapters}versions.adoc#versions[version chapter].
81+
When minor versions of xref:{chapters}vulkan_release_summary.adoc#vulkan-release-summary[Vulkan are released], some extensions are link:https://docs.vulkan.org/spec/latest/chapters/extensions.html#extendingvulkan-compatibility-promotion[promoted as defined in the spec]. The goal of promotion is to have extended functionality, that the Vulkan Working Group has decided is widely supported, to be in the core Vulkan spec. More details about Vulkan versions can be found in the xref:{chapters}versions.adoc#versions[version chapter].
8282

8383
An example would be something such as `VK_KHR_get_physical_device_properties2` which is used for most other extensions. In Vulkan 1.0, an application has to query for support of `VK_KHR_get_physical_device_properties2` before being able to call a function such as `vkGetPhysicalDeviceFeatures2KHR`. Starting in Vulkan 1.1, the `vkGetPhysicalDeviceFeatures2` function is guaranteed to be supported.
8484

8585
Another way to look at promotion is with the `VK_KHR_8bit_storage` as an example again. Since Vulkan 1.0 some features, such as `textureCompressionASTC_LDR`, are not required to be supported, but are available to query without needing to enable any extensions. Starting in Vulkan 1.2 when `VK_KHR_8bit_storage` was promoted to core, all the features in `VkPhysicalDevice8BitStorageFeatures` can now be found in `VkPhysicalDeviceVulkan12Features`.
8686

8787
=== Promotion Change of Behavior
8888

89-
It is important to realize there is a subtle difference for **some** extension that are promoted. link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#extendingvulkan-compatibility-promotion[The spec describes] how promotion **can** involve minor changes such as in the extension's "`Feature advertisement/enablement`". To best describe the subtlety of this, `VK_KHR_8bit_storage` can be used as a use case.
89+
It is important to realize there is a subtle difference for **some** extension that are promoted. link:https://docs.vulkan.org/spec/latest/chapters/extensions.html#extendingvulkan-compatibility-promotion[The spec describes] how promotion **can** involve minor changes such as in the extension's "`Feature advertisement/enablement`". To best describe the subtlety of this, `VK_KHR_8bit_storage` can be used as a use case.
9090

91-
The link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#_differences_relative_to_vk_khr_8bit_storage[Vulkan spec describes the change] for `VK_KHR_8bit_storage` for Vulkan 1.2 where it states:
91+
The link:https://registry.khronos.org/vulkan/specs/latest/man/html/VK_KHR_8bit_storage.html#_promotion_to_vulkan_1_2[Vulkan spec describes the change] for `VK_KHR_8bit_storage` for Vulkan 1.2 where it states:
9292

9393
____
9494
If the VK_KHR_8bit_storage extension is not supported, support for the SPIR-V StorageBuffer8BitAccess capability in shader modules is optional.
@@ -99,4 +99,4 @@ ____
9999
* If `VK_KHR_8bit_storage` is found in `vkEnumerateDeviceExtensionProperties` then the `storageBuffer8BitAccess` feature is **guaranteed** to be supported.
100100
* If `VK_KHR_8bit_storage` is **not** found in `vkEnumerateDeviceExtensionProperties` then the `storageBuffer8BitAccess` feature **might** be supported and can be checked by querying `VkPhysicalDeviceVulkan12Features::storageBuffer8BitAccess`.
101101

102-
The list of all feature changes to promoted extensions can be found in the link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#versions[version appendix of the spec].
102+
The list of all feature changes to promoted extensions can be found in the link:https://docs.vulkan.org/spec/latest/appendices/versions.html[version appendix of the spec].

chapters/enabling_features.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,17 @@ This section goes over the logistics for enabling features.
1414
All features in Vulkan can be categorized/found in 3 sections
1515

1616
1. Core 1.0 Features
17-
** These are the set of features that were available from the initial 1.0 release of Vulkan. The list of features can be found in link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VkPhysicalDeviceFeatures[VkPhysicalDeviceFeatures]
17+
** These are the set of features that were available from the initial 1.0 release of Vulkan. The list of features can be found in link:https://docs.vulkan.org/spec/latest/chapters/features.html#VkPhysicalDeviceFeatures[VkPhysicalDeviceFeatures]
1818
2. Future Core Version Features
1919
** With Vulkan 1.1+ some new features were added to the core version of Vulkan. To keep the size of `VkPhysicalDeviceFeatures` backward compatible, new structs were created to hold the grouping of features.
20-
** link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VkPhysicalDeviceVulkan11Features[VkPhysicalDeviceVulkan11Features]
21-
** link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VkPhysicalDeviceVulkan12Features[VkPhysicalDeviceVulkan12Features]
20+
** link:https://docs.vulkan.org/spec/latest/chapters/features.html#VkPhysicalDeviceVulkan11Features[VkPhysicalDeviceVulkan11Features]
21+
** link:https://docs.vulkan.org/spec/latest/chapters/features.html#VkPhysicalDeviceVulkan12Features[VkPhysicalDeviceVulkan12Features]
2222
3. Extension Features
2323
** Sometimes extensions contain features in order to enable certain aspects of the extension. These are easily found as they are all labeled as `VkPhysicalDevice[ExtensionName]Features`
2424

2525
== How to Enable the Features
2626

27-
All features must be enabled at `VkDevice` creation time inside the link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VkDeviceCreateInfo[VkDeviceCreateInfo] struct.
27+
All features must be enabled at `VkDevice` creation time inside the link:https://docs.vulkan.org/spec/latest/chapters/devsandqueues.html#VkDeviceCreateInfo[VkDeviceCreateInfo] struct.
2828

2929
[NOTE]
3030
====

chapters/extensions/cleanup.adoc

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ These are extensions that are unofficially called "`cleanup extension`". The Vul
2121
Promoted to core in Vulkan 1.2
2222
====
2323

24-
This extension adds more information to query about each implementation. The link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VkDriverId[VkDriverId] will be a registered vendor's ID for the implementation. The link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VkConformanceVersion[VkConformanceVersion] displays which version of xref:{chapters}vulkan_cts.adoc#vulkan-cts[the Vulkan Conformance Test Suite] the implementation passed.
24+
This extension adds more information to query about each implementation. The link:https://docs.vulkan.org/spec/latest/chapters/devsandqueues.html#VkDriverId[VkDriverId] will be a registered vendor's ID for the implementation. The link:https://docs.vulkan.org/spec/latest/chapters/devsandqueues.html#VkConformanceVersion[VkConformanceVersion] displays which version of xref:{chapters}vulkan_cts.adoc#vulkan-cts[the Vulkan Conformance Test Suite] the implementation passed.
2525

2626
[[VK_EXT_host_query_reset]]
2727
== VK_EXT_host_query_reset
@@ -129,12 +129,14 @@ The maintenance extensions add a collection of minor features that were intentio
129129

130130
Currently, there are 6 maintenance extensions. The first 3 were bundled in Vulkan 1.1 as core. All the details for each are well defined in the extension appendix page.
131131

132-
* link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VK_KHR_maintenance1[VK_KHR_maintenance1] - core in Vulkan 1.1
133-
* link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VK_KHR_maintenance2[VK_KHR_maintenance2] - core in Vulkan 1.1
134-
* link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VK_KHR_maintenance3[VK_KHR_maintenance3] - core in Vulkan 1.1
135-
* link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VK_KHR_maintenance4[VK_KHR_maintenance4] - core in Vulkan 1.3
136-
* link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VK_KHR_maintenance5[VK_KHR_maintenance5] - extension only
137-
* link:https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VK_KHR_maintenance6[VK_KHR_maintenance6] - extension only
132+
* link:https://registry.khronos.org/vulkan/specs/latest/man/html/VK_KHR_maintenance1.html[VK_KHR_maintenance1] - core in Vulkan 1.1
133+
* link:https://registry.khronos.org/vulkan/specs/latest/man/html/VK_KHR_maintenance2.html[VK_KHR_maintenance2] - core in Vulkan 1.1
134+
* link:https://registry.khronos.org/vulkan/specs/latest/man/html/VK_KHR_maintenance3.html[VK_KHR_maintenance3] - core in Vulkan 1.1
135+
* link:https://registry.khronos.org/vulkan/specs/latest/man/html/VK_KHR_maintenance4.html[VK_KHR_maintenance4] - core in Vulkan 1.3
136+
* link:https://registry.khronos.org/vulkan/specs/latest/man/html/VK_KHR_maintenance5.html[VK_KHR_maintenance5] - core in Vulkan 1.4
137+
* link:https://registry.khronos.org/vulkan/specs/latest/man/html/VK_KHR_maintenance6.html[VK_KHR_maintenance6] - core in Vulkan 1.4
138+
* link:https://registry.khronos.org/vulkan/specs/latest/man/html/VK_KHR_maintenance7.html[VK_KHR_maintenance7] - extension only
139+
* link:https://registry.khronos.org/vulkan/specs/latest/man/html/VK_KHR_maintenance8.html[VK_KHR_maintenance8] - extension only
138140

139141
[[pnext-expansions]]
140142
== pNext Expansions

0 commit comments

Comments
 (0)