Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/misc.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
////
- Copyright (c) 2019-2023, Arm Limited and Contributors
- Copyright (c) 2019-2025, Arm Limited and Contributors
-
- SPDX-License-Identifier: Apache-2.0
-
Expand Down Expand Up @@ -61,7 +61,7 @@ image::./images/debug-window.png[Debug Window]

== Driver version

The debug window shows the driver version of the GPU, which follows the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/chap44.html#extendingvulkan-coreversions-versionnumbers[Vulkan semantics], with a major, minor, and patch number.
The debug window shows the driver version of the GPU, which follows the https://registry.khronos.org/vulkan/specs/latest/html/chap44.html#extendingvulkan-coreversions-versionnumbers[Vulkan semantics], with a major, minor, and patch number.
New versions of the driver will increment these numbers.

The framework is able to get these values by calling `vkGetPhysicalDeviceProperties(physical_device, &properties)`.
Expand Down
8 changes: 4 additions & 4 deletions samples/api/hpp_timestamp_queries/README.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
////
- Copyright (c) 2023-2024, The Khronos Group
- Copyright (c) 2023-2025, The Khronos Group
-
- SPDX-License-Identifier: Apache-2.0
-
Expand Down Expand Up @@ -36,8 +36,8 @@ improve performance where needed.

== Introduction

Vulkan offers several https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries[query types] that allow you to query different types of information from the GPU.
One such query type is the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-timestamps[timestamp query].
Vulkan offers several https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#queries[query types] that allow you to query different types of information from the GPU.
One such query type is the https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#queries-timestamps[timestamp query].

This provides your application with a mechanism to time the execution of commands on the GPU.
As with the other query types, a query pool is then used to either directly fetch or copy over the results to the host.
Expand Down Expand Up @@ -274,7 +274,7 @@ float delta_in_ms = float(time_stamps[1] - time_stamps[0]) * device_limits.times

== vk::CommandBuffer::writeTimestamp2

The https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_synchronization2.html[VK_KHR_synchronization2] extension introduced `vk::CommandBuffer::writeTimestamp2`.
The https://registry.khronos.org/vulkan/specs/latest/man/html/VK_KHR_synchronization2.html[VK_KHR_synchronization2] extension introduced `vk::CommandBuffer::writeTimestamp2`.
This is pretty much the same as the `vk::CommandBuffer::writeTimestamp` function used in this sample, but adds support for some additional pipeline stages using `vk::PipelineStageFlags2`.

== Verdict
Expand Down
8 changes: 4 additions & 4 deletions samples/api/timestamp_queries/README.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
////
- Copyright (c) 2022-2024, Sascha Willems
- Copyright (c) 2022-2025, Sascha Willems
-
- SPDX-License-Identifier: Apache-2.0
-
Expand Down Expand Up @@ -32,8 +32,8 @@ improve performance where needed.

== Introduction

Vulkan offers several https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries[query types] that allow you to query different types of information from the GPU.
One such query type is the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-timestamps[timestamp query].
Vulkan offers several https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#queries[query types] that allow you to query different types of information from the GPU.
One such query type is the https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#queries-timestamps[timestamp query].

This provides your application with a mechanism to time the execution of commands on the GPU.
As with the other query types, a query pool is then used to either directly fetch or copy over the results to the host.
Expand Down Expand Up @@ -256,7 +256,7 @@ float delta_in_ms = float(time_stamps[1] - time_stamps[0]) * device_limits.times

== vkCmdWriteTimestamp2

The https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_synchronization2.html[VK_KHR_synchronization2] extension introduced `vkCmdWriteTimestamp2`.
The https://registry.khronos.org/vulkan/specs/latest/man/html/VK_KHR_synchronization2.html[VK_KHR_synchronization2] extension introduced `vkCmdWriteTimestamp2`.
This is pretty much the same as the `vkCmdWriteTimestamp` function used in this sample, but adds support for some additional pipeline stages using `VkPipelineStageFlags2`.

== Verdict
Expand Down
82 changes: 41 additions & 41 deletions samples/extensions/README.adoc

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions samples/extensions/color_write_enable/README.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
////
- Copyright (c) 2023, Mobica Limited
- Copyright (c) 2023-2025, Mobica Limited
-
- SPDX-License-Identifier: Apache-2.0
-
Expand Down Expand Up @@ -58,12 +58,12 @@ The sample shows how to setup an application to work with this extension:

== Documentation links

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_color_write_enable.html
https://registry.khronos.org/vulkan/specs/latest/man/html/VK_EXT_color_write_enable.html

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubpassDescription.html
https://registry.khronos.org/vulkan/specs/latest/man/html/VkSubpassDescription.html

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFramebufferCreateInfo.html
https://registry.khronos.org/vulkan/specs/latest/man/html/VkFramebufferCreateInfo.html

== See also

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetColorWriteMaskEXT.html
https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetColorWriteMaskEXT.html
4 changes: 2 additions & 2 deletions samples/extensions/conditional_rendering/README.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
////
- Copyright (c) 2022-2023, Sascha Willems
- Copyright (c) 2022-2025, Sascha Willems
-
- SPDX-License-Identifier: Apache-2.0
-
Expand Down Expand Up @@ -28,7 +28,7 @@ image::./images/sample.png[Sample]

== Overview

The https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_EXT_conditional_rendering.html[VK_EXT_conditional_rendering] extension allows the execution of rendering commands to be conditional based on a value taken from a dedicated conditional buffer.
The https://www.khronos.org/registry/vulkan/specs/latest/man/html/VK_EXT_conditional_rendering.html[VK_EXT_conditional_rendering] extension allows the execution of rendering commands to be conditional based on a value taken from a dedicated conditional buffer.
This may help an application reduce the latency by conditionally discarding rendering commands without application intervention.

This sample demonstrates usage of this extension for conditionally toggling the visibility of sub-meshes of a complex glTF model.
Expand Down
4 changes: 2 additions & 2 deletions samples/extensions/conservative_rasterization/README.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
////
- Copyright (c) 2019-2023, The Khronos Group
- Copyright (c) 2019-2025, The Khronos Group
-
- SPDX-License-Identifier: Apache-2.0
-
Expand All @@ -24,7 +24,7 @@ TIP: The source for this sample can be found in the https://github.com/KhronosGr
endif::[]


*Extension*: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conservative_rasterization[`VK_EXT_conservative_rasterization`]
*Extension*: https://www.khronos.org/registry/vulkan/specs/latest/html/vkspec.html#VK_EXT_conservative_rasterization[`VK_EXT_conservative_rasterization`]

Uses conservative rasterization to change the way fragments are generated.
Enables overestimation to generate fragments for every pixel touched instead of only pixels that are fully covered.
2 changes: 1 addition & 1 deletion samples/extensions/debug_utils/README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ endif::[]

== Overview

This tutorial, along with the accompanying example code, demonstrates the use of the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utils[VK_EXT_debug_utils] extension to setup a validation layer messenger callback and pass additional debugging information to debuggers like https://renderdoc.org/[RenderDoc].
This tutorial, along with the accompanying example code, demonstrates the use of the https://www.khronos.org/registry/vulkan/specs/latest/html/vkspec.html#VK_EXT_debug_utils[VK_EXT_debug_utils] extension to setup a validation layer messenger callback and pass additional debugging information to debuggers like https://renderdoc.org/[RenderDoc].

`VK_EXT_debug_utils` has been introduced based on feedback for the initial Vulkan debugging extensions `VK_EXT_debug_report` and `VK_EXT_debug_marker`, combining these into a single instance extensions with some added functionality.

Expand Down
4 changes: 2 additions & 2 deletions samples/extensions/descriptor_buffer_basic/README.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
////
- Copyright (c) 2023-2024, Sascha Willems
- Copyright (c) 2023-2025, Sascha Willems
-
- SPDX-License-Identifier: Apache-2.0
-
Expand All @@ -26,7 +26,7 @@ endif::[]
== Overview

