@@ -925,6 +925,20 @@ VKAPI_ATTR void VKAPI_CALL loader_init_device_extension_dispatch_table(struct lo
925925 table->GetMemoryAndroidHardwareBufferANDROID = (PFN_vkGetMemoryAndroidHardwareBufferANDROID)gdpa(dev, "vkGetMemoryAndroidHardwareBufferANDROID");
926926#endif // VK_USE_PLATFORM_ANDROID_KHR
927927
928+ // ---- VK_AMD_gpa_interface extension commands
929+ table->CreateGpaSessionAMD = (PFN_vkCreateGpaSessionAMD)gdpa(dev, "vkCreateGpaSessionAMD");
930+ table->DestroyGpaSessionAMD = (PFN_vkDestroyGpaSessionAMD)gdpa(dev, "vkDestroyGpaSessionAMD");
931+ table->SetGpaDeviceClockModeAMD = (PFN_vkSetGpaDeviceClockModeAMD)gdpa(dev, "vkSetGpaDeviceClockModeAMD");
932+ table->GetGpaDeviceClockInfoAMD = (PFN_vkGetGpaDeviceClockInfoAMD)gdpa(dev, "vkGetGpaDeviceClockInfoAMD");
933+ table->CmdBeginGpaSessionAMD = (PFN_vkCmdBeginGpaSessionAMD)gdpa(dev, "vkCmdBeginGpaSessionAMD");
934+ table->CmdEndGpaSessionAMD = (PFN_vkCmdEndGpaSessionAMD)gdpa(dev, "vkCmdEndGpaSessionAMD");
935+ table->CmdBeginGpaSampleAMD = (PFN_vkCmdBeginGpaSampleAMD)gdpa(dev, "vkCmdBeginGpaSampleAMD");
936+ table->CmdEndGpaSampleAMD = (PFN_vkCmdEndGpaSampleAMD)gdpa(dev, "vkCmdEndGpaSampleAMD");
937+ table->GetGpaSessionStatusAMD = (PFN_vkGetGpaSessionStatusAMD)gdpa(dev, "vkGetGpaSessionStatusAMD");
938+ table->GetGpaSessionResultsAMD = (PFN_vkGetGpaSessionResultsAMD)gdpa(dev, "vkGetGpaSessionResultsAMD");
939+ table->ResetGpaSessionAMD = (PFN_vkResetGpaSessionAMD)gdpa(dev, "vkResetGpaSessionAMD");
940+ table->CmdCopyGpaSessionResultsAMD = (PFN_vkCmdCopyGpaSessionResultsAMD)gdpa(dev, "vkCmdCopyGpaSessionResultsAMD");
941+
928942 // ---- VK_AMDX_shader_enqueue extension commands
929943#if defined(VK_ENABLE_BETA_EXTENSIONS)
930944 table->CreateExecutionGraphPipelinesAMDX = (PFN_vkCreateExecutionGraphPipelinesAMDX)gdpa(dev, "vkCreateExecutionGraphPipelinesAMDX");
@@ -2998,6 +3012,20 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDis
29983012 if (!strcmp(name, "GetMemoryAndroidHardwareBufferANDROID")) return (void *)table->GetMemoryAndroidHardwareBufferANDROID;
29993013#endif // VK_USE_PLATFORM_ANDROID_KHR
30003014
3015+ // ---- VK_AMD_gpa_interface extension commands
3016+ if (!strcmp(name, "CreateGpaSessionAMD")) return (void *)table->CreateGpaSessionAMD;
3017+ if (!strcmp(name, "DestroyGpaSessionAMD")) return (void *)table->DestroyGpaSessionAMD;
3018+ if (!strcmp(name, "SetGpaDeviceClockModeAMD")) return (void *)table->SetGpaDeviceClockModeAMD;
3019+ if (!strcmp(name, "GetGpaDeviceClockInfoAMD")) return (void *)table->GetGpaDeviceClockInfoAMD;
3020+ if (!strcmp(name, "CmdBeginGpaSessionAMD")) return (void *)table->CmdBeginGpaSessionAMD;
3021+ if (!strcmp(name, "CmdEndGpaSessionAMD")) return (void *)table->CmdEndGpaSessionAMD;
3022+ if (!strcmp(name, "CmdBeginGpaSampleAMD")) return (void *)table->CmdBeginGpaSampleAMD;
3023+ if (!strcmp(name, "CmdEndGpaSampleAMD")) return (void *)table->CmdEndGpaSampleAMD;
3024+ if (!strcmp(name, "GetGpaSessionStatusAMD")) return (void *)table->GetGpaSessionStatusAMD;
3025+ if (!strcmp(name, "GetGpaSessionResultsAMD")) return (void *)table->GetGpaSessionResultsAMD;
3026+ if (!strcmp(name, "ResetGpaSessionAMD")) return (void *)table->ResetGpaSessionAMD;
3027+ if (!strcmp(name, "CmdCopyGpaSessionResultsAMD")) return (void *)table->CmdCopyGpaSessionResultsAMD;
3028+
30013029 // ---- VK_AMDX_shader_enqueue extension commands
30023030#if defined(VK_ENABLE_BETA_EXTENSIONS)
30033031 if (!strcmp(name, "CreateExecutionGraphPipelinesAMDX")) return (void *)table->CreateExecutionGraphPipelinesAMDX;
@@ -7124,6 +7152,174 @@ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryAndroidHardwareBufferANDROID(
71247152
71257153#endif // VK_USE_PLATFORM_ANDROID_KHR
71267154
7155+ // ---- VK_AMD_gpa_interface extension trampoline/terminators
7156+
7157+ VKAPI_ATTR VkResult VKAPI_CALL CreateGpaSessionAMD(
7158+ VkDevice device,
7159+ const VkGpaSessionCreateInfoAMD* pCreateInfo,
7160+ const VkAllocationCallbacks* pAllocator,
7161+ VkGpaSessionAMD* pGpaSession) {
7162+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7163+ if (NULL == disp) {
7164+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7165+ "vkCreateGpaSessionAMD: Invalid device "
7166+ "[VUID-vkCreateGpaSessionAMD-device-parameter]");
7167+ abort(); /* Intentionally fail so user can correct issue. */
7168+ }
7169+ return disp->CreateGpaSessionAMD(device, pCreateInfo, pAllocator, pGpaSession);
7170+ }
7171+
7172+ VKAPI_ATTR void VKAPI_CALL DestroyGpaSessionAMD(
7173+ VkDevice device,
7174+ VkGpaSessionAMD gpaSession,
7175+ const VkAllocationCallbacks* pAllocator) {
7176+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7177+ if (NULL == disp) {
7178+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7179+ "vkDestroyGpaSessionAMD: Invalid device "
7180+ "[VUID-vkDestroyGpaSessionAMD-device-parameter]");
7181+ abort(); /* Intentionally fail so user can correct issue. */
7182+ }
7183+ disp->DestroyGpaSessionAMD(device, gpaSession, pAllocator);
7184+ }
7185+
7186+ VKAPI_ATTR VkResult VKAPI_CALL SetGpaDeviceClockModeAMD(
7187+ VkDevice device,
7188+ VkGpaDeviceClockModeInfoAMD* pInfo) {
7189+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7190+ if (NULL == disp) {
7191+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7192+ "vkSetGpaDeviceClockModeAMD: Invalid device "
7193+ "[VUID-vkSetGpaDeviceClockModeAMD-device-parameter]");
7194+ abort(); /* Intentionally fail so user can correct issue. */
7195+ }
7196+ return disp->SetGpaDeviceClockModeAMD(device, pInfo);
7197+ }
7198+
7199+ VKAPI_ATTR VkResult VKAPI_CALL GetGpaDeviceClockInfoAMD(
7200+ VkDevice device,
7201+ VkGpaDeviceGetClockInfoAMD* pInfo) {
7202+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7203+ if (NULL == disp) {
7204+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7205+ "vkGetGpaDeviceClockInfoAMD: Invalid device "
7206+ "[VUID-vkGetGpaDeviceClockInfoAMD-device-parameter]");
7207+ abort(); /* Intentionally fail so user can correct issue. */
7208+ }
7209+ return disp->GetGpaDeviceClockInfoAMD(device, pInfo);
7210+ }
7211+
7212+ VKAPI_ATTR VkResult VKAPI_CALL CmdBeginGpaSessionAMD(
7213+ VkCommandBuffer commandBuffer,
7214+ VkGpaSessionAMD gpaSession) {
7215+ const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7216+ if (NULL == disp) {
7217+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7218+ "vkCmdBeginGpaSessionAMD: Invalid commandBuffer "
7219+ "[VUID-vkCmdBeginGpaSessionAMD-commandBuffer-parameter]");
7220+ abort(); /* Intentionally fail so user can correct issue. */
7221+ }
7222+ return disp->CmdBeginGpaSessionAMD(commandBuffer, gpaSession);
7223+ }
7224+
7225+ VKAPI_ATTR VkResult VKAPI_CALL CmdEndGpaSessionAMD(
7226+ VkCommandBuffer commandBuffer,
7227+ VkGpaSessionAMD gpaSession) {
7228+ const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7229+ if (NULL == disp) {
7230+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7231+ "vkCmdEndGpaSessionAMD: Invalid commandBuffer "
7232+ "[VUID-vkCmdEndGpaSessionAMD-commandBuffer-parameter]");
7233+ abort(); /* Intentionally fail so user can correct issue. */
7234+ }
7235+ return disp->CmdEndGpaSessionAMD(commandBuffer, gpaSession);
7236+ }
7237+
7238+ VKAPI_ATTR VkResult VKAPI_CALL CmdBeginGpaSampleAMD(
7239+ VkCommandBuffer commandBuffer,
7240+ VkGpaSessionAMD gpaSession,
7241+ const VkGpaSampleBeginInfoAMD* pGpaSampleBeginInfo,
7242+ uint32_t* pSampleID) {
7243+ const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7244+ if (NULL == disp) {
7245+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7246+ "vkCmdBeginGpaSampleAMD: Invalid commandBuffer "
7247+ "[VUID-vkCmdBeginGpaSampleAMD-commandBuffer-parameter]");
7248+ abort(); /* Intentionally fail so user can correct issue. */
7249+ }
7250+ return disp->CmdBeginGpaSampleAMD(commandBuffer, gpaSession, pGpaSampleBeginInfo, pSampleID);
7251+ }
7252+
7253+ VKAPI_ATTR void VKAPI_CALL CmdEndGpaSampleAMD(
7254+ VkCommandBuffer commandBuffer,
7255+ VkGpaSessionAMD gpaSession,
7256+ uint32_t sampleID) {
7257+ const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7258+ if (NULL == disp) {
7259+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7260+ "vkCmdEndGpaSampleAMD: Invalid commandBuffer "
7261+ "[VUID-vkCmdEndGpaSampleAMD-commandBuffer-parameter]");
7262+ abort(); /* Intentionally fail so user can correct issue. */
7263+ }
7264+ disp->CmdEndGpaSampleAMD(commandBuffer, gpaSession, sampleID);
7265+ }
7266+
7267+ VKAPI_ATTR VkResult VKAPI_CALL GetGpaSessionStatusAMD(
7268+ VkDevice device,
7269+ VkGpaSessionAMD gpaSession) {
7270+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7271+ if (NULL == disp) {
7272+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7273+ "vkGetGpaSessionStatusAMD: Invalid device "
7274+ "[VUID-vkGetGpaSessionStatusAMD-device-parameter]");
7275+ abort(); /* Intentionally fail so user can correct issue. */
7276+ }
7277+ return disp->GetGpaSessionStatusAMD(device, gpaSession);
7278+ }
7279+
7280+ VKAPI_ATTR VkResult VKAPI_CALL GetGpaSessionResultsAMD(
7281+ VkDevice device,
7282+ VkGpaSessionAMD gpaSession,
7283+ uint32_t sampleID,
7284+ size_t* pSizeInBytes,
7285+ void* pData) {
7286+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7287+ if (NULL == disp) {
7288+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7289+ "vkGetGpaSessionResultsAMD: Invalid device "
7290+ "[VUID-vkGetGpaSessionResultsAMD-device-parameter]");
7291+ abort(); /* Intentionally fail so user can correct issue. */
7292+ }
7293+ return disp->GetGpaSessionResultsAMD(device, gpaSession, sampleID, pSizeInBytes, pData);
7294+ }
7295+
7296+ VKAPI_ATTR VkResult VKAPI_CALL ResetGpaSessionAMD(
7297+ VkDevice device,
7298+ VkGpaSessionAMD gpaSession) {
7299+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7300+ if (NULL == disp) {
7301+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7302+ "vkResetGpaSessionAMD: Invalid device "
7303+ "[VUID-vkResetGpaSessionAMD-device-parameter]");
7304+ abort(); /* Intentionally fail so user can correct issue. */
7305+ }
7306+ return disp->ResetGpaSessionAMD(device, gpaSession);
7307+ }
7308+
7309+ VKAPI_ATTR void VKAPI_CALL CmdCopyGpaSessionResultsAMD(
7310+ VkCommandBuffer commandBuffer,
7311+ VkGpaSessionAMD gpaSession) {
7312+ const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7313+ if (NULL == disp) {
7314+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7315+ "vkCmdCopyGpaSessionResultsAMD: Invalid commandBuffer "
7316+ "[VUID-vkCmdCopyGpaSessionResultsAMD-commandBuffer-parameter]");
7317+ abort(); /* Intentionally fail so user can correct issue. */
7318+ }
7319+ disp->CmdCopyGpaSessionResultsAMD(commandBuffer, gpaSession);
7320+ }
7321+
7322+
71277323// ---- VK_AMDX_shader_enqueue extension trampoline/terminators
71287324
71297325#if defined(VK_ENABLE_BETA_EXTENSIONS)
@@ -13526,6 +13722,56 @@ bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *na
1352613722 }
1352713723#endif // VK_USE_PLATFORM_ANDROID_KHR
1352813724
13725+ // ---- VK_AMD_gpa_interface extension commands
13726+ if (!strcmp("vkCreateGpaSessionAMD", name)) {
13727+ *addr = (void *)CreateGpaSessionAMD;
13728+ return true;
13729+ }
13730+ if (!strcmp("vkDestroyGpaSessionAMD", name)) {
13731+ *addr = (void *)DestroyGpaSessionAMD;
13732+ return true;
13733+ }
13734+ if (!strcmp("vkSetGpaDeviceClockModeAMD", name)) {
13735+ *addr = (void *)SetGpaDeviceClockModeAMD;
13736+ return true;
13737+ }
13738+ if (!strcmp("vkGetGpaDeviceClockInfoAMD", name)) {
13739+ *addr = (void *)GetGpaDeviceClockInfoAMD;
13740+ return true;
13741+ }
13742+ if (!strcmp("vkCmdBeginGpaSessionAMD", name)) {
13743+ *addr = (void *)CmdBeginGpaSessionAMD;
13744+ return true;
13745+ }
13746+ if (!strcmp("vkCmdEndGpaSessionAMD", name)) {
13747+ *addr = (void *)CmdEndGpaSessionAMD;
13748+ return true;
13749+ }
13750+ if (!strcmp("vkCmdBeginGpaSampleAMD", name)) {
13751+ *addr = (void *)CmdBeginGpaSampleAMD;
13752+ return true;
13753+ }
13754+ if (!strcmp("vkCmdEndGpaSampleAMD", name)) {
13755+ *addr = (void *)CmdEndGpaSampleAMD;
13756+ return true;
13757+ }
13758+ if (!strcmp("vkGetGpaSessionStatusAMD", name)) {
13759+ *addr = (void *)GetGpaSessionStatusAMD;
13760+ return true;
13761+ }
13762+ if (!strcmp("vkGetGpaSessionResultsAMD", name)) {
13763+ *addr = (void *)GetGpaSessionResultsAMD;
13764+ return true;
13765+ }
13766+ if (!strcmp("vkResetGpaSessionAMD", name)) {
13767+ *addr = (void *)ResetGpaSessionAMD;
13768+ return true;
13769+ }
13770+ if (!strcmp("vkCmdCopyGpaSessionResultsAMD", name)) {
13771+ *addr = (void *)CmdCopyGpaSessionResultsAMD;
13772+ return true;
13773+ }
13774+
1352913775 // ---- VK_AMDX_shader_enqueue extension commands
1353013776#if defined(VK_ENABLE_BETA_EXTENSIONS)
1353113777 if (!strcmp("vkCreateExecutionGraphPipelinesAMDX", name)) {
0 commit comments