nvk: Tracker issue for DXVK support
This will serve as a meta tracker issue for anything required to get DXVK running. This isn't for DXVK bugs, just features.
The list below will provide a missing list of features for three key DXVK versions and various feature levels (I'll also link to issues/MRs if possible)
List of missing (and required) features for DXVK:
DXVK v1.5.1 (the last Vulkan 1.0 release)
FL11_0 (Feature Level 11):
-
tessellationShader (Tessellation shaders) (nouveau/mesa!141 (merged)) -
VK_FORMAT_D32_SFLOAT_S8_UINT (Overwatch 2 uses it) (nouveau/mesa#6 (closed), nouveau/mesa!217 (merged))
FL11_1 (Feature Level 11.1):
-
variableMultisampleRate (Variable multisample rate) (#9665 (closed), !24621 (closed))
DXVK pre-v1.5.5
D3D9 (Feature Level 9?)
-
VK_FORMAT_R4G4B4A4_UNORM_PACK16 (nouveau/mesa!218 (merged))
DXVK v1.10.3 (the last Vulkan 1.1 release)
Any feature level:
-
Vulkan 1.1 advertisement (needs full Vulkan 1.0 feature support first) (#9650 (closed))
DXVK v2.1 (the release with Vulkan 1.3 era requirements and GPL support)
Any feature level:
-
Vulkan 1.3 advertisement (will probably take a while) (#9652 (closed)) (NAK-only) -
vulkanMemoryModel (Vulkan memory model) (#9608 (closed)) (NAK-only) -
timelineSemaphore/VK_KHR_timeline_semaphore (nouveau/mesa!136 (closed), nouveau/mesa!150 (merged)) -
synchronization2/VK_KHR_synchronization2 (#9657 (closed))
FL12_0 (Feature Level 12):
-
shaderResourceResidency (#9664 (closed)) (NAK-only) -
sparseBinding -
sparseResidencyBuffer (NAK-only) -
sparseResidencyAliased (#9654 (closed), !26719 (merged)) (NAK-only) -
sparseResidencyImage2D (#9654 (closed), !26719 (merged)) (NAK-only) -
samplerFilterMinmax (nouveau/mesa#45 (closed), nouveau/mesa!202 (merged)) -
residencyStandard2DBlockShape (#9654 (closed)) (NAK-only) -
residencyAlignedMipSize (#9654 (closed)) (NAK-only) -
residencyNonResidentStrict (NAK-only?)
List of missing (and optional) features for DXVK:
-
VK_KHR_present_id/wait (!26752 (merged))
Bonus stuff (thanks, Vulkan profile):
Required things to advertise Vulkan 1.3 (according to Vulkan profile for DXVK v2.1)
(note: this is inherited from the requirements above)
-
subgroupBroadcastDynamicId (NAK-only?) -
shaderSubgroupExtendedTypes (NAK-only?) -
vulkanMemoryModelDeviceScope (#9608 (closed)) (NAK-only) -
shaderTerminateInvocation (#9615 (closed)) (NAK-only) -
shaderZeroInitializeWorkgroupMemory (#9609 (closed)) -
shaderIntegerDotProduct (!26533 (merged)) -
pipelineCreationCacheControl (#9613 (closed), !25550 (merged)) -
subgroupSizeControl (#9617 (closed)) (NAK-only?) -
computeFullSubgroups (NAK-only?)
Edited by Echo J.