Update Vulkan headers
authorAlexander Galazin <alexander.galazin@arm.com>
Mon, 5 Jul 2021 14:18:18 +0000 (16:18 +0200)
committerAlexander Galazin <alexander.galazin@arm.com>
Tue, 6 Jul 2021 07:30:31 +0000 (09:30 +0200)
Components: Vulkan

Change-Id: I6000ca21cc306130dd546887e68d1cecd4dc0e1f

26 files changed:
external/vulkancts/framework/vulkan/vkBasicTypes.inl
external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl
external/vulkancts/framework/vulkan/vkConcretePlatformInterface.inl
external/vulkancts/framework/vulkan/vkDefs.hpp
external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl
external/vulkancts/framework/vulkan/vkDeviceFeatures.inl
external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDecl.inl
external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDefs.inl
external/vulkancts/framework/vulkan/vkDeviceFeaturesForDefaultDeviceDefs.inl
external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl
external/vulkancts/framework/vulkan/vkExtensionFunctions.inl
external/vulkancts/framework/vulkan/vkFunctionPointerTypes.inl
external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl
external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl
external/vulkancts/framework/vulkan/vkInitPlatformFunctionPointers.inl
external/vulkancts/framework/vulkan/vkNullDriverImpl.inl
external/vulkancts/framework/vulkan/vkPlatformDriverImpl.inl
external/vulkancts/framework/vulkan/vkPlatformFunctionPointers.inl
external/vulkancts/framework/vulkan/vkStrUtil.inl
external/vulkancts/framework/vulkan/vkStrUtilImpl.inl
external/vulkancts/framework/vulkan/vkStructTypes.inl
external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl
external/vulkancts/framework/vulkan/vkVirtualPlatformInterface.inl
external/vulkancts/framework/vulkan/vkVulkan_c.inl
external/vulkancts/scripts/gen_framework.py
external/vulkancts/scripts/src/vulkan_core.h

index 106bc63..df9ca77 100644 (file)
@@ -676,6 +676,8 @@ enum VkStructureType
        VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI                                           = 1000369000,
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI                                       = 1000369001,
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI                                     = 1000369002,
+       VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV                                                                     = 1000371000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV                                      = 1000371001,
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT                         = 1000377000,
        VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX                                                                        = 1000378000,
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT                                       = 1000381000,
@@ -892,6 +894,12 @@ enum VkObjectType
        VK_OBJECT_TYPE_MAX_ENUM                                                 = 0x7FFFFFFF,
 };
 
+enum VkPipelineCacheHeaderVersion
+{
+       VK_PIPELINE_CACHE_HEADER_VERSION_ONE            = 1,
+       VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM       = 0x7FFFFFFF,
+};
+
 enum VkVendorId
 {
        VK_VENDOR_ID_VIV                = 0x10001,
@@ -903,12 +911,6 @@ enum VkVendorId
        VK_VENDOR_ID_MAX_ENUM   = 0x7FFFFFFF,
 };
 
-enum VkPipelineCacheHeaderVersion
-{
-       VK_PIPELINE_CACHE_HEADER_VERSION_ONE            = 1,
-       VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM       = 0x7FFFFFFF,
-};
-
 enum VkSystemAllocationScope
 {
        VK_SYSTEM_ALLOCATION_SCOPE_COMMAND      = 0,
@@ -2751,6 +2753,7 @@ enum VkMemoryPropertyFlagBits
        VK_MEMORY_PROPERTY_PROTECTED_BIT                        = 0x00000020,
        VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD      = 0x00000040,
        VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD      = 0x00000080,
+       VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV          = 0x00000100,
        VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM           = 0x7FFFFFFF,
 };
 typedef deUint32 VkMemoryPropertyFlags;
@@ -3193,6 +3196,7 @@ enum VkExternalMemoryHandleTypeFlagBits
        VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT                          = 0x00000080,
        VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT       = 0x00000100,
        VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA                           = 0x00000800,
+       VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV                                      = 0x00001000,
        VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR                                        = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
        VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR                                     = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
        VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR                         = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
@@ -4191,7 +4195,8 @@ VK_DEFINE_PLATFORM_TYPE(CAMetalLayer,                             void*);
 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2
 #define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1
-#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 0
+#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 2
+#define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
 #define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1
 #define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT 16U
index 2ce47b8..c34cd38 100644 (file)
@@ -301,7 +301,9 @@ virtual VkResult                    setPrivateDataEXT                                                               (VkDevice device, VkObjectType objec
 virtual void                           getPrivateDataEXT                                                               (VkDevice device, VkObjectType objectType, deUint64 objectHandle, VkPrivateDataSlotEXT privateDataSlot, deUint64* pData) const;
 virtual void                           cmdSetFragmentShadingRateEnumNV                                 (VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const;
 virtual void                           cmdSetVertexInputEXT                                                    (VkCommandBuffer commandBuffer, deUint32 vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, deUint32 vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions) const;
+virtual VkResult                       getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI   (VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize) const;
 virtual void                           cmdSubpassShadingHUAWEI                                                 (VkCommandBuffer commandBuffer) const;
+virtual VkResult                       getMemoryRemoteAddressNV                                                (VkDevice device, const VkMemoryGetRemoteAddressInfoNV* getMemoryRemoteAddressInfo, VkRemoteAddressNV* pAddress) const;
 virtual void                           cmdSetPatchControlPointsEXT                                             (VkCommandBuffer commandBuffer, deUint32 patchControlPoints) const;
 virtual void                           cmdSetRasterizerDiscardEnableEXT                                (VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable) const;
 virtual void                           cmdSetDepthBiasEnableEXT                                                (VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable) const;
index a06c450..d68dc22 100644 (file)
@@ -6,4 +6,3 @@ virtual PFN_vkVoidFunction      getInstanceProcAddr                                             (VkInstance instance, const
 virtual VkResult                       enumerateInstanceExtensionProperties    (const char* pLayerName, deUint32* pPropertyCount, VkExtensionProperties* pProperties) const;
 virtual VkResult                       enumerateInstanceLayerProperties                (deUint32* pPropertyCount, VkLayerProperties* pProperties) const;
 virtual VkResult                       enumerateInstanceVersion                                (deUint32* pApiVersion) const;
-virtual VkResult                       getSubpassShadingMaxWorkgroupSizeHUAWEI (VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize) const;
index 7e38d84..33a4895 100644 (file)
@@ -185,6 +185,8 @@ typedef VKAPI_ATTR void             (VKAPI_CALL* PFN_vkDeviceMemoryReportCallbackEXT)       (cons
 
 #include "vkStructTypes.inl"
 
+typedef void* VkRemoteAddressNV;
+
 extern "C"
 {
 #include "vkFunctionPointerTypes.inl"
index 012c7d4..d19b046 100644 (file)
@@ -1502,11 +1502,21 @@ void DeviceDriver::cmdSetVertexInputEXT (VkCommandBuffer commandBuffer, deUint32
        m_vk.cmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions);
 }
 
+VkResult DeviceDriver::getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI (VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize) const
+{
+       return m_vk.getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize);
+}
+
 void DeviceDriver::cmdSubpassShadingHUAWEI (VkCommandBuffer commandBuffer) const
 {
        m_vk.cmdSubpassShadingHUAWEI(commandBuffer);
 }
 
+VkResult DeviceDriver::getMemoryRemoteAddressNV (VkDevice device, const VkMemoryGetRemoteAddressInfoNV* getMemoryRemoteAddressInfo, VkRemoteAddressNV* pAddress) const
+{
+       return m_vk.getMemoryRemoteAddressNV(device, getMemoryRemoteAddressInfo, pAddress);
+}
+
 void DeviceDriver::cmdSetPatchControlPointsEXT (VkCommandBuffer commandBuffer, deUint32 patchControlPoints) const
 {
        m_vk.cmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints);
index 756b32a..32c06dd 100644 (file)
@@ -30,6 +30,7 @@ namespace vk
 #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
 #define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
+#define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
@@ -269,6 +270,7 @@ template<> void initFeatureFromBlob<VkPhysicalDevice4444FormatsFeaturesEXT>(VkPh
 template<> void initFeatureFromBlob<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE>(VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT>(VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI>(VkPhysicalDeviceSubpassShadingFeaturesHUAWEI&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV>(VkPhysicalDeviceExternalMemoryRDMAFeaturesNV&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceColorWriteEnableFeaturesEXT>(VkPhysicalDeviceColorWriteEnableFeaturesEXT&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT>(VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT&, const AllFeaturesBlobs&) {}
@@ -279,31 +281,32 @@ template<> void initFeatureFromBlob<VkPhysicalDeviceRayQueryFeaturesKHR>(VkPhysi
 template<> void initFeatureFromBlob<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(VkPhysicalDevicePortabilitySubsetFeaturesKHR&, const AllFeaturesBlobs&) {}
 
 
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice16BitStorageFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, VK_KHR_16BIT_STORAGE_EXTENSION_NAME, VK_KHR_16BIT_STORAGE_SPEC_VERSION, 89}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice4444FormatsFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT, VK_EXT_4444_FORMATS_EXTENSION_NAME, VK_EXT_4444_FORMATS_SPEC_VERSION, 88}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice8BitStorageFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES, VK_KHR_8BIT_STORAGE_EXTENSION_NAME, VK_KHR_8BIT_STORAGE_SPEC_VERSION, 87}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceAccelerationStructureFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR, VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION, 86}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceASTCDecodeFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT, VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME, VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION, 85}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 84}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBufferDeviceAddressFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES, VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 83}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 82}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoherentMemoryFeaturesAMD>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, DECL_AMD_COHERENT_MEMORY_EXTENSION_NAME, 0, 81}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceColorWriteEnableFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT, VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME, VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION, 80}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV, VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION, 79}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceConditionalRenderingFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT, VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME, VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION, 78}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCooperativeMatrixFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 77}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCornerSampledImageFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV, VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME, VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION, 76}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoverageReductionModeFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV, VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME, VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION, 75}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCustomBorderColorFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION, 74}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION, 73}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDepthClipEnableFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT, VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION, 72}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDescriptorIndexingFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 71}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION, 70}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT, VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME, VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION, 69}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, DECL_NV_DIAGNOSTICS_CONFIG_EXTENSION_NAME, 0, 68}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExclusiveScissorFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV, VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME, VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION, 67}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT, VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION, 66}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT, VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION, 65}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice16BitStorageFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, VK_KHR_16BIT_STORAGE_EXTENSION_NAME, VK_KHR_16BIT_STORAGE_SPEC_VERSION, 90}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice4444FormatsFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT, VK_EXT_4444_FORMATS_EXTENSION_NAME, VK_EXT_4444_FORMATS_SPEC_VERSION, 89}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice8BitStorageFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES, VK_KHR_8BIT_STORAGE_EXTENSION_NAME, VK_KHR_8BIT_STORAGE_SPEC_VERSION, 88}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceAccelerationStructureFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR, VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION, 87}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceASTCDecodeFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT, VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME, VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION, 86}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 85}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBufferDeviceAddressFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES, VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 84}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 83}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoherentMemoryFeaturesAMD>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, DECL_AMD_COHERENT_MEMORY_EXTENSION_NAME, 0, 82}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceColorWriteEnableFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT, VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME, VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION, 81}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV, VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION, 80}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceConditionalRenderingFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT, VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME, VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION, 79}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCooperativeMatrixFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 78}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCornerSampledImageFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV, VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME, VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION, 77}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoverageReductionModeFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV, VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME, VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION, 76}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCustomBorderColorFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION, 75}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION, 74}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDepthClipEnableFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT, VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION, 73}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDescriptorIndexingFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 72}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION, 71}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT, VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME, VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION, 70}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, DECL_NV_DIAGNOSTICS_CONFIG_EXTENSION_NAME, 0, 69}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExclusiveScissorFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV, VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME, VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION, 68}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT, VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION, 67}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT, VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION, 66}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV, VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME, VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION, 65}; }
 template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION, 64}; }
 template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION, 63}; }
 template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION, 62}; }
@@ -397,6 +400,7 @@ static const FeatureStructCreationData featureStructCreationArray[] =
        { createFeatureStructWrapper<VkPhysicalDeviceExclusiveScissorFeaturesNV>, VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME, VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>, VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>, VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV>, VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME, VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT>, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV>, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION },
index b41e899..fd8bc61 100644 (file)
@@ -26,6 +26,7 @@ const vk::VkPhysicalDeviceDiagnosticsConfigFeaturesNV&                                        getDiagnosticsConfigF
 const vk::VkPhysicalDeviceExclusiveScissorFeaturesNV&                                  getExclusiveScissorFeatures                                             (void) const;
 const vk::VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&                             getExtendedDynamicStateFeaturesEXT                              (void) const;
 const vk::VkPhysicalDeviceExtendedDynamicState2FeaturesEXT&                            getExtendedDynamicState2FeaturesEXT                             (void) const;