Binding and managing descriptors in Vulkan can become pretty complex, both for the application and the driver.
With the https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ext_descriptor_buffer[`VK_EXT_descriptor_buffer`] extension, this interface is simplified and maps more directly to how hardware sees descriptors.
With the https://www.khronos.org/registry/vulkan/specs/latest/html/vkspec.html#VK_ext_descriptor_buffer[`VK_EXT_descriptor_buffer`] extension, this interface is simplified and maps more directly to how hardware sees descriptors.
It also simplifies the programming model, as you no longer have to create descriptor pool upfront.

This sample shows how to use that extension by rendering multiple objects with different uniform buffers and images using the new interface of creating and binding descriptors.
Expand Down
10 changes: 5 additions & 5 deletions samples/extensions/dynamic_blending/README.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
////
- Copyright (c) 2023, Mobica Limited
- Copyright (c) 2023-2025, Mobica Limited
-
- SPDX-License-Identifier: Apache-2.0
-
Expand Down Expand Up @@ -58,10 +58,10 @@ The sample demonstrates how the use of each operator affects color blending.

== Documentation links

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetColorBlendEnableEXT.html
https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetColorBlendEnableEXT.html

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetColorBlendEquationEXT.html
https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetColorBlendEquationEXT.html

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetColorBlendAdvancedEXT.html
https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetColorBlendAdvancedEXT.html

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetColorWriteMaskEXT.html
https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetColorWriteMaskEXT.html
12 changes: 6 additions & 6 deletions samples/extensions/dynamic_line_rasterization/README.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
////
- Copyright (c) 2023-2024, Mobica Limited
- Copyright (c) 2023-2025, Mobica Limited
-
- SPDX-License-Identifier: Apache-2.0
-
Expand Down Expand Up @@ -57,12 +57,12 @@ The infinite grid shader is based on the code from the https://asliceofrendering

