-
Notifications
You must be signed in to change notification settings - Fork 187
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
List of unimplemented extensions #178
Comments
Would it make sense to also add some 'hidden' extensions (ie |
@msiglreith I am fine with experimental extensions. They would have to live inside the extension itself because vk.rs is generated. I think we should create a new module |
Sounds good! I will try to collect all the necessary information to define the API as I want to play a bit with the |
I've been working on the VK_NV_ray_tracing support now, and likely also VK_EXT_descriptor_indexing |
186: Ray tracing support r=MaikKlein a=gwihlidal This PR adds support for VK_NV_ray_tracing! (and initial support for VK_EXT_descriptor_indexing, but more support coming for that). One piece I'm unsure if you have a more suggested approach is what I added to ext/mod.rs for names (both of those extensions are very commonly used, and also required for ray tracing). Maybe there should be a names.rs or something which can implement a static string function for all names that don't warrant their own extension struct? I have a local example I've been working on that has been testing against this code, as well as support for descriptor indexing. Originally, I was adding an nv_ray_tracing.rs example alongside triangle and texture, but ray tracing requires some specific extensions and also it doesn't need frame bindings, render states, etc. Additionally, this example only works on NV and with a Turing-class GPU, so I'm unsure if it should co-exist with the basic examples? Because of this, I'm going to first start with a fresh example and just get working to show everything needed - we can chat about merging it in after if desired. These changes + my upcoming ones should take care of both VK_NV_ray_tracing and VK_EXT_descriptor_indexing from #178 Co-authored-by: Graham Wihlidal <graham@wihlidal.ca>
184: Experimental AMD extensions r=MaikKlein a=msiglreith Addresses #178 (comment) Not fully supports all parts of the APIs, just trying to get some general feedback if this meets the expected structuring. Co-authored-by: msiglreith <m.siglreith@gmail.com>
@MaikKlein There's a useful new extension I'd love to see: VK_KHR_timeline_semaphore |
(I know you know about this already, just posting for the record). For MoltenVK use on Mac/iOS, the following extension is quite important: It's unofficial but rather essential since it allows querying for some quirks that are not exposed through the Vulkan API features, such as the inability to combine layered rendering with MSAA. |
Khronos released VK_KHR_synchronization2 extension recently to simplify the interface and improve usability of these API. |
|
Great to hear you are already on it. |
Theres already support for |
#582 for |
Thanks, this will be really useful. |
I'll make a release with all these soon, when the Vulkan 1.3 addition is in. Just needs some minor trivial review (the new function wrappers were already approved as extensions, I merely copy-pasted them). |
I would be very interested in |
@coffeenotfound Fortunately |
Hello! If it is just a matter of writing by hand functions in the Swapchain structure, I could do it and PR that. I'm just not sure if there's anything related to the autogen to change as well. |
@QuartzIsCheap Thanks for bringing this to our attention: these extensions are now available in #629. I'll also see about providing a wrapper for |
VK_KHR_external_memory_capabilities is missing. |
VK_EXT_acquire_drm_display is missing. |
VK_EXT_extended_dynamic_state3 would be nice to have! |
@wrightwriter Definitely EDIT: Whoops! It was only |
Ohhh okay. |
Note that the main application of that extension is for porting legacy code. Projects that aren't structured around legacy GL/DX patterns don't have the problems it solves, as discussed in the article. People developing on Rust are unlikely to be porting legacy code. |
Well, I'm making a creative coding API and this makes my life easier :) |
|
@wrightwriter it's right here? Lines 14690 to 14693 in 29b935b
|
oh thanks, i thought the names are under extensions::***::Extension::name() |
|
@wolfiestyle added in #726, please test! |
|
@phoekz Nice! The high-level wrapper is written manually, but was very easy this time around since the extension mainly enables existing Note that this copy-pasting is not something I'd like to keep doing, so I hope we can come up with some smarter wrapper that encapsulates a set of functions that may be enabled by multiple extensions, instead of duplicating them. |
@wolfiestyle @phoekz both |
Nice, that was fast :)! Looking forward to the 0.37 release. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment was marked as off-topic.
This comment was marked as off-topic.
Looks like |
VK_KHR_push_descriptor
VK_EXT_descriptor_indexing
(does not have any functions)VK_KHR_timeline_semaphore
VK_AMD_gpa_interface
VK_AMD_wave_limits
VK_KHR_synchronization2
(Add extension wrapper for VK_KHR_synchronization2 #403)VK_KHR_maintenance4
(extensions: Add VK_KHR_maintenance4 #489)VK_KHR_dynamic_rendering
(extensions/khr: Add VK_KHR_dynamic_rendering wrapper #488)VK_KHR_get_surface_capabilities2
(extensions: Add VK_KHR_get_surface_capabilities2 #530)VK_EXT_private_data
(extensions/ext: Add VK_EXT_private_data #570)VK_KHR_copy_commands2
(extensions/khr: Add VK_KHR_copy_commands2 #571)VK_EXT_extended_dynamic_state2
(extensions/ext: Add VK_EXT_extended_dynamic_state2 #572)VK_KHR_external_memory_win32
(extensions/khr: Add VK_KHR_external_memory_win32 #579)VK_KHR_external_semaphore_win32
(extensions/khr: Add VK_KHR_external_semaphore_win32 #581)VK_KHR_external_fence_win32
(extensions/khr: Add VK_KHR_external_fence_win32 #582)VK_EXT_headless_surface
(extensions/ext: Add VK_EXT_headless_surface instance extension #589)VK_EXT_image_drm_format_modifier
(extensions/ext: Add VK_EXT_image_drm_format_modifier #603)VK_EXT_sample_locations
(extensions/ext: Add VK_EXT_sample_locations #616)VK_NV_coverage_reduction_mode
(extensions/nv: Add VK_NV_coverage_reduction_mode #617)VK_KHR_ray_tracing_maintenance1
(extensions/khr: Add VK_KHR_ray_tracing_maintenance1 device extension #620)VK_EXT_image_compression_control
(extensions/ext: Add VK_EXT_image_compression_control device extension #621)VK_EXT_pipeline_properties
(extensions/ext: Add VK_EXT_pipeline_properties device extension #622)VK_KHR_swapchain
for Vulkan 1.1 (extensions/khr: Implement additionalSwapchain
functions since Vulkan 1.1 #629)VK_KHR_device_group_creation
(extensions/khr: Add VK_KHR_device_group_creation #630)VK_KHR_device_group
(extensions/khr: Add VK_KHR_device_group #631)VK_EXT_acquire_drm_display
(extensions/ext: Add VK_EXT_acquire_drm_display #668)VK_EXT_extended_dynamic_state3
(extensions/ext: Add VK_EXT_extended_dynamic_state3 #671)VK_EXT_graphics_pipeline_library
VK_EXT_descriptor_buffer
(extensions/ext: Add VK_EXT_descriptor_buffer #679)VK_KHR_performance_query
(extensions/khr: Add VK_KHR_performance_query #726)VK_EXT_shader_object
(extensions/ext: Add VK_EXT_shader_object device extension #732)VK_GOOGLE_display_timing
(extensions/google: Add VK_GOOGLE_display_timing #765)VK_ANDROID_external_memory_android_hardware_buffer
(extensions/android: Add VK_ANDROID_external_memory_android_hardware_buffer #769)VK_AMD_buffer_marker
(extensions/amd: Add VK_AMD_buffer_marker #772)VK_AMD_shader_info
(extensions/amd: Add VK_AMD_shader_info #773)VK_AMDX_shader_enqueue
(extensions/amdx: Add VK_AMDX_shader_enqueue #776)VK_EXT_host_image_copy
(extensions/ext: Add VK_EXT_host_image_copy #779)VK_KHR_maintenance5
(extensions/khr: Add VK_KHR_maintenance5 #780)VK_NV_device_generated_commands_compute
(extensions/nv: Add VK_NV_device_generated_commands_compute #781)VK_KHR_cooperative_matrix
(extensions/khr: Add VK_KHR_cooperative_matrix #782)VK_KHR_sampler_ycbcr_conversion
(extensions/khr: Add VK_KHR_sampler_ycbcr_conversion #785)VK_NV_low_latency2
(extensions/nv: Add VK_NV_low_latency2 extension #802)VK_EXT_hdr_metadata
(extensions/ext: Add VK_EXT_hdr_metadata extension #804)VK_NV_cuda_kernel_launch
(extensions/nv: Add VK_NV_cuda_kernel_launch extension #805)VK_NV_memory_decompression
(extensions/nv: Add VK_NV_memory_decompression #761)VK_NV_copy_memory_indirect
(extensions/nv: Add VK_NV_copy_memory_indirect extension #892)VK_KHR_dynamic_rendering_local_read
(extensions/khr: Add VK_KHR_dynamic_rendering_local_read extension #888)VK_KHR_line_rasterization
(extensions/khr: Add VK_KHR_line_rasterization extension #889)VK_KHR_calibrated_timestamps
(extensions/khr: Add VK_KHR_calibrated_timestamps #890)VK_KHR_maintenance6
(+VK_KHR_push_descriptor
+VK_EXT_descriptor_buffer
) (extensions/khr: Add VK_KHR_maintenance6 #891)VK_EXT_metal_objects
(extensions/ext: Add VK_EXT_metal_objects extension #942)VK_AMD_anti_lag
(extensions/amd: Add VK_AMD_anti_lag extension #943)VK_KHR_pipeline_binary
(extensions/khr: Add VK_KHR_pipeline_binary extension #944)If an extensions that you need is not exposed in
ash
leave a comment, and I will add it to the list.If you would like to implement some extensions but you don't how, have a look at the currently exposed extensions. Otherwise don't hesitate to ask, help is always appreciated.
The text was updated successfully, but these errors were encountered: