Skip to content

Commit 1967abe

Browse files
committed
Parameterize image:: paths in terms of the '{images}' attribute
Fix some incorrect xref: paths Fix image paths in lang-jp tree
1 parent fcc5831 commit 1967abe

File tree

71 files changed

+138
-79
lines changed

Some content is hidden

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

71 files changed

+138
-79
lines changed

chapters/atomics.adoc

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
// Required for both single-page and combined guide xrefs to work
55
ifndef::chapters[:chapters:]
6+
ifndef::images[:images: images/]
67

78
[[atomics]]
89
= Atomics

chapters/checking_for_support.adoc

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters:]
5+
ifndef::images[:images: images/]
56

67
[[checking-for-support]]
78
= Checking For Vulkan Support

chapters/common_pitfalls.adoc

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters:]
5+
ifndef::images[:images: images/]
56

67
[[common-pitfalls]]
78
= Common Pitfalls for New Vulkan Developers

chapters/decoder_ring.adoc

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters:]
5+
ifndef::images[:images: images/]
56

67
[[decoder-ring]]
78
= Vulkan Decoder Ring

chapters/depth.adoc

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
// Required for both single-page and combined guide xrefs to work
55
ifndef::chapters[:chapters:]
6+
ifndef::images[:images: images/]
67

78
[[Depth]]
89
= Depth
@@ -130,7 +131,7 @@ In the graphics pipeline, there are a series of link:https://registry.khronos.or
130131

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

133-
image::images/depth_coordinates_flow.png[depth_coordinates_flow]
134+
image::{images}depth_coordinates_flow.png[depth_coordinates_flow]
134135

135136
[[primitive-clipping]]
136137
=== Primitive Clipping
@@ -314,7 +315,7 @@ The depth test compares the framebuffer depth coordinate `Zf` with the depth val
314315

315316
The following gives a high level overview of the depth test.
316317

317-
image::images/depth_test.png[depth_test]
318+
image::{images}depth_test.png[depth_test]
318319

319320
[[depth-compare-operation]]
320321
==== Depth Compare Operation

chapters/descriptor_dynamic_offset.adoc

+6-5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters:]
5+
ifndef::images[:images: images/]
56

