Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MoltenVK Enhancement Roadmap #1975

Open
billhollings opened this issue Jul 10, 2023 · 13 comments
Open

MoltenVK Enhancement Roadmap #1975

billhollings opened this issue Jul 10, 2023 · 13 comments

Comments

@billhollings
Copy link
Contributor

billhollings commented Jul 10, 2023

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 @spnda VK_KHR_maintenance4 #2116
2 @billhollings Install Validation Layer testing
3 @billhollings @aitor-lunarg Remaining CTS fails for Vulkan 1.0
4 @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 @gpx1000 VK_EXT_transform_feedback #1943
8 @AntarticCoder Vulkan Acceleration Structures #1956 #1967
9 @billhollings Faster pipeline caching using MTLBinaryArchives #1765
10 Vulkan 1.3 #1930
11 (macOS 14+ only) Integrate Apple's Shader Converter tech (including Geom & Tess shaders) #(4)
@billhollings billhollings changed the title MoltenVK Enhancement Priorities MoltenVK Enhancement Roadmap Jul 10, 2023
@QuantumDeveloper
Copy link

QuantumDeveloper commented Jul 11, 2023

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

@AntarticCoder
Copy link
Contributor

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.

@billhollings
Copy link
Contributor Author

billhollings commented Jul 11, 2023

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.

@oscarbg
Copy link

oscarbg commented Jul 13, 2023

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..

@AndreaCicca
Copy link

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

@Zingam
Copy link

Zingam commented Aug 19, 2023

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

@K0bin
Copy link

K0bin commented Dec 5, 2023

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;

@tgcordell
Copy link

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?

@billhollings
Copy link
Contributor Author

billhollings commented Mar 26, 2024

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.

@cdavis5e
Copy link
Collaborator

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.

@billhollings
Copy link
Contributor Author

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! 😂

@tgcordell
Copy link

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

@billhollings
Copy link
Contributor Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants