-
Notifications
You must be signed in to change notification settings - Fork 427
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
Vulkan 1.2 requirements #1567
Comments
VK_KHR_buffer_device_address seems to now be properly supportable with Metal 3: (not directly relevant, but) VK_NV_mesh_shaders could also now be supported as Metal 3 adds support for Mesh shaders: |
Consolidating in discussion #1616. Thanks for noticing the relatively subtle |
Please note that not all extensions that were promoted to core 1.2 are actually required for the implementation to conform to 1.2. A good few of them are actually optional.
Note: There is no
This greatly reduces the amount of extensions still pending. See the list of feature requirements here at section 41.1 of the Vulkan spec: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-requirements, or look at the
|
unrelated, but sadly&interestingly DXVK-Macos project shows on: |
Thanks for researching and highlighting this! We'll make use of this where appropriate. |
Thanks. Good motivation! We're actively working on this! |
@billhollings Any ETA when Vulkan 1.2 will be supported by MoltenVK? The progress sounds great so far! |
Vulkan 1.2 support is one of the main things we are working on. I'm hoping to knock off the remaining extensions above within the next couple of months. |
From what I can see the only requirement is |
I'm going to start working on |
Welp it’s the last version based on master, I’d swapped to using the 1.10.x branch for the base until MoltenVK supports the now required extensions. I did list some of the newly required extensions, I’m sure master now uses even more. |
@Gcenx where is this list of newly required extensions? @billhollings @spnda seeing https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf: so conclusion is Metal can't support VK_KHR_shader_atomic_int64 "fully" right now for all ops, if documentation is correct, but only a subset (Min,Max) which luckily is what a port of the algorithm will need.. probably better if opened as separate issue.. while I'm at it I give a quick lock of atomic Floats(32) and seems luckily all supported Vulkan atomic float variants (OpAtomicFAddEXT, OpAtomicExchange, OpAtomicLoad and OpAtomicStore) are supported on Metal 3.0.. |
@oscarbg this being an incomplete list as I’ve not looked at master recently due to missing required features. And no tear can’t be faked or bypassed or DXVK will crash crash! Trying to make a list of required extensions post DXVK-1.10.1-125
|
@Gcenx VK_KHR_dynamic_rendering is fully supported with MVK. VK_KHR_create_renderpass2 is also already supported. However, |
@spnda the problem is the dynamic extensions are also required, if stoped listing anything else after these considering those are hard requirements then more extensions are required. |
There is a pull request on dxvk doitsujin/dxvk#2826 define in a json the required extensions. If i understand correctly VK_EXT_extended_dynamic_state is only required on master (to be 2.0) not the 1.10.x branch. |
Yes the (lightly incomplete list from me) is what's required for master branch I'd also said this, I have a 1.10.x branch already, however as DXVK master now requires Vulkan 1.2 features it's good to have them listed here. The json isn't very in depth so lightly it won't be too useful. |
Opened in #1692, and I am looking into it. |
Unfortunately, it's not going to be possible to implement any subset of Sigh. So close. 🤦🏻♂️ |
So, with #1724 merged, what's left? Looks to me as if Vulkan 1.2 core has been reached. |
Yeah. I think we're good. I'm actually working on a 1.2 commit now, and when I post it as a PR, we can discuss if it covers everything. |
Taking an inventory, it looks like we're not using the following structures at all. But since the extensions that provide them are already active, perhaps we can investigate and add their functionality if needed after the 1.2 release:
I also want to run a 1.2 build against CTS to see if it has any effect on the tests beyond the results of the equivalent extensions being enabled. |
Implemented by PR #1726. Outstanding question above about unused extension structs has been moved to a separate issue #1727. Closing this now. |
@billhollings congratulations on getting all the Vulkan 1.2 extensions in and released! A quick note, you can format a nice to-do list in GitHub markdown using tickboxes:
The syntax for this is very simple:
Might also be nice for a next tracking issue for Vulkan 1.3! :) |
@EwoutH Thanks for the suggestion. Makes sense. I will be creating a 1.3 task list soon, and we can use checkmarks instead of strike-out text. |
Issue #1930 is now tracking Vulkan 1.3 requirements. |
Appendix D of the Vulkan spec summarizes the extension list below, and adds additional Vulkan 1.2 enhancement requirements.
Associated SPIRV-Cross issue.
The following extensions are optional for Vulkan 1.2, cannot be supported by Metal, and are marked so by disabling the indicated member in
VkPhysicalDeviceVulkan12Features
. When crossed out below, it indicates they have been confirmed as unsupported, and set as such in MoltenVK:VK_KHR_draw_indirect_count
drawIndirectCount
VK_KHR_shader_atomic_int64
shaderBufferInt64Atomics
VK_KHR_vulkan_memory_model
vulkanMemoryModel
memory_order_relaxed
.VK_EXT_sampler_filter_minmax
samplerFilterMinmax
The following extensions are required (or optional) for Vulkan 1.2 and are supported by MoltenVK:
VK_KHR_8bit_storage
VK_KHR_buffer_device_address
VK_KHR_create_renderpass2
VK_KHR_depth_stencil_resolve
VK_KHR_driver_properties
VK_KHR_image_format_list
VK_KHR_imageless_framebuffer
VK_KHR_sampler_mirror_clamp_to_edge
VK_KHR_separate_depth_stencil_layouts
VK_KHR_shader_float_controls
VK_KHR_shader_float16_int8
VK_KHR_shader_subgroup_extended_types
VK_KHR_spirv_1_4
VK_KHR_timeline_semaphore
VK_KHR_uniform_buffer_standard_layout
VK_EXT_descriptor_indexing
VK_EXT_host_query_reset
VK_EXT_scalar_block_layout
VK_EXT_separate_stencil_usage
VK_EXT_shader_viewport_index_layer
SPIR-V version 1.5 (including the(resources in argument buffers)ShaderNonUniform
capability)The text was updated successfully, but these errors were encountered: