MoltenVK icon indicating copy to clipboard operation
MoltenVK copied to clipboard

MoltenVK Enhancement Roadmap

Open billhollings opened this issue 1 year ago • 13 comments

This list provides a place to consolidate the priorities and status of some of the larger MoltenVK enhancements whose development is either underway, or will be soon. This list will also help to prevent multiple MoltenVK devs unknowingly working independently on significant enhancements.

If you are, or soon plan to be, working on a significant MoltenVK enhancement, please comment below, and we'll add it to the list (not every enhancement needs to go on this list, if you are banging out a small enhancement). If you want to take over one of the un-started enhancements, let us know below and it can be assigned to you.

If you are waiting on a significant enhancement, and want to request that it be added to the list, please request that in the issue for that enhancement. This list is not meant to be a broad wish list, but instead it represents an upcoming priorities list.

Please note that we are tracking Vulkan 1.3 requirements separately in issue #1930. An item from there can be added here when a developer takes it upon themself to plan to work on it, and want's to let us know here.

The list is in order of attack. This list does not include bug fixing work.

In Dev Merged Developer Enhancement Deps Issue# PR#
1 :white_check_mark: @spnda VK_KHR_maintenance4 #2116
2 @billhollings Install Validation Layer testing
3 @billhollings @aitor-lunarg Remaining CTS fails for Vulkan 1.0
4 :white_check_mark: :white_check_mark: @billhollings ~Metal 3 Arg Buffs (enhancing bindless resources)~ #2260
5 VK_EXT_descriptor_buffer VK_EXT_mutable_descriptor_type #(4) #1776 #2158
6 GL_EXT_debug_printf #2252
7 :white_check_mark: @gpx1000 VK_EXT_transform_feedback #1943
8 :white_check_mark: @AntarticCoder Vulkan Acceleration Structures #1956 #1967
9 :white_check_mark: @billhollings Faster pipeline caching using MTLBinaryArchives #1765
10 :white_check_mark: Vulkan 1.3 #1930
11 (macOS 14+ only) Integrate Apple's Shader Converter tech (including Geom & Tess shaders) #(4)

billhollings avatar Jul 10 '23 19:07 billhollings

I think would be nice to include here VK_KHR_maintenance4 extension if that possible

QuantumDeveloper avatar Jul 11 '23 10:07 QuantumDeveloper

If anyone's interested in implementing this, the spec is here. VK_KHR_maintenance4 is also considered core in Vulkan 1.3, so implementing it is almost a no brainer.

AntarticCoder avatar Jul 11 '23 12:07 AntarticCoder

VK_KHR_maintenance4 is also considered core in Vulkan 1.3

Yes. Vulkan 1.3 requirements are being tracked separately in issue #1930. I've clarified that above, along with how this list interacts with that list. See for example, VK_KHR_synchronization2 appears in both lists, because I have plans to work on it above.

billhollings avatar Jul 11 '23 13:07 billhollings

Hi, Seems geo and tf are part of the present crossover 23 beta1 release, which says, “We’re pleased to announce that this release also includes initial support for geometry shaders and transform feedback on macOS”..

I’m pretty curious to see how this geo shader implementation compares to “Apple's Shader Converter tech” both performance wise and compatibility wise once the two ara available on MoltenVK.. at least on MacOS 14+.. Exciting times..

oscarbg avatar Jul 13 '23 17:07 oscarbg

Hi, Seems geo and tf are part of the present crossover 23 beta1 release, which says, “We’re pleased to announce that this release also includes initial support for geometry shaders and transform feedback on macOS”..

I’m pretty curious to see how this geo shader implementation compares to “Apple's Shader Converter tech” both performance wise and compatibility wise once the two ara available on MoltenVK.. at least on MacOS 14+.. Exciting times..

@js6i has a PR (#1815) where he said that "Currently we're focused on preparing the next CrossOver release, there will be updates after it's out."

I don't know what will be the plan for that PR if the project want to use Apple's Shader Converter for Geometry shader

AndreaCicca avatar Jul 30 '23 15:07 AndreaCicca

VK_EXT_shader_object looks like an extension that should be included sooner rather than later. https://www.khronos.org/blog/you-can-use-vulkan-without-pipelines-today

Zingam avatar Aug 19 '23 10:08 Zingam

Metal 3 Arg Buffs (enhancing bindless resources)

It would be very nice if MoltenVK could also properly support "aliasing descriptors" with the reworked binding code.

The shader compiler really hates this pattern right now:

layout(set = 0, binding = 0) uniform sampler2D s0_2d;
layout(set = 0, binding = 0) uniform sampler3D s0_3d;

K0bin avatar Dec 05 '23 23:12 K0bin

I believe Enhancement #3 above (Wide lines and basic support for private APIs) is complete and merged, but the table has not been updated to reflect this. Are there additional updates to the table that can be made to track progress?

tgcordell avatar Mar 24 '24 15:03 tgcordell

I believe Enhancement #3 above (Wide lines and basic support for private APIs) is complete and merged, but the table has not been updated to reflect this. Are there additional updates to the table that can be made to track progress?

Yes, the functionality is merged. It's indicated in the checkbox in the Merged column for that enhancement. I've removed the In Dev checkmark to make it clearer.

billhollings avatar Mar 26 '24 23:03 billhollings

I believe Enhancement #3 above (Wide lines and basic support for private APIs) is complete and merged, but the table has not been updated to reflect this. Are there additional updates to the table that can be made to track progress?

Yes, the functionality is merged. It's indicated in the checkbox in the Merged column for that enhancement.

That's because, after I saw @tgcordell's comment, I went and silently updated it.

cdavis5e avatar Mar 27 '24 00:03 cdavis5e

That's because, after I saw @tgcordell's comment, I went and silently updated it.

Ha! Epic! Thanks. And don't be so silent next time! 😂

billhollings avatar Mar 27 '24 00:03 billhollings

I’m most interested in #6, the Metal 3 Arg Buffers. Is there a PR where I can follow the development of that enchantment?

tgcordell avatar Mar 27 '24 02:03 tgcordell

I’m most interested in #6, the Metal 3 Arg Buffers. Is there a PR where I can follow the development of that enchantment?

Initial work has been done, but there is no active PR yet. We're trying to prioritize it for sometime this summer.

billhollings avatar Mar 27 '24 14:03 billhollings