== Documentation links

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetLineStippleEXT.html
https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetLineStippleEXT.html

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetPolygonModeEXT.html
https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPolygonModeEXT.html

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetLineRasterizationModeEXT.html
https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetLineRasterizationModeEXT.html

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetLineStippleEnableEXT.html
https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetLineStippleEnableEXT.html

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetLineWidth.html
https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetLineWidth.html
6 changes: 3 additions & 3 deletions samples/extensions/extended_dynamic_state2/README.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
////
- Copyright (c) 2023, Mobica Limited
- Copyright (c) 2023-2025, Mobica Limited
-
- SPDX-License-Identifier: Apache-2.0
-
Expand Down Expand Up @@ -260,7 +260,7 @@ void ExtendedDynamicState2::draw_from_scene(VkCommandBuffer command_buffer, std:
== Enabling the Extension

The extended dynamic state 2 api requires Vulkan 1.0 and the appropriate headers / SDK is required.
This extension has been https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_extended_dynamic_state2.html#_promotion_to_vulkan_1_3[partially] promoted to Vulkan 1.3.
This extension has been https://registry.khronos.org/vulkan/specs/latest/man/html/VK_EXT_extended_dynamic_state2.html#_promotion_to_vulkan_1_3[partially] promoted to Vulkan 1.3.

The device extension is provided by `VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME`.
It also requires `VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME` instance extension to be enabled.
Expand All @@ -271,6 +271,6 @@ add_instance_extension(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME);
add_device_extension(VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME);
----

If the https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExtendedDynamicState2FeaturesEXT.html[`VkPhysicalDeviceExtendedDynamicState2FeaturesEXT`] structure is included in the pNext chain of the `VkPhysicalDeviceFeatures2` structure passed to vkGetPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported.
If the https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExtendedDynamicState2FeaturesEXT.html[`VkPhysicalDeviceExtendedDynamicState2FeaturesEXT`] structure is included in the pNext chain of the `VkPhysicalDeviceFeatures2` structure passed to vkGetPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported.
`VkPhysicalDeviceExtendedDynamicState2FeaturesEXT` can also be used in the pNext chain of `VkDeviceCreateInfo` to selectively enable these features.
o selectively enable these features.
14 changes: 7 additions & 7 deletions samples/extensions/fragment_shader_barycentric/README.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
////
- Copyright (c) 2023, Mobica Limited
- Copyright (c) 2023-2025, Mobica Limited
-
- SPDX-License-Identifier: Apache-2.0
-
Expand Down Expand Up @@ -29,7 +29,7 @@ Fragment shader barycentric feature provides support for accessing the barycentr

== Overview

The https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_fragment_shader_barycentric.html[VK_KHR_fragment_shader_barycentric] extension is based on https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_fragment_shader_barycentric.html[VK_NV_fragment_shader_barycentric].
The https://registry.khronos.org/vulkan/specs/latest/man/html/VK_KHR_fragment_shader_barycentric.html[VK_KHR_fragment_shader_barycentric] extension is based on https://registry.khronos.org/vulkan/specs/latest/man/html/VK_NV_fragment_shader_barycentric.html[VK_NV_fragment_shader_barycentric].

The extension provides access to additional built-in variables and decorations:

Expand All @@ -50,7 +50,7 @@ The extension provides access to additional built-in variables and decorations:
|===

The built-in fragment shader input variables `gl_BaryCoordEXT` and `gl_BaryCoordNoPerspEXT` are three-component floating-point vectors that provide the barycentric coordinates for the fragment.
The values for these built-ins are derived as described in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables[the Vulkan API Specifications].
The values for these built-ins are derived as described in https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#interfaces-builtin-variables[the Vulkan API Specifications].
The built-in variables hold barycentric weights for the fragment produced using:

* perspective interpolation: `gl_BaryCoordEXT`
Expand All @@ -64,8 +64,8 @@ layout(location = 0) pervertexEXT in vec4 perVertexAttr[];
----

Each array element corresponds to one of the vertices of the primitive that produced the fragment.
The order of the vertices is defined in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-barycentric[the Vulkan API Specifications].
Interpolated values are not available for inputs declared with the https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-interpolation-decorations-pervertexkhr[`pervertexEXT`].
The order of the vertices is defined in https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#primsrast-barycentric[the Vulkan API Specifications].
Interpolated values are not available for inputs declared with the https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#shaders-interpolation-decorations-pervertexkhr[`pervertexEXT`].

The fragment shader barycentric sample demonstrates feature usage by applying different effects on a cube.
The effects are implemented using the `pervertexEXT` decoration and built-in variables `gl_BaryCoordEXT` and `gl_BaryCoordNoPerspEXT`.
Expand All @@ -80,8 +80,8 @@ The following effects are available from the GUI:

== Enabling the Extension

Enabling the fragment shader barycentric feature is done using the https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR.html[`VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR`] structure, where `fragmentShaderBarycentric` indicates barycentric support in fragment shaders.
The structure should be passed to `vkGetPhysicalDeviceFeatures2` in the pNext member of the https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceFeatures2.html[`VkPhysicalDeviceFeatures2`] structure.
Enabling the fragment shader barycentric feature is done using the https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR.html[`VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR`] structure, where `fragmentShaderBarycentric` indicates barycentric support in fragment shaders.
The structure should be passed to `vkGetPhysicalDeviceFeatures2` in the pNext member of the https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFeatures2.html[`VkPhysicalDeviceFeatures2`] structure.

[,C++]
----
Expand Down
4 changes: 2 additions & 2 deletions samples/extensions/fragment_shading_rate/README.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
////
- Copyright (c) 2019-2023, The Khronos Group
- Copyright (c) 2019-2025, The Khronos Group
-
- SPDX-License-Identifier: Apache-2.0
-
Expand All @@ -24,7 +24,7 @@ TIP: The source for this sample can be found in the https://github.com/KhronosGr
endif::[]


*Extension*: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_fragment_shading_rate.html[`VK_KHR_fragment_shading_rate`]
*Extension*: https://www.khronos.org/registry/vulkan/specs/latest/man/html/VK_KHR_fragment_shading_rate.html[`VK_KHR_fragment_shading_rate`]

Uses a special framebuffer attachment to control fragment shading rates for different framebuffer regions.
This allows explicit control over the number of fragment shader invocations for each pixel covered by a fragment, which is e.g.
Expand Down
Loading
Loading