[610.43.02 / RTX 5080] vkCreateDevice returns VK_ERROR_INITIALIZATION_FAILED when cooperativeMatrix feature is enabled - vkCreateDevice()

Summary

On NVIDIA GeForce RTX 5080 (Blackwell) with driver 610.43.02, vkCreateDevice returns VK_ERROR_INITIALIZATION_FAILED when VkPhysicalDeviceCooperativeMatrixFeaturesKHR::
cooperativeMatrix is set to VK_TRUE in the pNext chain; even though vkGetPhysicalDeviceFeatures2 reports cooperativeMatrix = true for this device.

This is a violation of the Vulkan specification, which requires that vkCreateDevice
MUST NOT return VK_ERROR_INITIALIZATION_FAILED when the application requests only
features and extensions reported as available by the driver.

Reproduction

  1. Call vkGetPhysicalDeviceFeatures2 on the RTX 5080 with driver 610.43.02.
    Observe: cooperativeMatrix = VK_TRUE is reported.

  2. Enable VkPhysicalDeviceCooperativeMatrixFeaturesKHR::cooperativeMatrix = VK_TRUE
    in the VkDeviceCreateInfo pNext chain and call vkCreateDevice.

Result: VK_ERROR_INITIALIZATION_FAILED
Expected: VK_SUCCESS (per Vulkan spec §vkCreateDevice)

Evidence of self-contradictory capability advertisement

vulkaninfo on this system reports the following for the RTX 5080:

VkPhysicalDeviceCooperativeMatrixFeaturesKHR:
cooperativeMatrix = true ← feature advertised as supported
cooperativeMatrixRobustBufferAccess = false

VkPhysicalDeviceCooperativeMatrixPropertiesKHR:
cooperativeMatrixSupportedStages: COMPUTE_BIT only (1 stage)

Extensions also advertised: VK_NV_cooperative_matrix2, VK_NV_cooperative_vector

This advertisement is internally inconsistent. Blackwell (SM 10.0) is capable of
cooperative matrix operations across multiple shader stages. The driver simultaneously
advertises only a single supported stage and the advanced Blackwell-exclusive
cooperative matrix extensions VK_NV_cooperative_matrix2 and VK_NV_cooperative_vector,
which presuppose a complete cooperative matrix implementation.

For comparison, the AMD RADV driver on the same system (an APU in the same machine)
reports a coherent cooperative matrix capability set:
cooperativeMatrix = true
cooperativeMatrixRobustBufferAccess = true
cooperativeMatrixSupportedStages: 9 stages (full coverage)

Spec reference

Vulkan 1.3 specification, vkCreateDevice:

“VK_ERROR_INITIALIZATION_FAILED: Initialization of an object could not be completed
for implementation-specific reasons.”

The spec implicitly does not permit this error to be returned when the application has requested
only features that were reported as available. The driver is advertising a feature it
cannot honour when enabled.

Impact

This blocks all Vulkan applications that follow the spec-compliant pattern of
enumerating physical device features and enabling all advertised features, including
games running via Proton/Wine using the VKD3D-Proton D3D12-over-Vulkan translation
layer. Affected titles include 007 First Light (Steam AppID 3768760) and potentially
any D3D12 title that triggers VKD3D-Proton’s device creation path.

The failure cannot be worked around at the application level because the spec
guarantees that enabling an advertised feature must succeed. No VKD3D configuration
flag exists to suppress requesting a driver-advertised feature.

System information

GPU: NVIDIA GeForce RTX 5080 (Blackwell)
Driver: 610.43.02
Kernel: Linux 7.0.10-201.fc44.x86_64 (Fedora 44)
Vulkan API: 1.4.341

Vulkan error log extract

The following is produced by VKD3D-Proton when it attempts vkCreateDevice:

warn: vkd3d_supports_minimum_coopmat_caps: Missing sufficient features to expose WMMA.
warn: vkd3d_create_vk_device: Disabled extensions that can cause Vulkan device
creation to fail, retrying.
err: vkd3d_create_vk_device: Failed to create Vulkan device, vr -3.

Note that VKD3D-Proton’s retry mechanism only strips extensions (VK_NVX_binary_import,
VK_NVX_image_view_handle); it does not alter the feature pNext chain, so the retry
also fails identically.

steam-3768760-protonGE10-34.log (501.1 KB)

vulkaninfo.txt (4.9 KB)

This seems to happen with other games too - e.g. “HITMAN World of Assassination”. Same issue.

Affects both the 610.43.02 and 595.80 driver builds.