Add support for Vulkan 1.3. by billhollings · Pull Request #2489 · KhronosGroup/MoltenVK

3 min read Original article ↗

Conversation

@billhollings

  • Advertise Vulkan 1.3 support.
  • Enable mandatory VkPhysicalDeviceVulkanMemoryModelFeatures::vulkanMemoryModel and vulkanMemoryModelDeviceScope
  • Advertise support for VK_KHR_vulkan_memory_model extension.
  • Log a warning if requested API is Vulkan 1.3 and buffer device address is not supported.
  • Support VkPhysicalDeviceVulkan13Features & VkPhysicalDeviceVulkan13Properties.
  • Remove enablement checks for promoted extensions.
  • Promote extension structs.
  • MVK_CONFIG_API_VERSION_TO_ADVERTISE supports shorthand version values.
  • Populate CTS conformance version.
  • Update documentation.

Completes #1930.

leecommamichael, karnkaul, EthanDWalker, JarrettSJohnson, HongyuS, spnda, 556644O, Traace, c01nd01r, artun42, and 8 more reacted with hooray emoji leecommamichael, EthanDWalker, JarrettSJohnson, Traace, and k0pernicus reacted with heart emoji

spnda

cdavis5e

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Finally, we can use DXVK 2.x.

@Gcenx

Finally, we can use DXVK 2.x.

It doesn’t work out-of-box, might still need to fake some extensions or relax DXVK requirements.

- Advertise Vulkan 1.3 support.
- Enable mandatory VkPhysicalDeviceVulkanMemoryModelFeatures::vulkanMemoryModel
  and vulkanMemoryModelDeviceScope
- Advertise support for VK_KHR_vulkan_memory_model extension.
- Log a warning if requested API is Vulkan 1.3 and
  buffer device address is not supported.
- Support VkPhysicalDeviceVulkan13Features & VkPhysicalDeviceVulkan13Properties.
- Remove enablement checks for promoted extensions.
- Promote extension structs and enums.
- MVK_CONFIG_API_VERSION_TO_ADVERTISE supports shorthand version values.
- Populate CTS conformance version.
- Update documentation.

@oscarbg

Finally, we can use DXVK 2.x.

It doesn’t work out-of-box, might still need to fake some extensions or relax DXVK requirements.

@Gcenx you tested a DXVK 2.x master build? just to be sure, as master builds contains since 3 weeks ago a commit (doitsujin/dxvk@5fa2adc) that adds VK_KHR_maintenance5 as a DXVK requirement now..

@Gcenx

@oscarbg I only tired stock DXVK-2.0, I might take a look at possibly getting it working but honestly I’m not sure it’s worth the effort when we’re still missing many required Vulkan extensions for DXVK.

DXMT is in active development, directly targets Metal and already supports WoW64, it won’t take much work for DirectX 11 support.

DXMT-v0.50 can be used with wine-stable-10.1_1, wine-devel-10.6 & wine-staging-10.6 packages I provide via brew.

@spnda

what's the point of DXMT when D3DMetal is a thing?

@Gcenx

@spnda DXMT is open-source, D3DMetal is closed source.

DXMT-v0.50 uses the Unix call interface and supports WoW64, D3DMetal does not use the Unix call interface and only supports 64-bit DirectX 12

D3DMetal implements DirectX 11 reusing DirectX 12 meaning is slower, DirectX 11 games already run faster with DXMT

@MrGcGamer

One thing to consider with DXVK over DXMT is the support for Intel Macs, as Intel support for DXMT is quite a bit off afaik.

@Gcenx

One thing to consider with DXVK over DXMT is the support for Intel Macs, as Intel support for DXMT is quite a bit off afaik.

While that’s true it’s only useful on Intel systems with an AMD GPU but current macOS AMD drivers are rather broken, I’d not managed to run many games with an Intel iGPU.

Intel system can continue to use the current version of DXVK-macOS or DXVK-CX there’s probably little benefit to upgrading to DXVK-2.x when it’ll still need hacks to even be functional.

@MrGcGamer

@Gcenx

but current macOS AMD drivers are rather broken

Out of interest: does that apply for all supported models, or are there models which are particularly bad?
Are there resources / forum / other github issues where one can idea an idea of the current state of things?

@X-m7 X-m7 mentioned this pull request

Apr 29, 2025