67
[[descriptor-dynamic-offset]]
78
= Descriptor Dynamic Offset
@@ -48,7 +49,7 @@ vkCmdBindDescriptorSets(
4849

4950
Our buffer now currently looks like the following:
5051

51-
image::images/descriptor_dynamic_offset_example_a.png[descriptor_dynamic_offset_example_a.png]
52+
image::{images}descriptor_dynamic_offset_example_a.png[descriptor_dynamic_offset_example_a.png]
5253

5354
Next, a 8 byte dynamic offset will applied at bind time.
5455

@@ -65,7 +66,7 @@ vkCmdBindDescriptorSets(
6566

6667
Our buffer currently looks like the following:
6768

68-
image::images/descriptor_dynamic_offset_example_b.png[descriptor_dynamic_offset_example_b.png]
69+
image::{images}descriptor_dynamic_offset_example_b.png[descriptor_dynamic_offset_example_b.png]
6970

7071
== Example with VK_WHOLE_SIZE
7172

@@ -104,7 +105,7 @@ vkCmdBindDescriptorSets(
104105

105106
Our buffer currently looks like the following:
106107

107-
image::images/descriptor_dynamic_offset_example_c.png[descriptor_dynamic_offset_example_c.png]
108+
image::{images}descriptor_dynamic_offset_example_c.png[descriptor_dynamic_offset_example_c.png]
108109

109110
This time, if we attempt to apply a dynamic offset it will be met with undefined behavior and the link:https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/2846[validation layers will give an error]
110111

@@ -122,8 +123,8 @@ vkCmdBindDescriptorSets(
122123

123124
This is what it looks like with the invalid dynamic offset
124125

125-
image::images/descriptor_dynamic_offset_example_d.png[descriptor_dynamic_offset_example_d.png]
126+
image::{images}descriptor_dynamic_offset_example_d.png[descriptor_dynamic_offset_example_d.png]
126127

127128
== Limits
128129

129-
It is important to also check the `minUniformBufferOffsetAlignment` and `minStorageBufferOffsetAlignment` as both the base offset and dynamic offset must be multiples of these limits.
130+
It is important to also check the `minUniformBufferOffsetAlignment` and `minStorageBufferOffsetAlignment` as both the base offset and dynamic offset must be multiples of these limits.

chapters/development_tools.adoc

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters:]
5+
ifndef::images[:images: images/]
56

67
[[development-tools]]
78
= Development Tools

chapters/dynamic_state.adoc

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters:]
5+
ifndef::images[:images: images/]
56

67
[[dynamic-state]]
78
= Pipeline Dynamic State

chapters/enabling_extensions.adoc

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters:]
5+
ifndef::images[:images: images/]
56

67
[[enabling-extensions]]
78
= Enabling Extensions
@@ -14,7 +15,7 @@ There are two groups of extensions, **instance extensions** and **device extensi
1415

1516
This information is documented under the "`Extension Type`" section of each extension reference page. Example below:
1617

17-
image::images/enabling_extensions_instance_extension.png[enabling_extensions_instance_extension.png]
18+
image::{images}enabling_extensions_instance_extension.png[enabling_extensions_instance_extension.png]
1819

1920
== Check for support
2021

@@ -42,7 +43,7 @@ Even if the extension is **supported** by the implementation, it is **undefined
4243

4344
Here is an example of what is needed to enable an extension such as `VK_KHR_driver_properties`.
4445

45-
image::images/enabling_extensions_driver_properties.png[enabling_extensions_driver_properties.png]
46+
image::{images}enabling_extensions_driver_properties.png[enabling_extensions_driver_properties.png]
4647

4748
[source,cpp]
4849
----
@@ -71,7 +72,7 @@ vkCreateDevice(physicalDevice, &device_create_info, nullptr, &myDevice);
7172

7273
It is important to remember that extensions add the existence of functionality to the Vulkan spec, but this doesn't mean that all features of an extension are available if the extension is **supported**. An example is an extension such as `VK_KHR_8bit_storage`, which has 3 features it exposes in `VkPhysicalDevice8BitStorageFeatures`.
7374

74-
image::images/enabling_extensions_8bit.png[enabling_extensions_8bit.png]
75+
image::{images}enabling_extensions_8bit.png[enabling_extensions_8bit.png]
7576

7677
This means after enabling the extension, an application will still need to xref:{chapters}enabling_features.adoc#enabling-features[query and enable the features] needed from an extension.
7778

chapters/enabling_features.adoc

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters:]
5+
ifndef::images[:images: images/]
56

67
[[enabling-features]]
78
= Enabling Features

chapters/extensions/VK_EXT_descriptor_indexing.adoc

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters: ../]
5+
ifndef::images[:images: ../images/]
56

67
[[VK_EXT_descriptor_indexing]]
78
= VK_EXT_descriptor_indexing
@@ -37,7 +38,7 @@ After enabling the desired feature support for updating after bind, an applicati
3738

3839
The following code example gives an idea of the difference between enabling update after bind and without it:
3940

40-
image::images/VK_EXT_descriptor_indexing_update_after_bind.png[VK_EXT_descriptor_indexing_update_after_bind.png]
41+
image::{images}extensions/VK_EXT_descriptor_indexing_update_after_bind.png[VK_EXT_descriptor_indexing_update_after_bind.png]
4142

4243
== Partially bound
4344

chapters/extensions/VK_EXT_inline_uniform_block.adoc

+3-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters: ../]
5+
ifndef::images[:images: ../images/]
56

