@@ -312,6 +312,9 @@ VKAPI_ATTR bool VKAPI_CALL loader_icd_init_entries(struct loader_instance* inst,
312312 // ---- VK_NV_optical_flow extension commands
313313 LOOKUP_GIPA(GetPhysicalDeviceOpticalFlowImageFormatsNV);
314314
315+ // ---- VK_NV_cooperative_vector extension commands
316+ LOOKUP_GIPA(GetPhysicalDeviceCooperativeVectorPropertiesNV);
317+
315318 // ---- VK_NV_cooperative_matrix2 extension commands
316319 LOOKUP_GIPA(GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV);
317320
@@ -1190,6 +1193,10 @@ VKAPI_ATTR void VKAPI_CALL loader_init_device_extension_dispatch_table(struct lo
11901193 table->GetFramebufferTilePropertiesQCOM = (PFN_vkGetFramebufferTilePropertiesQCOM)gdpa(dev, "vkGetFramebufferTilePropertiesQCOM");
11911194 table->GetDynamicRenderingTilePropertiesQCOM = (PFN_vkGetDynamicRenderingTilePropertiesQCOM)gdpa(dev, "vkGetDynamicRenderingTilePropertiesQCOM");
11921195
1196+ // ---- VK_NV_cooperative_vector extension commands
1197+ table->ConvertCooperativeVectorMatrixNV = (PFN_vkConvertCooperativeVectorMatrixNV)gdpa(dev, "vkConvertCooperativeVectorMatrixNV");
1198+ table->CmdConvertCooperativeVectorMatrixNV = (PFN_vkCmdConvertCooperativeVectorMatrixNV)gdpa(dev, "vkCmdConvertCooperativeVectorMatrixNV");
1199+
11931200 // ---- VK_NV_low_latency2 extension commands
11941201 table->SetLatencySleepModeNV = (PFN_vkSetLatencySleepModeNV)gdpa(dev, "vkSetLatencySleepModeNV");
11951202 table->LatencySleepNV = (PFN_vkLatencySleepNV)gdpa(dev, "vkLatencySleepNV");
@@ -1205,6 +1212,14 @@ VKAPI_ATTR void VKAPI_CALL loader_init_device_extension_dispatch_table(struct lo
12051212 table->GetScreenBufferPropertiesQNX = (PFN_vkGetScreenBufferPropertiesQNX)gdpa(dev, "vkGetScreenBufferPropertiesQNX");
12061213#endif // VK_USE_PLATFORM_SCREEN_QNX
12071214
1215+ // ---- VK_NV_cluster_acceleration_structure extension commands
1216+ table->GetClusterAccelerationStructureBuildSizesNV = (PFN_vkGetClusterAccelerationStructureBuildSizesNV)gdpa(dev, "vkGetClusterAccelerationStructureBuildSizesNV");
1217+ table->CmdBuildClusterAccelerationStructureIndirectNV = (PFN_vkCmdBuildClusterAccelerationStructureIndirectNV)gdpa(dev, "vkCmdBuildClusterAccelerationStructureIndirectNV");
1218+
1219+ // ---- VK_NV_partitioned_acceleration_structure extension commands
1220+ table->GetPartitionedAccelerationStructuresBuildSizesNV = (PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV)gdpa(dev, "vkGetPartitionedAccelerationStructuresBuildSizesNV");
1221+ table->CmdBuildPartitionedAccelerationStructuresNV = (PFN_vkCmdBuildPartitionedAccelerationStructuresNV)gdpa(dev, "vkCmdBuildPartitionedAccelerationStructuresNV");
1222+
12081223 // ---- VK_EXT_device_generated_commands extension commands
12091224 table->GetGeneratedCommandsMemoryRequirementsEXT = (PFN_vkGetGeneratedCommandsMemoryRequirementsEXT)gdpa(dev, "vkGetGeneratedCommandsMemoryRequirementsEXT");
12101225 table->CmdPreprocessGeneratedCommandsEXT = (PFN_vkCmdPreprocessGeneratedCommandsEXT)gdpa(dev, "vkCmdPreprocessGeneratedCommandsEXT");
@@ -1513,6 +1528,9 @@ VKAPI_ATTR void VKAPI_CALL loader_init_instance_extension_dispatch_table(VkLayer
15131528 // ---- VK_NV_optical_flow extension commands
15141529 table->GetPhysicalDeviceOpticalFlowImageFormatsNV = (PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)gpa(inst, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV");
15151530
1531+ // ---- VK_NV_cooperative_vector extension commands
1532+ table->GetPhysicalDeviceCooperativeVectorPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV)gpa(inst, "vkGetPhysicalDeviceCooperativeVectorPropertiesNV");
1533+
15161534 // ---- VK_NV_cooperative_matrix2 extension commands
15171535 table->GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)gpa(inst, "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV");
15181536}
@@ -3057,6 +3075,10 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDis
30573075 if (!strcmp(name, "GetFramebufferTilePropertiesQCOM")) return (void *)table->GetFramebufferTilePropertiesQCOM;
30583076 if (!strcmp(name, "GetDynamicRenderingTilePropertiesQCOM")) return (void *)table->GetDynamicRenderingTilePropertiesQCOM;
30593077
3078+ // ---- VK_NV_cooperative_vector extension commands
3079+ if (!strcmp(name, "ConvertCooperativeVectorMatrixNV")) return (void *)table->ConvertCooperativeVectorMatrixNV;
3080+ if (!strcmp(name, "CmdConvertCooperativeVectorMatrixNV")) return (void *)table->CmdConvertCooperativeVectorMatrixNV;
3081+
30603082 // ---- VK_NV_low_latency2 extension commands
30613083 if (!strcmp(name, "SetLatencySleepModeNV")) return (void *)table->SetLatencySleepModeNV;
30623084 if (!strcmp(name, "LatencySleepNV")) return (void *)table->LatencySleepNV;
@@ -3072,6 +3094,14 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDis
30723094 if (!strcmp(name, "GetScreenBufferPropertiesQNX")) return (void *)table->GetScreenBufferPropertiesQNX;
30733095#endif // VK_USE_PLATFORM_SCREEN_QNX
30743096
3097+ // ---- VK_NV_cluster_acceleration_structure extension commands
3098+ if (!strcmp(name, "GetClusterAccelerationStructureBuildSizesNV")) return (void *)table->GetClusterAccelerationStructureBuildSizesNV;
3099+ if (!strcmp(name, "CmdBuildClusterAccelerationStructureIndirectNV")) return (void *)table->CmdBuildClusterAccelerationStructureIndirectNV;
3100+
3101+ // ---- VK_NV_partitioned_acceleration_structure extension commands
3102+ if (!strcmp(name, "GetPartitionedAccelerationStructuresBuildSizesNV")) return (void *)table->GetPartitionedAccelerationStructuresBuildSizesNV;
3103+ if (!strcmp(name, "CmdBuildPartitionedAccelerationStructuresNV")) return (void *)table->CmdBuildPartitionedAccelerationStructuresNV;
3104+
30753105 // ---- VK_EXT_device_generated_commands extension commands
30763106 if (!strcmp(name, "GetGeneratedCommandsMemoryRequirementsEXT")) return (void *)table->GetGeneratedCommandsMemoryRequirementsEXT;
30773107 if (!strcmp(name, "CmdPreprocessGeneratedCommandsEXT")) return (void *)table->CmdPreprocessGeneratedCommandsEXT;
@@ -3385,6 +3415,9 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_instance_dispatch_table(const VkLayerI
33853415 // ---- VK_NV_optical_flow extension commands
33863416 if (!strcmp(name, "GetPhysicalDeviceOpticalFlowImageFormatsNV")) return (void *)table->GetPhysicalDeviceOpticalFlowImageFormatsNV;
33873417
3418+ // ---- VK_NV_cooperative_vector extension commands
3419+ if (!strcmp(name, "GetPhysicalDeviceCooperativeVectorPropertiesNV")) return (void *)table->GetPhysicalDeviceCooperativeVectorPropertiesNV;
3420+
33883421 // ---- VK_NV_cooperative_matrix2 extension commands
33893422 if (!strcmp(name, "GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV")) return (void *)table->GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV;
33903423
@@ -9581,6 +9614,66 @@ VKAPI_ATTR VkResult VKAPI_CALL GetDynamicRenderingTilePropertiesQCOM(
95819614}
95829615
95839616
9617+ // ---- VK_NV_cooperative_vector extension trampoline/terminators
9618+
9619+ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeVectorPropertiesNV(
9620+ VkPhysicalDevice physicalDevice,
9621+ uint32_t* pPropertyCount,
9622+ VkCooperativeVectorPropertiesNV* pProperties) {
9623+ const VkLayerInstanceDispatchTable *disp;
9624+ VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
9625+ if (VK_NULL_HANDLE == unwrapped_phys_dev) {
9626+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9627+ "vkGetPhysicalDeviceCooperativeVectorPropertiesNV: Invalid physicalDevice "
9628+ "[VUID-vkGetPhysicalDeviceCooperativeVectorPropertiesNV-physicalDevice-parameter]");
9629+ abort(); /* Intentionally fail so user can correct issue. */
9630+ }
9631+ disp = loader_get_instance_layer_dispatch(physicalDevice);
9632+ return disp->GetPhysicalDeviceCooperativeVectorPropertiesNV(unwrapped_phys_dev, pPropertyCount, pProperties);
9633+ }
9634+
9635+ VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeVectorPropertiesNV(
9636+ VkPhysicalDevice physicalDevice,
9637+ uint32_t* pPropertyCount,
9638+ VkCooperativeVectorPropertiesNV* pProperties) {
9639+ struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
9640+ struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
9641+ if (NULL == icd_term->dispatch.GetPhysicalDeviceCooperativeVectorPropertiesNV) {
9642+ loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
9643+ "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeVectorPropertiesNV");
9644+ abort(); /* Intentionally fail so user can correct issue. */
9645+ }
9646+ return icd_term->dispatch.GetPhysicalDeviceCooperativeVectorPropertiesNV(phys_dev_term->phys_dev, pPropertyCount, pProperties);
9647+ }
9648+
9649+ VKAPI_ATTR VkResult VKAPI_CALL ConvertCooperativeVectorMatrixNV(
9650+ VkDevice device,
9651+ const VkConvertCooperativeVectorMatrixInfoNV* pInfo) {
9652+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9653+ if (NULL == disp) {
9654+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9655+ "vkConvertCooperativeVectorMatrixNV: Invalid device "
9656+ "[VUID-vkConvertCooperativeVectorMatrixNV-device-parameter]");
9657+ abort(); /* Intentionally fail so user can correct issue. */
9658+ }
9659+ return disp->ConvertCooperativeVectorMatrixNV(device, pInfo);
9660+ }
9661+
9662+ VKAPI_ATTR void VKAPI_CALL CmdConvertCooperativeVectorMatrixNV(
9663+ VkCommandBuffer commandBuffer,
9664+ uint32_t infoCount,
9665+ const VkConvertCooperativeVectorMatrixInfoNV* pInfos) {
9666+ const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9667+ if (NULL == disp) {
9668+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9669+ "vkCmdConvertCooperativeVectorMatrixNV: Invalid commandBuffer "
9670+ "[VUID-vkCmdConvertCooperativeVectorMatrixNV-commandBuffer-parameter]");
9671+ abort(); /* Intentionally fail so user can correct issue. */
9672+ }
9673+ disp->CmdConvertCooperativeVectorMatrixNV(commandBuffer, infoCount, pInfos);
9674+ }
9675+
9676+
95849677// ---- VK_NV_low_latency2 extension trampoline/terminators
95859678
95869679VKAPI_ATTR VkResult VKAPI_CALL SetLatencySleepModeNV(
@@ -9688,6 +9781,66 @@ VKAPI_ATTR VkResult VKAPI_CALL GetScreenBufferPropertiesQNX(
96889781
96899782#endif // VK_USE_PLATFORM_SCREEN_QNX
96909783
9784+ // ---- VK_NV_cluster_acceleration_structure extension trampoline/terminators
9785+
9786+ VKAPI_ATTR void VKAPI_CALL GetClusterAccelerationStructureBuildSizesNV(
9787+ VkDevice device,
9788+ const VkClusterAccelerationStructureInputInfoNV* pInfo,
9789+ VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) {
9790+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9791+ if (NULL == disp) {
9792+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9793+ "vkGetClusterAccelerationStructureBuildSizesNV: Invalid device "
9794+ "[VUID-vkGetClusterAccelerationStructureBuildSizesNV-device-parameter]");
9795+ abort(); /* Intentionally fail so user can correct issue. */
9796+ }
9797+ disp->GetClusterAccelerationStructureBuildSizesNV(device, pInfo, pSizeInfo);
9798+ }
9799+
9800+ VKAPI_ATTR void VKAPI_CALL CmdBuildClusterAccelerationStructureIndirectNV(
9801+ VkCommandBuffer commandBuffer,
9802+ const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos) {
9803+ const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9804+ if (NULL == disp) {
9805+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9806+ "vkCmdBuildClusterAccelerationStructureIndirectNV: Invalid commandBuffer "
9807+ "[VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-commandBuffer-parameter]");
9808+ abort(); /* Intentionally fail so user can correct issue. */
9809+ }
9810+ disp->CmdBuildClusterAccelerationStructureIndirectNV(commandBuffer, pCommandInfos);
9811+ }
9812+
9813+
9814+ // ---- VK_NV_partitioned_acceleration_structure extension trampoline/terminators
9815+
9816+ VKAPI_ATTR void VKAPI_CALL GetPartitionedAccelerationStructuresBuildSizesNV(
9817+ VkDevice device,
9818+ const VkPartitionedAccelerationStructureInstancesInputNV* pInfo,
9819+ VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) {
9820+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9821+ if (NULL == disp) {
9822+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9823+ "vkGetPartitionedAccelerationStructuresBuildSizesNV: Invalid device "
9824+ "[VUID-vkGetPartitionedAccelerationStructuresBuildSizesNV-device-parameter]");
9825+ abort(); /* Intentionally fail so user can correct issue. */
9826+ }
9827+ disp->GetPartitionedAccelerationStructuresBuildSizesNV(device, pInfo, pSizeInfo);
9828+ }
9829+
9830+ VKAPI_ATTR void VKAPI_CALL CmdBuildPartitionedAccelerationStructuresNV(
9831+ VkCommandBuffer commandBuffer,
9832+ const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo) {
9833+ const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9834+ if (NULL == disp) {
9835+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9836+ "vkCmdBuildPartitionedAccelerationStructuresNV: Invalid commandBuffer "
9837+ "[VUID-vkCmdBuildPartitionedAccelerationStructuresNV-commandBuffer-parameter]");
9838+ abort(); /* Intentionally fail so user can correct issue. */
9839+ }
9840+ disp->CmdBuildPartitionedAccelerationStructuresNV(commandBuffer, pBuildInfo);
9841+ }
9842+
9843+
96919844// ---- VK_EXT_device_generated_commands extension trampoline/terminators
96929845
96939846VKAPI_ATTR void VKAPI_CALL GetGeneratedCommandsMemoryRequirementsEXT(
@@ -12199,6 +12352,20 @@ bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *na
1219912352 return true;
1220012353 }
1220112354
12355+ // ---- VK_NV_cooperative_vector extension commands
12356+ if (!strcmp("vkGetPhysicalDeviceCooperativeVectorPropertiesNV", name)) {
12357+ *addr = (void *)GetPhysicalDeviceCooperativeVectorPropertiesNV;
12358+ return true;
12359+ }
12360+ if (!strcmp("vkConvertCooperativeVectorMatrixNV", name)) {
12361+ *addr = (void *)ConvertCooperativeVectorMatrixNV;
12362+ return true;
12363+ }
12364+ if (!strcmp("vkCmdConvertCooperativeVectorMatrixNV", name)) {
12365+ *addr = (void *)CmdConvertCooperativeVectorMatrixNV;
12366+ return true;
12367+ }
12368+
1220212369 // ---- VK_NV_low_latency2 extension commands
1220312370 if (!strcmp("vkSetLatencySleepModeNV", name)) {
1220412371 *addr = (void *)SetLatencySleepModeNV;
@@ -12235,6 +12402,26 @@ bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *na
1223512402 }
1223612403#endif // VK_USE_PLATFORM_SCREEN_QNX
1223712404
12405+ // ---- VK_NV_cluster_acceleration_structure extension commands
12406+ if (!strcmp("vkGetClusterAccelerationStructureBuildSizesNV", name)) {
12407+ *addr = (void *)GetClusterAccelerationStructureBuildSizesNV;
12408+ return true;
12409+ }
12410+ if (!strcmp("vkCmdBuildClusterAccelerationStructureIndirectNV", name)) {
12411+ *addr = (void *)CmdBuildClusterAccelerationStructureIndirectNV;
12412+ return true;
12413+ }
12414+
12415+ // ---- VK_NV_partitioned_acceleration_structure extension commands
12416+ if (!strcmp("vkGetPartitionedAccelerationStructuresBuildSizesNV", name)) {
12417+ *addr = (void *)GetPartitionedAccelerationStructuresBuildSizesNV;
12418+ return true;
12419+ }
12420+ if (!strcmp("vkCmdBuildPartitionedAccelerationStructuresNV", name)) {
12421+ *addr = (void *)CmdBuildPartitionedAccelerationStructuresNV;
12422+ return true;
12423+ }
12424+
1223812425 // ---- VK_EXT_device_generated_commands extension commands
1223912426 if (!strcmp("vkGetGeneratedCommandsMemoryRequirementsEXT", name)) {
1224012427 *addr = (void *)GetGeneratedCommandsMemoryRequirementsEXT;
@@ -12796,6 +12983,9 @@ const VkLayerInstanceDispatchTable instance_disp = {
1279612983 // ---- VK_NV_optical_flow extension commands
1279712984 .GetPhysicalDeviceOpticalFlowImageFormatsNV = terminator_GetPhysicalDeviceOpticalFlowImageFormatsNV,
1279812985
12986+ // ---- VK_NV_cooperative_vector extension commands
12987+ .GetPhysicalDeviceCooperativeVectorPropertiesNV = terminator_GetPhysicalDeviceCooperativeVectorPropertiesNV,
12988+
1279912989 // ---- VK_NV_cooperative_matrix2 extension commands
1280012990 .GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = terminator_GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV,
1280112991};
0 commit comments