/* * Copyright (c) 2018-2021, NVIDIA CORPORATION. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * SPDX-FileCopyrightText: Copyright (c) 2018-2021 NVIDIA CORPORATION * SPDX-License-Identifier: Apache-2.0 */ #pragma once #include /** @DOC_START # Function load_VK_EXTENSIONS > load_VK_EXTENSIONS : Vulkan Extension Loader The extensions_vk files takes care of loading and providing the symbols of Vulkan C Api extensions. It is generated by `extensions_vk.py` and generates all extensions found in vk.xml. See script for details. . The framework triggers this implicitly in the `nvvk::Context` class, immediately after creating the device. ```cpp // loads all known extensions load_VK_EXTENSIONS(instance, vkGetInstanceProcAddr, device, vkGetDeviceProcAddr); ``` @DOC_END */ /* Load all avaiable extensions */ void load_VK_EXTENSIONS(VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device, PFN_vkGetDeviceProcAddr getDeviceProcAddr); /* NVVK_GENERATE_DEFINE */ #if defined(VK_AMDX_shader_enqueue) #define NVVK_HAS_VK_AMDX_shader_enqueue #endif /* VK_AMDX_shader_enqueue */ #if defined(VK_AMD_buffer_marker) #define NVVK_HAS_VK_AMD_buffer_marker #endif /* VK_AMD_buffer_marker */ #if defined(VK_AMD_display_native_hdr) #define NVVK_HAS_VK_AMD_display_native_hdr #endif /* VK_AMD_display_native_hdr */ #if defined(VK_AMD_draw_indirect_count) #define NVVK_HAS_VK_AMD_draw_indirect_count #endif /* VK_AMD_draw_indirect_count */ #if defined(VK_AMD_shader_info) #define NVVK_HAS_VK_AMD_shader_info #endif /* VK_AMD_shader_info */ #if defined(VK_ANDROID_external_memory_android_hardware_buffer) #define NVVK_HAS_VK_ANDROID_external_memory_android_hardware_buffer #endif /* VK_ANDROID_external_memory_android_hardware_buffer */ #if defined(VK_EXT_acquire_drm_display) #define NVVK_HAS_VK_EXT_acquire_drm_display #endif /* VK_EXT_acquire_drm_display */ #if defined(VK_EXT_acquire_xlib_display) #define NVVK_HAS_VK_EXT_acquire_xlib_display #endif /* VK_EXT_acquire_xlib_display */ #if defined(VK_EXT_attachment_feedback_loop_dynamic_state) #define NVVK_HAS_VK_EXT_attachment_feedback_loop_dynamic_state #endif /* VK_EXT_attachment_feedback_loop_dynamic_state */ #if defined(VK_EXT_buffer_device_address) #define NVVK_HAS_VK_EXT_buffer_device_address #endif /* VK_EXT_buffer_device_address */ #if defined(VK_EXT_calibrated_timestamps) #define NVVK_HAS_VK_EXT_calibrated_timestamps #endif /* VK_EXT_calibrated_timestamps */ #if defined(VK_EXT_color_write_enable) #define NVVK_HAS_VK_EXT_color_write_enable #endif /* VK_EXT_color_write_enable */ #if defined(VK_EXT_conditional_rendering) #define NVVK_HAS_VK_EXT_conditional_rendering #endif /* VK_EXT_conditional_rendering */ #if defined(VK_EXT_debug_marker) #define NVVK_HAS_VK_EXT_debug_marker #endif /* VK_EXT_debug_marker */ #if defined(VK_EXT_debug_report) #define NVVK_HAS_VK_EXT_debug_report #endif /* VK_EXT_debug_report */ #if defined(VK_EXT_debug_utils) #define NVVK_HAS_VK_EXT_debug_utils #endif /* VK_EXT_debug_utils */ #if defined(VK_EXT_depth_bias_control) #define NVVK_HAS_VK_EXT_depth_bias_control #endif /* VK_EXT_depth_bias_control */ #if defined(VK_EXT_descriptor_buffer) #define NVVK_HAS_VK_EXT_descriptor_buffer #endif /* VK_EXT_descriptor_buffer */ #if defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) #define NVVK_HAS_VK_EXT_descriptor_buffer #endif /* VK_EXT_descriptor_buffer && (VK_KHR_acceleration_structure || VK_NV_ray_tracing) */ #if defined(VK_EXT_device_fault) #define NVVK_HAS_VK_EXT_device_fault #endif /* VK_EXT_device_fault */ #if defined(VK_EXT_direct_mode_display) #define NVVK_HAS_VK_EXT_direct_mode_display #endif /* VK_EXT_direct_mode_display */ #if defined(VK_EXT_directfb_surface) #define NVVK_HAS_VK_EXT_directfb_surface #endif /* VK_EXT_directfb_surface */ #if defined(VK_EXT_discard_rectangles) #define NVVK_HAS_VK_EXT_discard_rectangles #endif /* VK_EXT_discard_rectangles */ #if defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 #define NVVK_HAS_VK_EXT_discard_rectangles #endif /* VK_EXT_discard_rectangles && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 */ #if defined(VK_EXT_display_control) #define NVVK_HAS_VK_EXT_display_control #endif /* VK_EXT_display_control */ #if defined(VK_EXT_display_surface_counter) #define NVVK_HAS_VK_EXT_display_surface_counter #endif /* VK_EXT_display_surface_counter */ #if defined(VK_EXT_extended_dynamic_state) #define NVVK_HAS_VK_EXT_extended_dynamic_state #endif /* VK_EXT_extended_dynamic_state */ #if defined(VK_EXT_extended_dynamic_state2) #define NVVK_HAS_VK_EXT_extended_dynamic_state2 #endif /* VK_EXT_extended_dynamic_state2 */ #if defined(VK_EXT_extended_dynamic_state3) #define NVVK_HAS_VK_EXT_extended_dynamic_state3 #endif /* VK_EXT_extended_dynamic_state3 */ #if defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_clip_space_w_scaling) #define NVVK_HAS_VK_EXT_extended_dynamic_state3 #endif /* VK_EXT_extended_dynamic_state3 && VK_NV_clip_space_w_scaling */ #if defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle) #define NVVK_HAS_VK_EXT_extended_dynamic_state3 #endif /* VK_EXT_extended_dynamic_state3 && VK_NV_viewport_swizzle */ #if defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_fragment_coverage_to_color) #define NVVK_HAS_VK_EXT_extended_dynamic_state3 #endif /* VK_EXT_extended_dynamic_state3 && VK_NV_fragment_coverage_to_color */ #if defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples) #define NVVK_HAS_VK_EXT_extended_dynamic_state3 #endif /* VK_EXT_extended_dynamic_state3 && VK_NV_framebuffer_mixed_samples */ #if defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image) #define NVVK_HAS_VK_EXT_extended_dynamic_state3 #endif /* VK_EXT_extended_dynamic_state3 && VK_NV_shading_rate_image */ #if defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test) #define NVVK_HAS_VK_EXT_extended_dynamic_state3 #endif /* VK_EXT_extended_dynamic_state3 && VK_NV_representative_fragment_test */ #if defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode) #define NVVK_HAS_VK_EXT_extended_dynamic_state3 #endif /* VK_EXT_extended_dynamic_state3 && VK_NV_coverage_reduction_mode */ #if defined(VK_EXT_external_memory_host) #define NVVK_HAS_VK_EXT_external_memory_host #endif /* VK_EXT_external_memory_host */ #if defined(VK_EXT_full_screen_exclusive) #define NVVK_HAS_VK_EXT_full_screen_exclusive #endif /* VK_EXT_full_screen_exclusive */ #if defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group) #define NVVK_HAS_VK_EXT_full_screen_exclusive #endif /* VK_EXT_full_screen_exclusive && VK_KHR_device_group */ #if defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1) #define NVVK_HAS_VK_EXT_full_screen_exclusive #endif /* VK_EXT_full_screen_exclusive && VK_VERSION_1_1 */ #if defined(VK_EXT_hdr_metadata) #define NVVK_HAS_VK_EXT_hdr_metadata #endif /* VK_EXT_hdr_metadata */ #if defined(VK_EXT_headless_surface) #define NVVK_HAS_VK_EXT_headless_surface #endif /* VK_EXT_headless_surface */ #if defined(VK_EXT_host_image_copy) #define NVVK_HAS_VK_EXT_host_image_copy #endif /* VK_EXT_host_image_copy */ #if defined(VK_EXT_host_query_reset) #define NVVK_HAS_VK_EXT_host_query_reset #endif /* VK_EXT_host_query_reset */ #if defined(VK_EXT_image_compression_control) #define NVVK_HAS_VK_EXT_image_compression_control #endif /* VK_EXT_image_compression_control */ #if defined(VK_EXT_image_drm_format_modifier) #define NVVK_HAS_VK_EXT_image_drm_format_modifier #endif /* VK_EXT_image_drm_format_modifier */ #if defined(VK_EXT_line_rasterization) #define NVVK_HAS_VK_EXT_line_rasterization #endif /* VK_EXT_line_rasterization */ #if defined(VK_EXT_mesh_shader) #define NVVK_HAS_VK_EXT_mesh_shader #endif /* VK_EXT_mesh_shader */ #if defined(VK_EXT_metal_objects) #define NVVK_HAS_VK_EXT_metal_objects #endif /* VK_EXT_metal_objects */ #if defined(VK_EXT_metal_surface) #define NVVK_HAS_VK_EXT_metal_surface #endif /* VK_EXT_metal_surface */ #if defined(VK_EXT_multi_draw) #define NVVK_HAS_VK_EXT_multi_draw #endif /* VK_EXT_multi_draw */ #if defined(VK_EXT_opacity_micromap) #define NVVK_HAS_VK_EXT_opacity_micromap #endif /* VK_EXT_opacity_micromap */ #if defined(VK_EXT_pageable_device_local_memory) #define NVVK_HAS_VK_EXT_pageable_device_local_memory #endif /* VK_EXT_pageable_device_local_memory */ #if defined(VK_EXT_pipeline_properties) #define NVVK_HAS_VK_EXT_pipeline_properties #endif /* VK_EXT_pipeline_properties */ #if defined(VK_EXT_private_data) #define NVVK_HAS_VK_EXT_private_data #endif /* VK_EXT_private_data */ #if defined(VK_EXT_sample_locations) #define NVVK_HAS_VK_EXT_sample_locations #endif /* VK_EXT_sample_locations */ #if defined(VK_EXT_shader_module_identifier) #define NVVK_HAS_VK_EXT_shader_module_identifier #endif /* VK_EXT_shader_module_identifier */ #if defined(VK_EXT_shader_object) #define NVVK_HAS_VK_EXT_shader_object #endif /* VK_EXT_shader_object */ #if defined(VK_EXT_shader_object) && defined(VK_NV_clip_space_w_scaling) #define NVVK_HAS_VK_EXT_shader_object #endif /* VK_EXT_shader_object && VK_NV_clip_space_w_scaling */ #if defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle) #define NVVK_HAS_VK_EXT_shader_object #endif /* VK_EXT_shader_object && VK_NV_viewport_swizzle */ #if defined(VK_EXT_shader_object) && defined(VK_NV_fragment_coverage_to_color) #define NVVK_HAS_VK_EXT_shader_object #endif /* VK_EXT_shader_object && VK_NV_fragment_coverage_to_color */ #if defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples) #define NVVK_HAS_VK_EXT_shader_object #endif /* VK_EXT_shader_object && VK_NV_framebuffer_mixed_samples */ #if defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image) #define NVVK_HAS_VK_EXT_shader_object #endif /* VK_EXT_shader_object && VK_NV_shading_rate_image */ #if defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test) #define NVVK_HAS_VK_EXT_shader_object #endif /* VK_EXT_shader_object && VK_NV_representative_fragment_test */ #if defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode) #define NVVK_HAS_VK_EXT_shader_object #endif /* VK_EXT_shader_object && VK_NV_coverage_reduction_mode */ #if defined(VK_EXT_swapchain_maintenance1) #define NVVK_HAS_VK_EXT_swapchain_maintenance1 #endif /* VK_EXT_swapchain_maintenance1 */ #if defined(VK_EXT_tooling_info) #define NVVK_HAS_VK_EXT_tooling_info #endif /* VK_EXT_tooling_info */ #if defined(VK_EXT_transform_feedback) #define NVVK_HAS_VK_EXT_transform_feedback #endif /* VK_EXT_transform_feedback */ #if defined(VK_EXT_validation_cache) #define NVVK_HAS_VK_EXT_validation_cache #endif /* VK_EXT_validation_cache */ #if defined(VK_EXT_vertex_input_dynamic_state) #define NVVK_HAS_VK_EXT_vertex_input_dynamic_state #endif /* VK_EXT_vertex_input_dynamic_state */ #if defined(VK_FUCHSIA_buffer_collection) #define NVVK_HAS_VK_FUCHSIA_buffer_collection #endif /* VK_FUCHSIA_buffer_collection */ #if defined(VK_FUCHSIA_external_memory) #define NVVK_HAS_VK_FUCHSIA_external_memory #endif /* VK_FUCHSIA_external_memory */ #if defined(VK_FUCHSIA_external_semaphore) #define NVVK_HAS_VK_FUCHSIA_external_semaphore #endif /* VK_FUCHSIA_external_semaphore */ #if defined(VK_FUCHSIA_imagepipe_surface) #define NVVK_HAS_VK_FUCHSIA_imagepipe_surface #endif /* VK_FUCHSIA_imagepipe_surface */ #if defined(VK_GGP_stream_descriptor_surface) #define NVVK_HAS_VK_GGP_stream_descriptor_surface #endif /* VK_GGP_stream_descriptor_surface */ #if defined(VK_GOOGLE_display_timing) #define NVVK_HAS_VK_GOOGLE_display_timing #endif /* VK_GOOGLE_display_timing */ #if defined(VK_HUAWEI_cluster_culling_shader) #define NVVK_HAS_VK_HUAWEI_cluster_culling_shader #endif /* VK_HUAWEI_cluster_culling_shader */ #if defined(VK_HUAWEI_invocation_mask) #define NVVK_HAS_VK_HUAWEI_invocation_mask #endif /* VK_HUAWEI_invocation_mask */ #if defined(VK_HUAWEI_subpass_shading) #define NVVK_HAS_VK_HUAWEI_subpass_shading #endif /* VK_HUAWEI_subpass_shading */ #if defined(VK_INTEL_performance_query) #define NVVK_HAS_VK_INTEL_performance_query #endif /* VK_INTEL_performance_query */ #if defined(VK_KHR_acceleration_structure) #define NVVK_HAS_VK_KHR_acceleration_structure #endif /* VK_KHR_acceleration_structure */ #if defined(VK_KHR_android_surface) #define NVVK_HAS_VK_KHR_android_surface #endif /* VK_KHR_android_surface */ #if defined(VK_KHR_bind_memory2) #define NVVK_HAS_VK_KHR_bind_memory2 #endif /* VK_KHR_bind_memory2 */ #if defined(VK_KHR_buffer_device_address) #define NVVK_HAS_VK_KHR_buffer_device_address #endif /* VK_KHR_buffer_device_address */ #if defined(VK_KHR_calibrated_timestamps) #define NVVK_HAS_VK_KHR_calibrated_timestamps #endif /* VK_KHR_calibrated_timestamps */ #if defined(VK_KHR_cooperative_matrix) #define NVVK_HAS_VK_KHR_cooperative_matrix #endif /* VK_KHR_cooperative_matrix */ #if defined(VK_KHR_copy_commands2) #define NVVK_HAS_VK_KHR_copy_commands2 #endif /* VK_KHR_copy_commands2 */ #if defined(VK_KHR_create_renderpass2) #define NVVK_HAS_VK_KHR_create_renderpass2 #endif /* VK_KHR_create_renderpass2 */ #if defined(VK_KHR_deferred_host_operations) #define NVVK_HAS_VK_KHR_deferred_host_operations #endif /* VK_KHR_deferred_host_operations */ #if defined(VK_KHR_descriptor_update_template) #define NVVK_HAS_VK_KHR_descriptor_update_template #endif /* VK_KHR_descriptor_update_template */ #if defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor) #define NVVK_HAS_VK_KHR_descriptor_update_template #endif /* VK_KHR_descriptor_update_template && VK_KHR_push_descriptor */ #if defined(VK_KHR_device_group) #define NVVK_HAS_VK_KHR_device_group #endif /* VK_KHR_device_group */ #if defined(VK_KHR_device_group) && defined(VK_KHR_surface) #define NVVK_HAS_VK_KHR_device_group #endif /* VK_KHR_device_group && VK_KHR_surface */ #if defined(VK_KHR_device_group) && defined(VK_KHR_swapchain) #define NVVK_HAS_VK_KHR_device_group #endif /* VK_KHR_device_group && VK_KHR_swapchain */ #if defined(VK_KHR_device_group_creation) #define NVVK_HAS_VK_KHR_device_group_creation #endif /* VK_KHR_device_group_creation */ #if defined(VK_KHR_draw_indirect_count) #define NVVK_HAS_VK_KHR_draw_indirect_count #endif /* VK_KHR_draw_indirect_count */ #if defined(VK_KHR_dynamic_rendering) #define NVVK_HAS_VK_KHR_dynamic_rendering #endif /* VK_KHR_dynamic_rendering */ #if defined(VK_KHR_external_fence_capabilities) #define NVVK_HAS_VK_KHR_external_fence_capabilities #endif /* VK_KHR_external_fence_capabilities */ #if defined(VK_KHR_external_fence_fd) #define NVVK_HAS_VK_KHR_external_fence_fd #endif /* VK_KHR_external_fence_fd */ #if defined(VK_KHR_external_fence_win32) #define NVVK_HAS_VK_KHR_external_fence_win32 #endif /* VK_KHR_external_fence_win32 */ #if defined(VK_KHR_external_memory_capabilities) #define NVVK_HAS_VK_KHR_external_memory_capabilities #endif /* VK_KHR_external_memory_capabilities */ #if defined(VK_KHR_external_memory_fd) #define NVVK_HAS_VK_KHR_external_memory_fd #endif /* VK_KHR_external_memory_fd */ #if defined(VK_KHR_external_memory_win32) #define NVVK_HAS_VK_KHR_external_memory_win32 #endif /* VK_KHR_external_memory_win32 */ #if defined(VK_KHR_external_semaphore_capabilities) #define NVVK_HAS_VK_KHR_external_semaphore_capabilities #endif /* VK_KHR_external_semaphore_capabilities */ #if defined(VK_KHR_external_semaphore_fd) #define NVVK_HAS_VK_KHR_external_semaphore_fd #endif /* VK_KHR_external_semaphore_fd */ #if defined(VK_KHR_external_semaphore_win32) #define NVVK_HAS_VK_KHR_external_semaphore_win32 #endif /* VK_KHR_external_semaphore_win32 */ #if defined(VK_KHR_fragment_shading_rate) #define NVVK_HAS_VK_KHR_fragment_shading_rate #endif /* VK_KHR_fragment_shading_rate */ #if defined(VK_KHR_get_memory_requirements2) #define NVVK_HAS_VK_KHR_get_memory_requirements2 #endif /* VK_KHR_get_memory_requirements2 */ #if defined(VK_KHR_get_physical_device_properties2) #define NVVK_HAS_VK_KHR_get_physical_device_properties2 #endif /* VK_KHR_get_physical_device_properties2 */ #if defined(VK_KHR_maintenance1) #define NVVK_HAS_VK_KHR_maintenance1 #endif /* VK_KHR_maintenance1 */ #if defined(VK_KHR_maintenance3) #define NVVK_HAS_VK_KHR_maintenance3 #endif /* VK_KHR_maintenance3 */ #if defined(VK_KHR_maintenance4) #define NVVK_HAS_VK_KHR_maintenance4 #endif /* VK_KHR_maintenance4 */ #if defined(VK_KHR_maintenance5) #define NVVK_HAS_VK_KHR_maintenance5 #endif /* VK_KHR_maintenance5 */ #if defined(VK_KHR_maintenance6) #define NVVK_HAS_VK_KHR_maintenance6 #endif /* VK_KHR_maintenance6 */ #if defined(VK_KHR_maintenance6) && defined(VK_KHR_push_descriptor) #define NVVK_HAS_VK_KHR_maintenance6 #endif /* VK_KHR_maintenance6 && VK_KHR_push_descriptor */ #if defined(VK_KHR_maintenance6) && defined(VK_EXT_descriptor_buffer) #define NVVK_HAS_VK_KHR_maintenance6 #endif /* VK_KHR_maintenance6 && VK_EXT_descriptor_buffer */ #if defined(VK_KHR_map_memory2) #define NVVK_HAS_VK_KHR_map_memory2 #endif /* VK_KHR_map_memory2 */ #if defined(VK_KHR_performance_query) #define NVVK_HAS_VK_KHR_performance_query #endif /* VK_KHR_performance_query */ #if defined(VK_KHR_pipeline_executable_properties) #define NVVK_HAS_VK_KHR_pipeline_executable_properties #endif /* VK_KHR_pipeline_executable_properties */ #if defined(VK_KHR_present_wait) #define NVVK_HAS_VK_KHR_present_wait #endif /* VK_KHR_present_wait */ #if defined(VK_KHR_push_descriptor) #define NVVK_HAS_VK_KHR_push_descriptor #endif /* VK_KHR_push_descriptor */ #if defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1) #define NVVK_HAS_VK_KHR_push_descriptor #endif /* VK_KHR_push_descriptor && VK_VERSION_1_1 */ #if defined(VK_KHR_push_descriptor) && defined(VK_KHR_descriptor_update_template) #define NVVK_HAS_VK_KHR_push_descriptor #endif /* VK_KHR_push_descriptor && VK_KHR_descriptor_update_template */ #if defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) #define NVVK_HAS_VK_KHR_ray_tracing_maintenance1 #endif /* VK_KHR_ray_tracing_maintenance1 && VK_KHR_ray_tracing_pipeline */ #if defined(VK_KHR_ray_tracing_pipeline) #define NVVK_HAS_VK_KHR_ray_tracing_pipeline #endif /* VK_KHR_ray_tracing_pipeline */ #if defined(VK_KHR_sampler_ycbcr_conversion) #define NVVK_HAS_VK_KHR_sampler_ycbcr_conversion #endif /* VK_KHR_sampler_ycbcr_conversion */ #if defined(VK_KHR_shared_presentable_image) #define NVVK_HAS_VK_KHR_shared_presentable_image #endif /* VK_KHR_shared_presentable_image */ #if defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1) #define NVVK_HAS_VK_KHR_swapchain #endif /* VK_KHR_swapchain && VK_VERSION_1_1 */ #if defined(VK_KHR_synchronization2) #define NVVK_HAS_VK_KHR_synchronization2 #endif /* VK_KHR_synchronization2 */ #if defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) #define NVVK_HAS_VK_KHR_synchronization2 #endif /* VK_KHR_synchronization2 && VK_AMD_buffer_marker */ #if defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) #define NVVK_HAS_VK_KHR_synchronization2 #endif /* VK_KHR_synchronization2 && VK_NV_device_diagnostic_checkpoints */ #if defined(VK_KHR_timeline_semaphore) #define NVVK_HAS_VK_KHR_timeline_semaphore #endif /* VK_KHR_timeline_semaphore */ #if defined(VK_KHR_video_decode_queue) #define NVVK_HAS_VK_KHR_video_decode_queue #endif /* VK_KHR_video_decode_queue */ #if defined(VK_KHR_video_encode_queue) #define NVVK_HAS_VK_KHR_video_encode_queue #endif /* VK_KHR_video_encode_queue */ #if defined(VK_KHR_video_queue) #define NVVK_HAS_VK_KHR_video_queue #endif /* VK_KHR_video_queue */ #if defined(VK_MVK_ios_surface) #define NVVK_HAS_VK_MVK_ios_surface #endif /* VK_MVK_ios_surface */ #if defined(VK_MVK_macos_surface) #define NVVK_HAS_VK_MVK_macos_surface #endif /* VK_MVK_macos_surface */ #if defined(VK_NN_vi_surface) #define NVVK_HAS_VK_NN_vi_surface #endif /* VK_NN_vi_surface */ #if defined(VK_NVX_binary_import) #define NVVK_HAS_VK_NVX_binary_import #endif /* VK_NVX_binary_import */ #if defined(VK_NVX_image_view_handle) #define NVVK_HAS_VK_NVX_image_view_handle #endif /* VK_NVX_image_view_handle */ #if defined(VK_NV_acquire_winrt_display) #define NVVK_HAS_VK_NV_acquire_winrt_display #endif /* VK_NV_acquire_winrt_display */ #if defined(VK_NV_clip_space_w_scaling) #define NVVK_HAS_VK_NV_clip_space_w_scaling #endif /* VK_NV_clip_space_w_scaling */ #if defined(VK_NV_cooperative_matrix) #define NVVK_HAS_VK_NV_cooperative_matrix #endif /* VK_NV_cooperative_matrix */ #if defined(VK_NV_copy_memory_indirect) #define NVVK_HAS_VK_NV_copy_memory_indirect #endif /* VK_NV_copy_memory_indirect */ #if defined(VK_NV_coverage_reduction_mode) #define NVVK_HAS_VK_NV_coverage_reduction_mode #endif /* VK_NV_coverage_reduction_mode */ #if defined(VK_NV_cuda_kernel_launch) #define NVVK_HAS_VK_NV_cuda_kernel_launch #endif /* VK_NV_cuda_kernel_launch */ #if defined(VK_NV_device_diagnostic_checkpoints) #define NVVK_HAS_VK_NV_device_diagnostic_checkpoints #endif /* VK_NV_device_diagnostic_checkpoints */ #if defined(VK_NV_device_generated_commands) #define NVVK_HAS_VK_NV_device_generated_commands #endif /* VK_NV_device_generated_commands */ #if defined(VK_NV_device_generated_commands_compute) #define NVVK_HAS_VK_NV_device_generated_commands_compute #endif /* VK_NV_device_generated_commands_compute */ #if defined(VK_NV_external_memory_capabilities) #define NVVK_HAS_VK_NV_external_memory_capabilities #endif /* VK_NV_external_memory_capabilities */ #if defined(VK_NV_external_memory_rdma) #define NVVK_HAS_VK_NV_external_memory_rdma #endif /* VK_NV_external_memory_rdma */ #if defined(VK_NV_external_memory_win32) #define NVVK_HAS_VK_NV_external_memory_win32 #endif /* VK_NV_external_memory_win32 */ #if defined(VK_NV_fragment_shading_rate_enums) #define NVVK_HAS_VK_NV_fragment_shading_rate_enums #endif /* VK_NV_fragment_shading_rate_enums */ #if defined(VK_NV_low_latency2) #define NVVK_HAS_VK_NV_low_latency2 #endif /* VK_NV_low_latency2 */ #if defined(VK_NV_memory_decompression) #define NVVK_HAS_VK_NV_memory_decompression #endif /* VK_NV_memory_decompression */ #if defined(VK_NV_mesh_shader) #define NVVK_HAS_VK_NV_mesh_shader #endif /* VK_NV_mesh_shader */ #if defined(VK_NV_optical_flow) #define NVVK_HAS_VK_NV_optical_flow #endif /* VK_NV_optical_flow */ #if defined(VK_NV_ray_tracing) #define NVVK_HAS_VK_NV_ray_tracing #endif /* VK_NV_ray_tracing */ #if defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 #define NVVK_HAS_VK_NV_scissor_exclusive #endif /* VK_NV_scissor_exclusive && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 */ #if defined(VK_NV_scissor_exclusive) #define NVVK_HAS_VK_NV_scissor_exclusive #endif /* VK_NV_scissor_exclusive */ #if defined(VK_NV_shading_rate_image) #define NVVK_HAS_VK_NV_shading_rate_image #endif /* VK_NV_shading_rate_image */ #if defined(VK_QCOM_tile_properties) #define NVVK_HAS_VK_QCOM_tile_properties #endif /* VK_QCOM_tile_properties */ #if defined(VK_QNX_external_memory_screen_buffer) #define NVVK_HAS_VK_QNX_external_memory_screen_buffer #endif /* VK_QNX_external_memory_screen_buffer */ #if defined(VK_QNX_screen_surface) #define NVVK_HAS_VK_QNX_screen_surface #endif /* VK_QNX_screen_surface */ #if defined(VK_VALVE_descriptor_set_host_mapping) #define NVVK_HAS_VK_VALVE_descriptor_set_host_mapping #endif /* VK_VALVE_descriptor_set_host_mapping */ #if defined(VK_EXT_extended_dynamic_state) || defined(VK_EXT_shader_object) #define NVVK_HAS_VK_EXT_extended_dynamic_state #endif /* VK_EXT_extended_dynamic_state || VK_EXT_shader_object */ #if defined(VK_EXT_extended_dynamic_state2) || defined(VK_EXT_shader_object) #define NVVK_HAS_VK_EXT_extended_dynamic_state2 #endif /* VK_EXT_extended_dynamic_state2 || VK_EXT_shader_object */ #if defined(VK_EXT_extended_dynamic_state3) || defined(VK_EXT_shader_object) #define NVVK_HAS_VK_EXT_extended_dynamic_state3 #endif /* VK_EXT_extended_dynamic_state3 || VK_EXT_shader_object */ #if defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_clip_space_w_scaling) || defined(VK_EXT_shader_object) && defined(VK_NV_clip_space_w_scaling) #define NVVK_HAS_VK_EXT_extended_dynamic_state3 #endif /* VK_EXT_extended_dynamic_state3 && VK_NV_clip_space_w_scaling || VK_EXT_shader_object && VK_NV_clip_space_w_scaling */ #if defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle) || defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle) #define NVVK_HAS_VK_EXT_extended_dynamic_state3 #endif /* VK_EXT_extended_dynamic_state3 && VK_NV_viewport_swizzle || VK_EXT_shader_object && VK_NV_viewport_swizzle */ #if defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_fragment_coverage_to_color) || defined(VK_EXT_shader_object) && defined(VK_NV_fragment_coverage_to_color) #define NVVK_HAS_VK_EXT_extended_dynamic_state3 #endif /* VK_EXT_extended_dynamic_state3 && VK_NV_fragment_coverage_to_color || VK_EXT_shader_object && VK_NV_fragment_coverage_to_color */ #if defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples) || defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples) #define NVVK_HAS_VK_EXT_extended_dynamic_state3 #endif /* VK_EXT_extended_dynamic_state3 && VK_NV_framebuffer_mixed_samples || VK_EXT_shader_object && VK_NV_framebuffer_mixed_samples */ #if defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image) || defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image) #define NVVK_HAS_VK_EXT_extended_dynamic_state3 #endif /* VK_EXT_extended_dynamic_state3 && VK_NV_shading_rate_image || VK_EXT_shader_object && VK_NV_shading_rate_image */ #if defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test) || defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test) #define NVVK_HAS_VK_EXT_extended_dynamic_state3 #endif /* VK_EXT_extended_dynamic_state3 && VK_NV_representative_fragment_test || VK_EXT_shader_object && VK_NV_representative_fragment_test */ #if defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode) || defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode) #define NVVK_HAS_VK_EXT_extended_dynamic_state3 #endif /* VK_EXT_extended_dynamic_state3 && VK_NV_coverage_reduction_mode || VK_EXT_shader_object && VK_NV_coverage_reduction_mode */ #if defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group) || defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1) #define NVVK_HAS_VK_EXT_full_screen_exclusive #endif /* VK_EXT_full_screen_exclusive && VK_KHR_device_group || VK_EXT_full_screen_exclusive && VK_VERSION_1_1 */ #if defined(VK_EXT_host_image_copy) || defined(VK_EXT_image_compression_control) #define NVVK_HAS_VK_EXT_host_image_copy #endif /* VK_EXT_host_image_copy || VK_EXT_image_compression_control */ #if defined(VK_EXT_shader_object) || defined(VK_EXT_vertex_input_dynamic_state) #define NVVK_HAS_VK_EXT_shader_object #endif /* VK_EXT_shader_object || VK_EXT_vertex_input_dynamic_state */ #if defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor) || defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1) || defined(VK_KHR_push_descriptor) && defined(VK_KHR_descriptor_update_template) #define NVVK_HAS_VK_KHR_descriptor_update_template #endif /* VK_KHR_descriptor_update_template && VK_KHR_push_descriptor || VK_KHR_push_descriptor && VK_VERSION_1_1 || VK_KHR_push_descriptor && VK_KHR_descriptor_update_template */ #if defined(VK_KHR_device_group) && defined(VK_KHR_surface) || defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1) #define NVVK_HAS_VK_KHR_device_group #endif /* VK_KHR_device_group && VK_KHR_surface || VK_KHR_swapchain && VK_VERSION_1_1 */ #if defined(VK_KHR_device_group) && defined(VK_KHR_swapchain) || defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1) #define NVVK_HAS_VK_KHR_device_group #endif /* VK_KHR_device_group && VK_KHR_swapchain || VK_KHR_swapchain && VK_VERSION_1_1 */ /* NVVK_GENERATE_DEFINE */