67
[[VK_EXT_inline_uniform_block]]
78
= VK_EXT_inline_uniform_block
@@ -13,11 +14,11 @@ Promoted to core in Vulkan 1.3
1314

1415
For a common implementation, descriptors are just a table to indirectly point to the data that was bound to it during the recording of the command buffer. The issue is that not all descriptors are created equally, for example, one descriptor might only be a few DWORDS in size.
1516

16-
image::images/VK_EXT_inline_uniform_block_before.png[VK_EXT_inline_uniform_block_before.png]
17+
image::{images}extensions/VK_EXT_inline_uniform_block_before.png[VK_EXT_inline_uniform_block_before.png]
1718

1819
Using `VK_EXT_inline_uniform_block` gives an implementation the opportunity to reduce the number of indirections an implementation takes to access uniform values, when only a few values are used. Unlike push constants, this data can be reused across multiple disjoint sets of draws/dispatches.
1920

20-
image::images/VK_EXT_inline_uniform_block_after.png[VK_EXT_inline_uniform_block_after.png]
21+
image::{images}extensions/VK_EXT_inline_uniform_block_after.png[VK_EXT_inline_uniform_block_after.png]
2122

2223
== Suggestions
2324

chapters/extensions/VK_EXT_memory_priority.adoc

+3-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters: ../]
5+
ifndef::images[:images: ../images/]
56

67
[[VK_EXT_memory_priority]]
78
= VK_EXT_memory_priority
@@ -10,13 +11,13 @@ Memory management is an important part of Vulkan. The `VK_EXT_memory_priority` e
1011

1112
This extension can be explained with an example of two applications (the main application and another process on the host machine). Over time the applications both attempt to consume the limited device heap memory.
1213

13-
image::images/VK_EXT_memory_priority_overview.png[VK_EXT_memory_priority_overview]
14+
image::{images}extensions/VK_EXT_memory_priority_overview.png[VK_EXT_memory_priority_overview]
1415

1516
In this situation, the allocation from the main application is still present, just possibly on slower memory (implementation might have moved it to host visible memory until it is needed again).
1617

1718
The decision of **what** memory will get moved is implementation defined. Let's now imagine this is the main application's memory usage
1819

19-
image::images/VK_EXT_memory_priority_app.png[VK_EXT_memory_priority_app]
20+
image::{images}extensions/VK_EXT_memory_priority_app.png[VK_EXT_memory_priority_app]
2021

2122
As we can see, there was some memory the application felt was more important to always attempt to keep in fast memory.
2223

chapters/extensions/VK_KHR_descriptor_update_template.adoc

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters: ../]
5+
ifndef::images[:images: ../images/]
56

67
[[VK_KHR_descriptor_update_template]]
78
= VK_KHR_descriptor_update_template

chapters/extensions/VK_KHR_draw_indirect_count.adoc

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters: ../]
5+
ifndef::images[:images: ../images/]
56

67
[[VK_KHR_draw_indirect_count]]
78
= VK_KHR_draw_indirect_count
@@ -20,4 +21,4 @@ The `vkCmdDrawIndirectCount` and `vkCmdDrawIndexedIndirectCount` function can be
2021

2122
The following diagram is to visualize the difference between `vkCmdDraw`, `vkCmdDrawIndirect`, and `vkCmdDrawIndirectCount`.
2223

23-
image::images/VK_KHR_draw_indirect_count_example.png[VK_KHR_draw_indirect_count example]
24+
image::{images}extensions/VK_KHR_draw_indirect_count_example.png[VK_KHR_draw_indirect_count example]

chapters/extensions/VK_KHR_image_format_list.adoc

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters: ../]
5+
ifndef::images[:images: ../images/]
56

67
[[VK_KHR_image_format_list]]
78
= VK_KHR_image_format_list

chapters/extensions/VK_KHR_imageless_framebuffer.adoc

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters: ../]
5+
ifndef::images[:images: ../images/]
56

67
[[VK_KHR_imageless_framebuffer]]
78
= VK_KHR_imageless_framebuffer

chapters/extensions/VK_KHR_sampler_ycbcr_conversion.adoc

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters: ../]
5+
ifndef::images[:images: ../images/]
56

67
:YCbCr: pass:q[Y′C~B~C~R~]
78

chapters/extensions/VK_KHR_shader_subgroup_uniform_control_flow.adoc

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters: ../]
5+
ifndef::images[:images: ../images/]
56

67
[[VK_KHR_shader_subgroup_uniform_control_flow]]
78
= VK_KHR_shader_subgroup_uniform_control_flow

chapters/extensions/VK_KHR_synchronization2.adoc

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters: ../]
5+
ifndef::images[:images: ../images/]
56

67
[[VK_KHR_synchronization2]]
78
= VK_KHR_synchronization2
@@ -19,7 +20,7 @@ One main change with the extension is to have pipeline stages and access flags n
1920

2021
The only new type of structure needed is `VkDependencyInfoKHR`, which wraps all the barriers into a single location.
2122

22-
image::images/VK_KHR_synchronization2_stage_access.png[VK_KHR_synchronization2_stage_access]
23+
image::{images}extensions/VK_KHR_synchronization2_stage_access.png[VK_KHR_synchronization2_stage_access]
2324

2425
=== Adding barriers for setting events
2526

chapters/extensions/cleanup.adoc

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
// Required for both single-page and combined guide xrefs to work
55
ifndef::chapters[:chapters: ../]
6+
ifndef::images[:images: ../images/]
67

78
[[cleanup]]
89
= Cleanup Extensions
@@ -64,7 +65,7 @@ Promoted to core in Vulkan 1.2
6465

6566
There are formats that express both the usage of depth and stencil, but there was no way to list a different usage for them. The `VkImageStencilUsageCreateInfo` now lets an application pass in a separate `VkImageUsageFlags` for the stencil usage of an image. The depth usage is the original usage passed into `VkImageCreateInfo::usage` and without using `VkImageStencilUsageCreateInfo` the stencil usage will be the same as well.
6667

67-
A good use case of this is when using the xref:{chapters}VK_KHR_image_format_list.adoc#VK_KHR_image_format_list[VK_KHR_image_format_list] extension. This provides a way for the application to more explicitly describe the possible image views of their `VkImage` at creation time. This allows some implementations to possibly do implementation dependent optimization depending on the usages set.
68+
A good use case of this is when using the xref:{chapters}extensions/VK_KHR_image_format_list.adoc#VK_KHR_image_format_list[VK_KHR_image_format_list] extension. This provides a way for the application to more explicitly describe the possible image views of their `VkImage` at creation time. This allows some implementations to possibly do implementation dependent optimization depending on the usages set.
6869

6970
[[VK_KHR_dedicated_allocation]]
7071
== VK_KHR_dedicated_allocation

chapters/extensions/device_groups.adoc

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters: ../]
5+
ifndef::images[:images: ../images/]
56

67
[[device-groups]]
78
= Device Groups

chapters/extensions/external.adoc

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters: ../]
5+
ifndef::images[:images: ../images/]
56

67
[[external-memory]]
78
= External Memory and Synchronization
@@ -81,4 +82,4 @@ There is a `VkImport*` function for importing and a `VkGet*` function for export
8182

8283
Here is a simple diagram showing the timeline of events between Vulkan and some other API talking to the GPU. This is used to represent a common use case for these external memory and synchronization extensions.
8384

84-
image::images/external_example.png[external_example.png]
85+
image::{images}extensions/external_example.png[external_example.png]

chapters/extensions/ray_tracing.adoc

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters: ../]
5+
ifndef::images[:images: ../images/]
56

67
[[ray-tracing]]
78
= Ray Tracing

chapters/extensions/shader_features.adoc

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
// Required for both single-page and combined guide xrefs to work
55
ifndef::chapters[:chapters: ../]
6+
ifndef::images[:images: ../images/]
67

78
[[shader-features]]
89
= Shader Features
@@ -306,4 +307,4 @@ Promoted to core in Vulkan 1.3
306307

307308
This extension allows `OpVariable` with a `Workgroup` `Storage Class` to use the `Initializer` operand.
308309

309-
For security reasons, applications running untrusted content (e.g. web browsers) need to be able to zero-initialize workgroup memory at the start of workgroup execution. Adding instructions to set all workgroup variables to zero would be less efficient than what some hardware is capable of, due to poor access patterns.
310+
For security reasons, applications running untrusted content (e.g. web browsers) need to be able to zero-initialize workgroup memory at the start of workgroup execution. Adding instructions to set all workgroup variables to zero would be less efficient than what some hardware is capable of, due to poor access patterns.

chapters/extensions/translation_layer_extensions.adoc

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
// Required for both single-page and combined guide xrefs to work
55
ifndef::chapters[:chapters: ../]
6+
ifndef::images[:images: ../images/]
67

78
[[translation-layer-extensions]]
89
= Translation Layer Extensions

chapters/formats.adoc

+3-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// SPDX-License-Identifier: CC-BY-4.0
33

44
ifndef::chapters[:chapters:]
5+
ifndef::images[:images: images/]
56

67
[[formats]]
78
= Formats
@@ -111,7 +112,7 @@ representation of multiple pixels encoded interdependently within a region.
111112

112113
=== Planar
113114

114-
link:https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_sampler_ycbcr_conversion.html[VK_KHR_sampler_ycbcr_conversion] and link:https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_ycbcr_2plane_444_formats.html[VK_EXT_ycbcr_2plane_444_formats] add xref:{chapters}VK_KHR_sampler_ycbcr_conversion.adoc#multi-planar-formats[multi-planar formats] to Vulkan. The planes can be accessed separately with `VK_IMAGE_ASPECT_PLANE_0_BIT`, `VK_IMAGE_ASPECT_PLANE_1_BIT`, and `VK_IMAGE_ASPECT_PLANE_2_BIT`.
115+
link:https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_sampler_ycbcr_conversion.html[VK_KHR_sampler_ycbcr_conversion] and link:https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_ycbcr_2plane_444_formats.html[VK_EXT_ycbcr_2plane_444_formats] add xref:{chapters}extensions/VK_KHR_sampler_ycbcr_conversion.adoc#multi-planar-formats[multi-planar formats] to Vulkan. The planes can be accessed separately with `VK_IMAGE_ASPECT_PLANE_0_BIT`, `VK_IMAGE_ASPECT_PLANE_1_BIT`, and `VK_IMAGE_ASPECT_PLANE_2_BIT`.
115116

116117
=== Packed
117118

@@ -125,4 +126,4 @@ For `VK_FORMAT_R8G8B8A8_UNORM` the `attribAddress` has to be a multiple of the c
125126

126127
=== External
127128

128-
Currently only supported with the `VK_ANDROID_external_memory_android_hardware_buffer` extension. This extension allows Android applications to import implementation-defined external formats to be used with a xref:{chapters}VK_KHR_sampler_ycbcr_conversion.adoc[VkSamplerYcbcrConversion]. There are many restrictions what are allowed with these external formats which are link:https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats[documented in the spec].
129+
Currently only supported with the `VK_ANDROID_external_memory_android_hardware_buffer` extension. This extension allows Android applications to import implementation-defined external formats to be used with a xref:{chapters}extensions/VK_KHR_sampler_ycbcr_conversion.adoc[VkSamplerYcbcrConversion]. There are many restrictions what are allowed with these external formats which are link:https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-external-android-hardware-buffer-external-formats[documented in the spec].

0 commit comments

Comments
 (0)