docs: update/fix vk spec urls

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37993>
This commit is contained in:
Eric Engestrom 2025-10-22 09:23:34 +02:00
parent efbecd93ba
commit 4ab65cdaa4
11 changed files with 19 additions and 19 deletions

View file

@ -24,7 +24,7 @@ def ext_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
parts = ext.split('_', 2)
if parts[0] == 'VK':
full_url = f'https://registry.khronos.org/vulkan/specs/latest/man/html/{ext}.html'
full_url = f'https://docs.vulkan.org/refpages/latest/refpages/source/{ext}.html'
elif parts[0] == 'GL':
full_url = f'https://registry.khronos.org/OpenGL/extensions/{parts[1]}/{parts[1]}_{parts[2]}.txt'
else:
@ -37,7 +37,7 @@ def vkfeat_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
text = utils.unescape(text)
has_explicit_title, title, ext = split_explicit_title(text)
full_url = f'https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#features-{ext}'
full_url = f'https://docs.vulkan.org/spec/latest/chapters/features.html#features-{ext}'
pnode = nodes.reference(title, title, internal=False, refuri=full_url)
return [pnode], []

View file

@ -117,7 +117,7 @@ intersect_ray_amd_software_box(struct radv_device *device, nir_builder *b, nir_d
/* If x of the aabb min is NaN, then this is an inactive aabb.
* We don't need to care about any other components being NaN as that is UB.
* https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#acceleration-structure-inactive-prims
* https://docs.vulkan.org/spec/latest/chapters/accelstructures.html#acceleration-structure-inactive-prims
*/
nir_def *min_x = nir_channel(b, node_coords[0], 0);
nir_def *min_x_is_not_nan = nir_inot(b, nir_fneu(b, min_x, min_x)); /* NaN != NaN -> true */

View file

@ -2256,7 +2256,7 @@ lp_build_sample_aniso(struct lp_build_sample_context *bld,
/*
* We use the suggested anisotropic filtering algorithm from the Vulkan spec:
* https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#textures-texel-anisotropic-filtering
* https://docs.vulkan.org/spec/latest/chapters/textures.html#textures-texel-anisotropic-filtering
* The coordinate offset expression is the same in all cases: -1/2 + i / (N + 1)
* We can rewrite this expression as: (-N - 1) / (2N + 2) + 2i / (2N + 2) =
* (-N - 1 + 2i) / (2N + 2) = (-0.5N - 0.5 + i) / (N + 1)

View file

@ -102,7 +102,7 @@ lvp_build_intersect_ray_box(nir_builder *b, nir_def **node_data, nir_def *ray_tm
/* If x of the aabb min is NaN, then this is an inactive aabb.
* We don't need to care about any other components being NaN as that is UB.
* https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#acceleration-structure-inactive-prims
* https://docs.vulkan.org/spec/latest/chapters/accelstructures.html#acceleration-structure-inactive-prims
*/
nir_def *min_x = nir_channel(b, node_coords[0], 0);
nir_def *min_x_is_not_nan =

View file

@ -190,7 +190,7 @@ VkResult getAndroidHardwareBufferPropertiesANDROID(
// * V (CR) comes from the R-channel (after swizzle)
//
// See
// https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#textures-sampler-YCbCr-conversion
// https://docs.vulkan.org/spec/latest/chapters/textures.html#textures-sampler-YCbCr-conversion
//
// To match the above, the guest needs to swizzle such that:
//

View file

@ -1746,7 +1746,7 @@ VkResult ResourceTracker::on_vkEnumerateInstanceExtensionProperties(
// Spec:
//
// https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateInstanceExtensionProperties.html
// https://docs.vulkan.org/refpages/latest/refpages/source/vkEnumerateInstanceExtensionProperties.html
//
// If pProperties is NULL, then the number of extensions properties
// available is returned in pPropertyCount. Otherwise, pPropertyCount
@ -2025,14 +2025,14 @@ VkResult ResourceTracker::on_vkEnumerateDeviceExtensionProperties(
// Spec:
//
// https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateDeviceExtensionProperties.html
// https://docs.vulkan.org/refpages/latest/refpages/source/vkEnumerateDeviceExtensionProperties.html
//
// pPropertyCount is a pointer to an integer related to the number of
// extension properties available or queried, and is treated in the
// same fashion as the
// vkEnumerateInstanceExtensionProperties::pPropertyCount parameter.
//
// https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateInstanceExtensionProperties.html
// https://docs.vulkan.org/refpages/latest/refpages/source/vkEnumerateInstanceExtensionProperties.html
//
// If pProperties is NULL, then the number of extensions properties
// available is returned in pPropertyCount. Otherwise, pPropertyCount
@ -2087,7 +2087,7 @@ VkResult ResourceTracker::on_vkEnumeratePhysicalDevices(void* context, VkResult,
// even if the guest did not ask for it
// - Serve the guest query according to the spec:
//
// https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDevices.html
// https://docs.vulkan.org/refpages/latest/refpages/source/vkEnumeratePhysicalDevices.html
auto it = info_VkInstance.find(instance);
@ -2130,7 +2130,7 @@ VkResult ResourceTracker::on_vkEnumeratePhysicalDevices(void* context, VkResult,
// Serve the guest query according to the spec.
//
// https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDevices.html
// https://docs.vulkan.org/refpages/latest/refpages/source/vkEnumeratePhysicalDevices.html
//
// If pPhysicalDevices is NULL, then the number of physical devices
// available is returned in pPhysicalDeviceCount. Otherwise,
@ -5846,7 +5846,7 @@ void ResourceTracker::on_vkDestroySemaphore(void* context, VkDevice device, VkSe
enc->vkDestroySemaphore(device, semaphore, pAllocator, true /* do lock */);
}
// https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#vkGetSemaphoreFdKHR
// https://docs.vulkan.org/refpages/latest/refpages/source/vkGetSemaphoreFdKHR.html
// Each call to vkGetSemaphoreFdKHR must create a new file descriptor and transfer ownership
// of it to the application. To avoid leaking resources, the application must release ownership
// of the file descriptor when it is no longer needed.
@ -6444,7 +6444,7 @@ VkResult ResourceTracker::on_vkQueueSubmitTemplate(void* context, VkResult input
#endif
#if defined(VK_USE_PLATFORM_ANDROID_KHR) || DETECT_OS_LINUX
for (auto fd : preSignalSyncFds) {
// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImportSemaphoreFdInfoKHR.html
// https://docs.vulkan.org/refpages/latest/refpages/source/VkImportSemaphoreFdInfoKHR.html
// fd == -1 is treated as already signaled
if (fd != -1) {
mSyncHelper->wait(fd, 3000);

View file

@ -794,7 +794,7 @@ anv_get_image_format_features2(const struct anv_physical_device *physical_device
* it for the list of shader storage extended formats [1]. Before that,
* this applies to all VkFormats.
*
* [1] : https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#features-shaderStorageImageExtendedFormats
* [1] : https://docs.vulkan.org/spec/latest/chapters/features.html#features-shaderStorageImageExtendedFormats
*/
if ((flags & VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT) ||
(anv_format->flags & ANV_FORMAT_FLAG_STORAGE_FORMAT_EMULATED))

View file

@ -653,7 +653,7 @@ anv_get_image_format_features2(const struct intel_device_info *devinfo,
* it for the list of shader storage extended formats [1]. Before that,
* this applies to all VkFormats.
*
* [1] : https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#features-shaderStorageImageExtendedFormats
* [1] : https://docs.vulkan.org/spec/latest/chapters/features.html#features-shaderStorageImageExtendedFormats
*/
if (flags & VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT)
flags |= VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT;

View file

@ -511,7 +511,7 @@ dzn_physical_device_init_memory(struct dzn_physical_device *pdev)
* (as determined in an implementation-specific manner) ; or
* - the propertyFlags members of Y includes VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD or
* VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD and X does not
* See: https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMemoryProperties.html
* See: https://docs.vulkan.org/refpages/latest/refpages/source/VkPhysicalDeviceMemoryProperties.html
*/
mem->memoryHeapCount = 0;

View file

@ -407,7 +407,7 @@ vk_image_can_be_aliased_to_yuv_plane(const struct vk_image *image)
VkFormat format = image->format;
/* Only the 8-bit, 16-bit, and 32-bit classes listed in
* https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#formats-compatibility-classes
* https://docs.vulkan.org/spec/latest/chapters/formats.html#formats-compatibility-classes
* are compatible with yuv planes. We must exclude other classes with the
* same block size as these.
*/
@ -421,7 +421,7 @@ vk_image_can_be_aliased_to_yuv_plane(const struct vk_image *image)
/* The planes of all the multiplane formats have a block size of 1, 2, or 4.
* See:
* https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#formats-compatible-planes
* https://docs.vulkan.org/spec/latest/chapters/formats.html#formats-compatible-planes
*/
return block_size == 1 || block_size == 2 || block_size == 4;
}

View file

@ -26,7 +26,7 @@ wsi_metal_layer_size(const CAMetalLayer *metal_layer,
* 1. The one implemented.
* 2. Return the special value allowed by the spec to state that we will
* actually give it a value once the swapchain is created
* https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCapabilitiesKHR.html
* https://docs.vulkan.org/refpages/latest/refpages/source/VkSurfaceCapabilitiesKHR.html
*/
CGSize size = metal_layer.bounds.size;
CGFloat scaleFactor = metal_layer.contentsScale;