+const vk::VkPhysicalDeviceExternalMemoryRDMAFeaturesNV&                                        getExternalMemoryRDMAFeatures                                   (void) const;
 const vk::VkPhysicalDeviceFragmentDensityMapFeaturesEXT&                               getFragmentDensityMapFeaturesEXT                                (void) const;
 const vk::VkPhysicalDeviceFragmentDensityMap2FeaturesEXT&                              getFragmentDensityMap2FeaturesEXT                               (void) const;
 const vk::VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV&                 getFragmentShaderBarycentricFeatures                    (void) const;
index b664d68..bc9d030 100644 (file)
@@ -26,6 +26,7 @@ const vk::VkPhysicalDeviceDiagnosticsConfigFeaturesNV&                                        Context::getDiagnosti
 const vk::VkPhysicalDeviceExclusiveScissorFeaturesNV&                                  Context::getExclusiveScissorFeatures                                    (void) const { return m_device->getExclusiveScissorFeatures();                                  }
 const vk::VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&                             Context::getExtendedDynamicStateFeaturesEXT                             (void) const { return m_device->getExtendedDynamicStateFeaturesEXT();                   }
 const vk::VkPhysicalDeviceExtendedDynamicState2FeaturesEXT&                            Context::getExtendedDynamicState2FeaturesEXT                    (void) const { return m_device->getExtendedDynamicState2FeaturesEXT();                  }
+const vk::VkPhysicalDeviceExternalMemoryRDMAFeaturesNV&                                        Context::getExternalMemoryRDMAFeatures                                  (void) const { return m_device->getExternalMemoryRDMAFeatures();                                }
 const vk::VkPhysicalDeviceFragmentDensityMapFeaturesEXT&                               Context::getFragmentDensityMapFeaturesEXT                               (void) const { return m_device->getFragmentDensityMapFeaturesEXT();                             }
 const vk::VkPhysicalDeviceFragmentDensityMap2FeaturesEXT&                              Context::getFragmentDensityMap2FeaturesEXT                              (void) const { return m_device->getFragmentDensityMap2FeaturesEXT();                    }
 const vk::VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV&                 Context::getFragmentShaderBarycentricFeatures                   (void) const { return m_device->getFragmentShaderBarycentricFeatures();                 }
index 2aa18e6..bdf7dd2 100644 (file)
@@ -26,6 +26,7 @@ const VkPhysicalDeviceDiagnosticsConfigFeaturesNV&                                    getDiagnosticsConfigFeatu
 const VkPhysicalDeviceExclusiveScissorFeaturesNV&                                      getExclusiveScissorFeatures                                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExclusiveScissorFeaturesNV>();                                    }
 const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&                         getExtendedDynamicStateFeaturesEXT                              (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>();                               }
 const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT&                                getExtendedDynamicState2FeaturesEXT                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>();                              }
+const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV&                                    getExternalMemoryRDMAFeatures                                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV>();                                  }
 const VkPhysicalDeviceFragmentDensityMapFeaturesEXT&                           getFragmentDensityMapFeaturesEXT                                (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>();                                 }
 const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT&                          getFragmentDensityMap2FeaturesEXT                               (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT>();                                }
 const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV&                     getFragmentShaderBarycentricFeatures                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV>();                   }
index 6ad3ed3..e1b07f3 100644 (file)
@@ -301,7 +301,9 @@ SetPrivateDataEXTFunc                                                               setPrivateDataEXT;
 GetPrivateDataEXTFunc                                                          getPrivateDataEXT;
 CmdSetFragmentShadingRateEnumNVFunc                                    cmdSetFragmentShadingRateEnumNV;
 CmdSetVertexInputEXTFunc                                                       cmdSetVertexInputEXT;
+GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIFunc      getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
 CmdSubpassShadingHUAWEIFunc                                                    cmdSubpassShadingHUAWEI;
+GetMemoryRemoteAddressNVFunc                                           getMemoryRemoteAddressNV;
 CmdSetPatchControlPointsEXTFunc                                                cmdSetPatchControlPointsEXT;
 CmdSetRasterizerDiscardEnableEXTFunc                           cmdSetRasterizerDiscardEnableEXT;
 CmdSetDepthBiasEnableEXTFunc                                           cmdSetDepthBiasEnableEXT;
index 5649765..19e1f60 100644 (file)
@@ -897,6 +897,10 @@ void getInstanceExtensionFunctions (deUint32 apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_NV_external_memory_rdma")
+       {
+               return;
+       }
        if (extName == "VK_EXT_extended_dynamic_state2")
        {
                return;
@@ -2086,9 +2090,15 @@ void getDeviceExtensionFunctions (deUint32 apiVersion, ::std::string extName, ::
        }
        if (extName == "VK_HUAWEI_subpass_shading")
        {
+               functions.push_back("vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI");
                functions.push_back("vkCmdSubpassShadingHUAWEI");
                return;
        }
+       if (extName == "VK_NV_external_memory_rdma")
+       {
+               functions.push_back("vkGetMemoryRemoteAddressNV");
+               return;
+       }
        if (extName == "VK_EXT_extended_dynamic_state2")
        {
                functions.push_back("vkCmdSetPatchControlPointsEXT");
@@ -2395,6 +2405,8 @@ void getDeviceExtensionFunctions (deUint32 apiVersion, ::std::string extName, ::
        "VK_EXT_private_data",
        "VK_NV_fragment_shading_rate_enums",
        "VK_EXT_vertex_input_dynamic_state",
+       "VK_HUAWEI_subpass_shading",
+       "VK_NV_external_memory_rdma",
        "VK_EXT_extended_dynamic_state2",
        "VK_EXT_color_write_enable",
        "VK_EXT_multi_draw",
index 1e54e03..1007d12 100644 (file)
@@ -409,8 +409,9 @@ typedef VKAPI_ATTR void                                     (VKAPI_CALL* CmdSetFragmentShadingRateEnumNVFunc)
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AcquireWinrtDisplayNVFunc)                                                                                         (VkPhysicalDevice physicalDevice, VkDisplayKHR display);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetWinrtDisplayNVFunc)                                                                                                     (VkPhysicalDevice physicalDevice, deUint32 deviceRelativeId, VkDisplayKHR* pDisplay);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetVertexInputEXTFunc)                                                                                          (VkCommandBuffer commandBuffer, deUint32 vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, deUint32 vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSubpassShadingMaxWorkgroupSizeHUAWEIFunc)                                                       (VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIFunc)                                         (VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSubpassShadingHUAWEIFunc)                                                                                       (VkCommandBuffer commandBuffer);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryRemoteAddressNVFunc)                                                                                      (VkDevice device, const VkMemoryGetRemoteAddressInfoNV* getMemoryRemoteAddressInfo, VkRemoteAddressNV* pAddress);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetPatchControlPointsEXTFunc)                                                                           (VkCommandBuffer commandBuffer, deUint32 patchControlPoints);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetRasterizerDiscardEnableEXTFunc)                                                                      (VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthBiasEnableEXTFunc)                                                                                      (VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
index 4518966..872b9bf 100644 (file)
@@ -2216,6 +2216,16 @@ template<> VkStructureType getStructureType<VkPhysicalDeviceSubpassShadingProper
        return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI;
 }
 
+template<> VkStructureType getStructureType<VkMemoryGetRemoteAddressInfoNV> (void)
+{
+       return VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV;
+}
+
 template<> VkStructureType getStructureType<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT> (void)
 {
        return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT;
index 74b37ad..38645fa 100644 (file)
@@ -357,7 +357,9 @@ m_vk.setPrivateDataEXT                                                                      = (SetPrivateDataEXTFunc)                                                               GET_PROC_ADDR("v
 m_vk.getPrivateDataEXT                                                                 = (GetPrivateDataEXTFunc)                                                               GET_PROC_ADDR("vkGetPrivateDataEXT");
 m_vk.cmdSetFragmentShadingRateEnumNV                                   = (CmdSetFragmentShadingRateEnumNVFunc)                                 GET_PROC_ADDR("vkCmdSetFragmentShadingRateEnumNV");
 m_vk.cmdSetVertexInputEXT                                                              = (CmdSetVertexInputEXTFunc)                                                    GET_PROC_ADDR("vkCmdSetVertexInputEXT");
+m_vk.getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI             = (GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIFunc)   GET_PROC_ADDR("vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI");
 m_vk.cmdSubpassShadingHUAWEI                                                   = (CmdSubpassShadingHUAWEIFunc)                                                 GET_PROC_ADDR("vkCmdSubpassShadingHUAWEI");
+m_vk.getMemoryRemoteAddressNV                                                  = (GetMemoryRemoteAddressNVFunc)                                                GET_PROC_ADDR("vkGetMemoryRemoteAddressNV");
 m_vk.cmdSetPatchControlPointsEXT                                               = (CmdSetPatchControlPointsEXTFunc)                                             GET_PROC_ADDR("vkCmdSetPatchControlPointsEXT");
 m_vk.cmdSetRasterizerDiscardEnableEXT                                  = (CmdSetRasterizerDiscardEnableEXTFunc)                                GET_PROC_ADDR("vkCmdSetRasterizerDiscardEnableEXT");
 m_vk.cmdSetDepthBiasEnableEXT                                                  = (CmdSetDepthBiasEnableEXTFunc)                                                GET_PROC_ADDR("vkCmdSetDepthBiasEnableEXT");
index 37f04a1..ce20970 100644 (file)
@@ -1,8 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  */
-m_vk.createInstance                                                            = (CreateInstanceFunc)                                                  GET_PROC_ADDR("vkCreateInstance");
-m_vk.enumerateInstanceExtensionProperties              = (EnumerateInstanceExtensionPropertiesFunc)    GET_PROC_ADDR("vkEnumerateInstanceExtensionProperties");
-m_vk.enumerateInstanceLayerProperties                  = (EnumerateInstanceLayerPropertiesFunc)                GET_PROC_ADDR("vkEnumerateInstanceLayerProperties");
-m_vk.enumerateInstanceVersion                                  = (EnumerateInstanceVersionFunc)                                GET_PROC_ADDR("vkEnumerateInstanceVersion");
-m_vk.getSubpassShadingMaxWorkgroupSizeHUAWEI   = (GetSubpassShadingMaxWorkgroupSizeHUAWEIFunc) GET_PROC_ADDR("vkGetSubpassShadingMaxWorkgroupSizeHUAWEI");
+m_vk.createInstance                                                    = (CreateInstanceFunc)                                                  GET_PROC_ADDR("vkCreateInstance");
+m_vk.enumerateInstanceExtensionProperties      = (EnumerateInstanceExtensionPropertiesFunc)    GET_PROC_ADDR("vkEnumerateInstanceExtensionProperties");
+m_vk.enumerateInstanceLayerProperties          = (EnumerateInstanceLayerPropertiesFunc)                GET_PROC_ADDR("vkEnumerateInstanceLayerProperties");
+m_vk.enumerateInstanceVersion                          = (EnumerateInstanceVersionFunc)                                GET_PROC_ADDR("vkEnumerateInstanceVersion");
index 39a6117..4f036c8 100644 (file)
@@ -2707,8 +2707,9 @@ VKAPI_ATTR void VKAPI_CALL cmdSetVertexInputEXT (VkCommandBuffer commandBuffer,
        DE_UNREF(pVertexAttributeDescriptions);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getSubpassShadingMaxWorkgroupSizeHUAWEI (VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize)
+VKAPI_ATTR VkResult VKAPI_CALL getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI (VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize)
 {
+       DE_UNREF(device);
        DE_UNREF(renderpass);
        DE_UNREF(pMaxWorkgroupSize);
        return VK_SUCCESS;
@@ -2719,6 +2720,14 @@ VKAPI_ATTR void VKAPI_CALL cmdSubpassShadingHUAWEI (VkCommandBuffer commandBuffe
        DE_UNREF(commandBuffer);
 }
 
+VKAPI_ATTR VkResult VKAPI_CALL getMemoryRemoteAddressNV (VkDevice device, const VkMemoryGetRemoteAddressInfoNV* getMemoryRemoteAddressInfo, VkRemoteAddressNV* pAddress)
+{
+       DE_UNREF(device);
+       DE_UNREF(getMemoryRemoteAddressInfo);
+       DE_UNREF(pAddress);
+       return VK_SUCCESS;
+}
+
 VKAPI_ATTR void VKAPI_CALL cmdSetPatchControlPointsEXT (VkCommandBuffer commandBuffer, deUint32 patchControlPoints)
 {
        DE_UNREF(commandBuffer);
@@ -3192,12 +3201,11 @@ VKAPI_ATTR VkResult VKAPI_CALL getRandROutputDisplayEXT (VkPhysicalDevice physic
 
 static const tcu::StaticFunctionLibrary::Entry s_platformFunctions[] =
 {
-       VK_NULL_FUNC_ENTRY(vkCreateInstance,                                                    createInstance),
-       VK_NULL_FUNC_ENTRY(vkGetInstanceProcAddr,                                               getInstanceProcAddr),
-       VK_NULL_FUNC_ENTRY(vkEnumerateInstanceExtensionProperties,              enumerateInstanceExtensionProperties),
-       VK_NULL_FUNC_ENTRY(vkEnumerateInstanceLayerProperties,                  enumerateInstanceLayerProperties),
-       VK_NULL_FUNC_ENTRY(vkEnumerateInstanceVersion,                                  enumerateInstanceVersion),
-       VK_NULL_FUNC_ENTRY(vkGetSubpassShadingMaxWorkgroupSizeHUAWEI,   getSubpassShadingMaxWorkgroupSizeHUAWEI),
+       VK_NULL_FUNC_ENTRY(vkCreateInstance,                                            createInstance),
+       VK_NULL_FUNC_ENTRY(vkGetInstanceProcAddr,                                       getInstanceProcAddr),
+       VK_NULL_FUNC_ENTRY(vkEnumerateInstanceExtensionProperties,      enumerateInstanceExtensionProperties),
+       VK_NULL_FUNC_ENTRY(vkEnumerateInstanceLayerProperties,          enumerateInstanceLayerProperties),
+       VK_NULL_FUNC_ENTRY(vkEnumerateInstanceVersion,                          enumerateInstanceVersion),
 };
 
 static const tcu::StaticFunctionLibrary::Entry s_instanceFunctions[] =
@@ -3629,7 +3637,9 @@ static const tcu::StaticFunctionLibrary::Entry s_deviceFunctions[] =
        VK_NULL_FUNC_ENTRY(vkGetPrivateDataEXT,                                                                 getPrivateDataEXT),
        VK_NULL_FUNC_ENTRY(vkCmdSetFragmentShadingRateEnumNV,                                   cmdSetFragmentShadingRateEnumNV),
        VK_NULL_FUNC_ENTRY(vkCmdSetVertexInputEXT,                                                              cmdSetVertexInputEXT),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI,             getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI),
        VK_NULL_FUNC_ENTRY(vkCmdSubpassShadingHUAWEI,                                                   cmdSubpassShadingHUAWEI),
+       VK_NULL_FUNC_ENTRY(vkGetMemoryRemoteAddressNV,                                                  getMemoryRemoteAddressNV),
        VK_NULL_FUNC_ENTRY(vkCmdSetPatchControlPointsEXT,                                               cmdSetPatchControlPointsEXT),
        VK_NULL_FUNC_ENTRY(vkCmdSetRasterizerDiscardEnableEXT,                                  cmdSetRasterizerDiscardEnableEXT),
        VK_NULL_FUNC_ENTRY(vkCmdSetDepthBiasEnableEXT,                                                  cmdSetDepthBiasEnableEXT),
index 717e8b1..07880fe 100644 (file)
@@ -30,8 +30,3 @@ VkResult PlatformDriver::enumerateInstanceVersion (deUint32* pApiVersion) const
        *pApiVersion = VK_API_VERSION_1_0;
        return VK_SUCCESS;
 }
-
-VkResult PlatformDriver::getSubpassShadingMaxWorkgroupSizeHUAWEI (VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize) const
-{
-       return m_vk.getSubpassShadingMaxWorkgroupSizeHUAWEI(renderpass, pMaxWorkgroupSize);
-}
index 5ab8241..62c6b14 100644 (file)
@@ -6,4 +6,3 @@ GetInstanceProcAddrFunc                                         getInstanceProcAddr;
 EnumerateInstanceExtensionPropertiesFunc       enumerateInstanceExtensionProperties;
 EnumerateInstanceLayerPropertiesFunc           enumerateInstanceLayerProperties;
 EnumerateInstanceVersionFunc                           enumerateInstanceVersion;
-GetSubpassShadingMaxWorkgroupSizeHUAWEIFunc    getSubpassShadingMaxWorkgroupSizeHUAWEI;
index ebd4891..98d83ff 100644 (file)
@@ -5,8 +5,8 @@ const char*     getResultName                                                                                   (VkResult value);
 const char*    getStructureTypeName                                                                    (VkStructureType value);
 const char*    getImageLayoutName                                                                              (VkImageLayout value);
 const char*    getObjectTypeName                                                                               (VkObjectType value);
-const char*    getVendorIdName                                                                                 (VkVendorId value);
 const char*    getPipelineCacheHeaderVersionName                                               (VkPipelineCacheHeaderVersion value);
+const char*    getVendorIdName                                                                                 (VkVendorId value);
 const char*    getSystemAllocationScopeName                                                    (VkSystemAllocationScope value);
 const char*    getInternalAllocationTypeName                                                   (VkInternalAllocationType value);
 const char*    getFormatName                                                                                   (VkFormat value);
@@ -122,8 +122,8 @@ inline tcu::Format::Enum<VkResult>                                                                                  getResultStr                                                                            (VkResult val
 inline tcu::Format::Enum<VkStructureType>                                                                      getStructureTypeStr                                                                     (VkStructureType value)                                                                 { return tcu::Format::Enum<VkStructureType>(getStructureTypeName, value);                                                                                                                                       }
 inline tcu::Format::Enum<VkImageLayout>                                                                                getImageLayoutStr                                                                       (VkImageLayout value)                                                                   { return tcu::Format::Enum<VkImageLayout>(getImageLayoutName, value);                                                                                                                                           }
 inline tcu::Format::Enum<VkObjectType>                                                                         getObjectTypeStr                                                                        (VkObjectType value)                                                                    { return tcu::Format::Enum<VkObjectType>(getObjectTypeName, value);                                                                                                                                                     }
-inline tcu::Format::Enum<VkVendorId>                                                                           getVendorIdStr                                                                          (VkVendorId value)                                                                              { return tcu::Format::Enum<VkVendorId>(getVendorIdName, value);                                                                                                                                                         }
 inline tcu::Format::Enum<VkPipelineCacheHeaderVersion>                                         getPipelineCacheHeaderVersionStr                                        (VkPipelineCacheHeaderVersion value)                                    { return tcu::Format::Enum<VkPipelineCacheHeaderVersion>(getPipelineCacheHeaderVersionName, value);                                                                                     }
+inline tcu::Format::Enum<VkVendorId>                                                                           getVendorIdStr                                                                          (VkVendorId value)                                                                              { return tcu::Format::Enum<VkVendorId>(getVendorIdName, value);                                                                                                                                                         }
 inline tcu::Format::Enum<VkSystemAllocationScope>                                                      getSystemAllocationScopeStr                                                     (VkSystemAllocationScope value)                                                 { return tcu::Format::Enum<VkSystemAllocationScope>(getSystemAllocationScopeName, value);                                                                                                       }
 inline tcu::Format::Enum<VkInternalAllocationType>                                                     getInternalAllocationTypeStr                                            (VkInternalAllocationType value)                                                { return tcu::Format::Enum<VkInternalAllocationType>(getInternalAllocationTypeName, value);                                                                                                     }
 inline tcu::Format::Enum<VkFormat>                                                                                     getFormatStr                                                                            (VkFormat value)                                                                                { return tcu::Format::Enum<VkFormat>(getFormatName, value);                                                                                                                                                                     }
@@ -239,8 +239,8 @@ inline std::ostream&        operator<<      (std::ostream& s, VkResult value)                                                                                       { re
 inline std::ostream&   operator<<      (std::ostream& s, VkStructureType value)                                                                        { return s << getStructureTypeStr(value);                                                                       }
 inline std::ostream&   operator<<      (std::ostream& s, VkImageLayout value)                                                                          { return s << getImageLayoutStr(value);                                                                         }
 inline std::ostream&   operator<<      (std::ostream& s, VkObjectType value)                                                                           { return s << getObjectTypeStr(value);                                                                          }
-inline std::ostream&   operator<<      (std::ostream& s, VkVendorId value)                                                                                     { return s << getVendorIdStr(value);                                                                            }
 inline std::ostream&   operator<<      (std::ostream& s, VkPipelineCacheHeaderVersion value)                                           { return s << getPipelineCacheHeaderVersionStr(value);                                          }
+inline std::ostream&   operator<<      (std::ostream& s, VkVendorId value)                                                                                     { return s << getVendorIdStr(value);                                                                            }
 inline std::ostream&   operator<<      (std::ostream& s, VkSystemAllocationScope value)                                                        { return s << getSystemAllocationScopeStr(value);                                                       }
 inline std::ostream&   operator<<      (std::ostream& s, VkInternalAllocationType value)                                                       { return s << getInternalAllocationTypeStr(value);                                                      }
 inline std::ostream&   operator<<      (std::ostream& s, VkFormat value)                                                                                       { return s << getFormatStr(value);                                                                                      }
@@ -517,6 +517,7 @@ std::ostream&       operator<<      (std::ostream& s, const VkDrawIndirectCommand& value);
 std::ostream&  operator<<      (std::ostream& s, const VkImageSubresourceRange& value);
 std::ostream&  operator<<      (std::ostream& s, const VkImageMemoryBarrier& value);
 std::ostream&  operator<<      (std::ostream& s, const VkMemoryBarrier& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineCacheHeaderVersionOne& value);
 std::ostream&  operator<<      (std::ostream& s, const VkAllocationCallbacks& value);
 std::ostream&  operator<<      (std::ostream& s, const VkApplicationInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkFormatProperties& value);
@@ -1060,6 +1061,8 @@ std::ostream&     operator<<      (std::ostream& s, const VkPhysicalDeviceDrmPropertiesEX
 std::ostream&  operator<<      (std::ostream& s, const VkSubpassShadingPipelineCreateInfoHUAWEI& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMemoryGetRemoteAddressInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceColorWriteEnableFeaturesEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineColorWriteCreateInfoEXT& value);
index 35bd665..9d1c8a5 100644 (file)
@@ -677,6 +677,8 @@ const char* getStructureTypeName (VkStructureType value)
                case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:                                                     return "VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI";
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI";
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI";
+               case VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV:                                                                       return "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV";
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT";
                case VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX:                                                                          return "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX";
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT";
@@ -780,6 +782,16 @@ const char* getObjectTypeName (VkObjectType value)
        }
 }
 
+const char* getPipelineCacheHeaderVersionName (VkPipelineCacheHeaderVersion value)
+{
+       switch (value)
+       {
+               case VK_PIPELINE_CACHE_HEADER_VERSION_ONE:              return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE";
+               case VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM: return "VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM";
+               default:                                                                                return DE_NULL;
+       }
+}
+
 const char* getVendorIdName (VkVendorId value)
 {
        switch (value)
@@ -795,16 +807,6 @@ const char* getVendorIdName (VkVendorId value)
        }
 }
 
-const char* getPipelineCacheHeaderVersionName (VkPipelineCacheHeaderVersion value)
-{
-       switch (value)
-       {
-               case VK_PIPELINE_CACHE_HEADER_VERSION_ONE:              return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE";
-               case VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM: return "VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM";
-               default:                                                                                return DE_NULL;
-       }
-}
-
 const char* getSystemAllocationScopeName (VkSystemAllocationScope value)
 {
        switch (value)
@@ -2906,6 +2908,7 @@ tcu::Format::Bitfield<32> getMemoryPropertyFlagsStr (VkMemoryPropertyFlags value
                tcu::Format::BitDesc(VK_MEMORY_PROPERTY_PROTECTED_BIT,                          "VK_MEMORY_PROPERTY_PROTECTED_BIT"),
                tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,        "VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD"),
                tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD,        "VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD"),
+               tcu::Format::BitDesc(VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV,            "VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV"),
                tcu::Format::BitDesc(VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM,                     "VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
@@ -3459,6 +3462,7 @@ tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsStr (VkExternalMemoryH
                tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,                            "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT"),
                tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT,         "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT"),
                tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,                                     "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV,                                        "VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV"),
                tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,                                          "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR"),
                tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,                                       "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR"),
                tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,                           "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR"),
@@ -4582,6 +4586,18 @@ std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier& value)
        return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkPipelineCacheHeaderVersionOne& value)
+{
+       s << "VkPipelineCacheHeaderVersionOne = {\n";
+       s << "\theaderSize = " << value.headerSize << '\n';
+       s << "\theaderVersion = " << value.headerVersion << '\n';
+       s << "\tvendorID = " << value.vendorID << '\n';
+       s << "\tdeviceID = " << value.deviceID << '\n';
+       s << "\tpipelineCacheUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.pipelineCacheUUID)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.pipelineCacheUUID))) << '\n';
+       s << '}';
+       return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkAllocationCallbacks& value)
 {
        s << "VkAllocationCallbacks = {\n";
@@ -11340,6 +11356,27 @@ std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingP
        return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkMemoryGetRemoteAddressInfoNV& value)
+{
+       s << "VkMemoryGetRemoteAddressInfoNV = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tmemory = " << value.memory << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV& value)
+{
+       s << "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\texternalMemoryRDMA = " << value.externalMemoryRDMA << '\n';
+       s << '}';
+       return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT& value)
 {
        s << "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT = {\n";
index 7b71d82..d42e2a8 100644 (file)
@@ -113,6 +113,15 @@ struct VkMemoryBarrier
        VkAccessFlags   dstAccessMask;
 };
 
+struct VkPipelineCacheHeaderVersionOne
+{
+       deUint32                                                headerSize;
+       VkPipelineCacheHeaderVersion    headerVersion;
+       deUint32                                                vendorID;
+       deUint32                                                deviceID;
+       deUint8                                                 pipelineCacheUUID[VK_UUID_SIZE];
+};
+
 struct VkAllocationCallbacks
 {
        void*                                                                   pUserData;
@@ -5242,6 +5251,21 @@ struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI
        deUint32                maxSubpassShadingWorkgroupSizeAspectRatio;
 };
 
+struct VkMemoryGetRemoteAddressInfoNV
+{
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkDeviceMemory                                          memory;
+       VkExternalMemoryHandleTypeFlagBits      handleType;
+};
+
+struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                externalMemoryRDMA;
+};
+
 struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT
 {
        VkStructureType sType;
index 0272592..d25c5d9 100644 (file)
@@ -301,7 +301,9 @@ virtual VkResult                    setPrivateDataEXT                                                               (VkDevice device, VkObjectType objec
 virtual void                           getPrivateDataEXT                                                               (VkDevice device, VkObjectType objectType, deUint64 objectHandle, VkPrivateDataSlotEXT privateDataSlot, deUint64* pData) const = 0;
 virtual void                           cmdSetFragmentShadingRateEnumNV                                 (VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const = 0;
 virtual void                           cmdSetVertexInputEXT                                                    (VkCommandBuffer commandBuffer, deUint32 vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, deUint32 vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions) const = 0;
+virtual VkResult                       getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI   (VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize) const = 0;
 virtual void                           cmdSubpassShadingHUAWEI                                                 (VkCommandBuffer commandBuffer) const = 0;
+virtual VkResult                       getMemoryRemoteAddressNV                                                (VkDevice device, const VkMemoryGetRemoteAddressInfoNV* getMemoryRemoteAddressInfo, VkRemoteAddressNV* pAddress) const = 0;
 virtual void                           cmdSetPatchControlPointsEXT                                             (VkCommandBuffer commandBuffer, deUint32 patchControlPoints) const = 0;
 virtual void                           cmdSetRasterizerDiscardEnableEXT                                (VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable) const = 0;
 virtual void                           cmdSetDepthBiasEnableEXT                                                (VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable) const = 0;
index fd0b9b9..3e71695 100644 (file)
@@ -6,4 +6,3 @@ virtual PFN_vkVoidFunction      getInstanceProcAddr                                             (VkInstance instance, const
 virtual VkResult                       enumerateInstanceExtensionProperties    (const char* pLayerName, deUint32* pPropertyCount, VkExtensionProperties* pProperties) const = 0;
 virtual VkResult                       enumerateInstanceLayerProperties                (deUint32* pPropertyCount, VkLayerProperties* pProperties) const = 0;
 virtual VkResult                       enumerateInstanceVersion                                (deUint32* pApiVersion) const = 0;
-virtual VkResult                       getSubpassShadingMaxWorkgroupSizeHUAWEI (VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize) const = 0;
index 1baa056..448c34a 100644 (file)
@@ -976,7 +976,7 @@ extern "C" {
 #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
 
 // Version of this file
-#define VK_HEADER_VERSION 183
+#define VK_HEADER_VERSION 184
 
 // Complete version of this file
 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 2, VK_HEADER_VERSION)
@@ -1024,6 +1024,7 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
+#define VK_UUID_SIZE                      16U
 #define VK_ATTACHMENT_UNUSED              (~0U)
 #define VK_FALSE                          0U
 #define VK_LOD_CLAMP_NONE                 1000.0F
@@ -1036,7 +1037,6 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
 #define VK_MAX_MEMORY_TYPES               32U
 #define VK_MAX_MEMORY_HEAPS               16U
 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256U
-#define VK_UUID_SIZE                      16U
 #define VK_MAX_EXTENSION_NAME_SIZE        256U
 #define VK_MAX_DESCRIPTION_SIZE           256U
 
@@ -1732,6 +1732,8 @@ typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002,
+    VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
     VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
@@ -1962,6 +1964,11 @@ typedef enum VkObjectType {
     VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkObjectType;
 
+typedef enum VkPipelineCacheHeaderVersion {
+    VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
+    VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
+} VkPipelineCacheHeaderVersion;
+
 typedef enum VkVendorId {
     VK_VENDOR_ID_VIV = 0x10001,
     VK_VENDOR_ID_VSI = 0x10002,
@@ -1972,11 +1979,6 @@ typedef enum VkVendorId {
     VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
 } VkVendorId;
 
-typedef enum VkPipelineCacheHeaderVersion {
-    VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
-    VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
-} VkPipelineCacheHeaderVersion;
-
 typedef enum VkSystemAllocationScope {
     VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
@@ -2844,6 +2846,7 @@ typedef enum VkMemoryPropertyFlagBits {
     VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
     VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
     VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
+    VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100,
     VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkMemoryPropertyFlagBits;
 typedef VkFlags VkMemoryPropertyFlags;
@@ -3325,6 +3328,14 @@ typedef struct VkMemoryBarrier {
     VkAccessFlags      dstAccessMask;
 } VkMemoryBarrier;
 
+typedef struct VkPipelineCacheHeaderVersionOne {
+    deUint32                        headerSize;
+    VkPipelineCacheHeaderVersion    headerVersion;
+    deUint32                        vendorID;
+    deUint32                        deviceID;
+    deUint8                         pipelineCacheUUID[VK_UUID_SIZE];
+} VkPipelineCacheHeaderVersionOne;
+
 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
     void*                                       pUserData,
     deUintptr                                      size,
@@ -5396,6 +5407,7 @@ typedef enum VkExternalMemoryHandleTypeFlagBits {
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
+    VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
@@ -13275,7 +13287,7 @@ typedef struct VkPhysicalDeviceDrmPropertiesEXT {
 
 
 #define VK_HUAWEI_subpass_shading 1
-#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 0
+#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 2
 #define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
 typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI {
     VkStructureType    sType;
@@ -13296,11 +13308,12 @@ typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI {
     deUint32           maxSubpassShadingWorkgroupSizeAspectRatio;
 } VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
 
-typedef VkResult (VKAPI_PTR *PFN_vkGetSubpassShadingMaxWorkgroupSizeHUAWEI)(VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
+typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
 typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer);
 
 #ifndef VK_NO_PROTOTYPES
-VKAPI_ATTR VkResult VKAPI_CALL vkGetSubpassShadingMaxWorkgroupSizeHUAWEI(
+VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
+    VkDevice                                    device,
     VkRenderPass                                renderpass,
     VkExtent2D*                                 pMaxWorkgroupSize);
 
@@ -13309,6 +13322,33 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI(
 #endif
 
 
+#define VK_NV_external_memory_rdma 1
+typedef void* VkRemoteAddressNV;
+#define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
+#define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
+typedef struct VkMemoryGetRemoteAddressInfoNV {
+    VkStructureType                       sType;
+    const void*                           pNext;
+    VkDeviceMemory                        memory;
+    VkExternalMemoryHandleTypeFlagBits    handleType;
+} VkMemoryGetRemoteAddressInfoNV;
+
+typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           externalMemoryRDMA;
+} VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
+
+typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* getMemoryRemoteAddressInfo, VkRemoteAddressNV* pAddress);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV(
+    VkDevice                                    device,
+    const VkMemoryGetRemoteAddressInfoNV*       getMemoryRemoteAddressInfo,
+    VkRemoteAddressNV*                          pAddress);
+#endif
+
+
 #define VK_EXT_extended_dynamic_state2 1
 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
index edb15c6..2cdbfb9 100755 (executable)
@@ -157,6 +157,8 @@ def prefixName (prefix, name):
        name = name.replace("AABBNV", "AABB_NV")
        name = name.replace("_H_264_", "_H264_")
        name = name.replace("_H_265_", "_H265_")
+       name = name.replace("RDMAFEATURES", "RDMA_FEATURES")
+
 
        return prefix + name
 
index 5354df0..53f9d48 100644 (file)
@@ -72,7 +72,7 @@ extern "C" {
 #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
 
 // Version of this file
-#define VK_HEADER_VERSION 183
+#define VK_HEADER_VERSION 184
 
 // Complete version of this file
 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 2, VK_HEADER_VERSION)
@@ -120,6 +120,7 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
+#define VK_UUID_SIZE                      16U
 #define VK_ATTACHMENT_UNUSED              (~0U)
 #define VK_FALSE                          0U
 #define VK_LOD_CLAMP_NONE                 1000.0F
@@ -132,7 +133,6 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
 #define VK_MAX_MEMORY_TYPES               32U
 #define VK_MAX_MEMORY_HEAPS               16U
 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256U
-#define VK_UUID_SIZE                      16U
 #define VK_MAX_EXTENSION_NAME_SIZE        256U
 #define VK_MAX_DESCRIPTION_SIZE           256U
 
@@ -828,6 +828,8 @@ typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002,
+    VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
     VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
@@ -1058,6 +1060,11 @@ typedef enum VkObjectType {
     VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkObjectType;
 
+typedef enum VkPipelineCacheHeaderVersion {
+    VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
+    VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
+} VkPipelineCacheHeaderVersion;
+
 typedef enum VkVendorId {
     VK_VENDOR_ID_VIV = 0x10001,
     VK_VENDOR_ID_VSI = 0x10002,
@@ -1068,11 +1075,6 @@ typedef enum VkVendorId {
     VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
 } VkVendorId;
 
-typedef enum VkPipelineCacheHeaderVersion {
-    VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
-    VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
-} VkPipelineCacheHeaderVersion;
-
 typedef enum VkSystemAllocationScope {
     VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
@@ -1940,6 +1942,7 @@ typedef enum VkMemoryPropertyFlagBits {
     VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
     VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
     VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
+    VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100,
     VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkMemoryPropertyFlagBits;
 typedef VkFlags VkMemoryPropertyFlags;
@@ -2421,6 +2424,14 @@ typedef struct VkMemoryBarrier {
     VkAccessFlags      dstAccessMask;
 } VkMemoryBarrier;
 
+typedef struct VkPipelineCacheHeaderVersionOne {
+    uint32_t                        headerSize;
+    VkPipelineCacheHeaderVersion    headerVersion;
+    uint32_t                        vendorID;
+    uint32_t                        deviceID;
+    uint8_t                         pipelineCacheUUID[VK_UUID_SIZE];
+} VkPipelineCacheHeaderVersionOne;
+
 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
     void*                                       pUserData,
     size_t                                      size,
@@ -4492,6 +4503,7 @@ typedef enum VkExternalMemoryHandleTypeFlagBits {
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
+    VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
@@ -12371,7 +12383,7 @@ typedef struct VkPhysicalDeviceDrmPropertiesEXT {
 
 
 #define VK_HUAWEI_subpass_shading 1
-#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 0
+#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 2
 #define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
 typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI {
     VkStructureType    sType;
@@ -12392,11 +12404,12 @@ typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI {
     uint32_t           maxSubpassShadingWorkgroupSizeAspectRatio;
 } VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
 
-typedef VkResult (VKAPI_PTR *PFN_vkGetSubpassShadingMaxWorkgroupSizeHUAWEI)(VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
+typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
 typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer);
 
 #ifndef VK_NO_PROTOTYPES
-VKAPI_ATTR VkResult VKAPI_CALL vkGetSubpassShadingMaxWorkgroupSizeHUAWEI(
+VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
+    VkDevice                                    device,
     VkRenderPass                                renderpass,
     VkExtent2D*                                 pMaxWorkgroupSize);
 
@@ -12405,6 +12418,33 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI(
 #endif
 
 
+#define VK_NV_external_memory_rdma 1
+typedef void* VkRemoteAddressNV;
+#define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
+#define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
+typedef struct VkMemoryGetRemoteAddressInfoNV {
+    VkStructureType                       sType;
+    const void*                           pNext;
+    VkDeviceMemory                        memory;
+    VkExternalMemoryHandleTypeFlagBits    handleType;
+} VkMemoryGetRemoteAddressInfoNV;
+
+typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           externalMemoryRDMA;
+} VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
+
+typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* getMemoryRemoteAddressInfo, VkRemoteAddressNV* pAddress);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV(
+    VkDevice                                    device,
+    const VkMemoryGetRemoteAddressInfoNV*       getMemoryRemoteAddressInfo,
+    VkRemoteAddressNV*                          pAddress);
+#endif
+
+
 #define VK_EXT_extended_dynamic_state2 1
 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"