table->DestroyShaderEXT = (PFN_vkDestroyShaderEXT)gdpa(dev, "vkDestroyShaderEXT");
table->GetShaderBinaryDataEXT = (PFN_vkGetShaderBinaryDataEXT)gdpa(dev, "vkGetShaderBinaryDataEXT");
table->CmdBindShadersEXT = (PFN_vkCmdBindShadersEXT)gdpa(dev, "vkCmdBindShadersEXT");
+ table->CmdSetDepthClampRangeEXT = (PFN_vkCmdSetDepthClampRangeEXT)gdpa(dev, "vkCmdSetDepthClampRangeEXT");
// ---- VK_QCOM_tile_properties extension commands
table->GetFramebufferTilePropertiesQCOM = (PFN_vkGetFramebufferTilePropertiesQCOM)gdpa(dev, "vkGetFramebufferTilePropertiesQCOM");
table->GetScreenBufferPropertiesQNX = (PFN_vkGetScreenBufferPropertiesQNX)gdpa(dev, "vkGetScreenBufferPropertiesQNX");
#endif // VK_USE_PLATFORM_SCREEN_QNX
+ // ---- VK_EXT_device_generated_commands extension commands
+ table->GetGeneratedCommandsMemoryRequirementsEXT = (PFN_vkGetGeneratedCommandsMemoryRequirementsEXT)gdpa(dev, "vkGetGeneratedCommandsMemoryRequirementsEXT");
+ table->CmdPreprocessGeneratedCommandsEXT = (PFN_vkCmdPreprocessGeneratedCommandsEXT)gdpa(dev, "vkCmdPreprocessGeneratedCommandsEXT");
+ table->CmdExecuteGeneratedCommandsEXT = (PFN_vkCmdExecuteGeneratedCommandsEXT)gdpa(dev, "vkCmdExecuteGeneratedCommandsEXT");
+ table->CreateIndirectCommandsLayoutEXT = (PFN_vkCreateIndirectCommandsLayoutEXT)gdpa(dev, "vkCreateIndirectCommandsLayoutEXT");
+ table->DestroyIndirectCommandsLayoutEXT = (PFN_vkDestroyIndirectCommandsLayoutEXT)gdpa(dev, "vkDestroyIndirectCommandsLayoutEXT");
+ table->CreateIndirectExecutionSetEXT = (PFN_vkCreateIndirectExecutionSetEXT)gdpa(dev, "vkCreateIndirectExecutionSetEXT");
+ table->DestroyIndirectExecutionSetEXT = (PFN_vkDestroyIndirectExecutionSetEXT)gdpa(dev, "vkDestroyIndirectExecutionSetEXT");
+ table->UpdateIndirectExecutionSetPipelineEXT = (PFN_vkUpdateIndirectExecutionSetPipelineEXT)gdpa(dev, "vkUpdateIndirectExecutionSetPipelineEXT");
+ table->UpdateIndirectExecutionSetShaderEXT = (PFN_vkUpdateIndirectExecutionSetShaderEXT)gdpa(dev, "vkUpdateIndirectExecutionSetShaderEXT");
+
// ---- VK_KHR_acceleration_structure extension commands
table->CreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR)gdpa(dev, "vkCreateAccelerationStructureKHR");
table->DestroyAccelerationStructureKHR = (PFN_vkDestroyAccelerationStructureKHR)gdpa(dev, "vkDestroyAccelerationStructureKHR");
if (!strcmp(name, "DestroyShaderEXT")) return (void *)table->DestroyShaderEXT;
if (!strcmp(name, "GetShaderBinaryDataEXT")) return (void *)table->GetShaderBinaryDataEXT;
if (!strcmp(name, "CmdBindShadersEXT")) return (void *)table->CmdBindShadersEXT;
+ if (!strcmp(name, "CmdSetDepthClampRangeEXT")) return (void *)table->CmdSetDepthClampRangeEXT;
// ---- VK_QCOM_tile_properties extension commands
if (!strcmp(name, "GetFramebufferTilePropertiesQCOM")) return (void *)table->GetFramebufferTilePropertiesQCOM;
if (!strcmp(name, "GetScreenBufferPropertiesQNX")) return (void *)table->GetScreenBufferPropertiesQNX;
#endif // VK_USE_PLATFORM_SCREEN_QNX
+ // ---- VK_EXT_device_generated_commands extension commands
+ if (!strcmp(name, "GetGeneratedCommandsMemoryRequirementsEXT")) return (void *)table->GetGeneratedCommandsMemoryRequirementsEXT;
+ if (!strcmp(name, "CmdPreprocessGeneratedCommandsEXT")) return (void *)table->CmdPreprocessGeneratedCommandsEXT;
+ if (!strcmp(name, "CmdExecuteGeneratedCommandsEXT")) return (void *)table->CmdExecuteGeneratedCommandsEXT;
+ if (!strcmp(name, "CreateIndirectCommandsLayoutEXT")) return (void *)table->CreateIndirectCommandsLayoutEXT;
+ if (!strcmp(name, "DestroyIndirectCommandsLayoutEXT")) return (void *)table->DestroyIndirectCommandsLayoutEXT;
+ if (!strcmp(name, "CreateIndirectExecutionSetEXT")) return (void *)table->CreateIndirectExecutionSetEXT;
+ if (!strcmp(name, "DestroyIndirectExecutionSetEXT")) return (void *)table->DestroyIndirectExecutionSetEXT;
+ if (!strcmp(name, "UpdateIndirectExecutionSetPipelineEXT")) return (void *)table->UpdateIndirectExecutionSetPipelineEXT;
+ if (!strcmp(name, "UpdateIndirectExecutionSetShaderEXT")) return (void *)table->UpdateIndirectExecutionSetShaderEXT;
+
// ---- VK_KHR_acceleration_structure extension commands
if (!strcmp(name, "CreateAccelerationStructureKHR")) return (void *)table->CreateAccelerationStructureKHR;
if (!strcmp(name, "DestroyAccelerationStructureKHR")) return (void *)table->DestroyAccelerationStructureKHR;
disp->CmdBindShadersEXT(commandBuffer, stageCount, pStages, pShaders);
}
+VKAPI_ATTR void VKAPI_CALL CmdSetDepthClampRangeEXT(
+ VkCommandBuffer commandBuffer,
+ VkDepthClampModeEXT depthClampMode,
+ const VkDepthClampRangeEXT* pDepthClampRange) {
+ const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
+ if (NULL == disp) {
+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
+ "vkCmdSetDepthClampRangeEXT: Invalid commandBuffer "
+ "[VUID-vkCmdSetDepthClampRangeEXT-commandBuffer-parameter]");
+ abort(); /* Intentionally fail so user can correct issue. */
+ }
+ disp->CmdSetDepthClampRangeEXT(commandBuffer, depthClampMode, pDepthClampRange);
+}
+
// ---- VK_QCOM_tile_properties extension trampoline/terminators
#endif // VK_USE_PLATFORM_SCREEN_QNX
+// ---- VK_EXT_device_generated_commands extension trampoline/terminators
+
+VKAPI_ATTR void VKAPI_CALL GetGeneratedCommandsMemoryRequirementsEXT(
+ VkDevice device,
+ const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo,
+ VkMemoryRequirements2* pMemoryRequirements) {
+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
+ if (NULL == disp) {
+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
+ "vkGetGeneratedCommandsMemoryRequirementsEXT: Invalid device "
+ "[VUID-vkGetGeneratedCommandsMemoryRequirementsEXT-device-parameter]");
+ abort(); /* Intentionally fail so user can correct issue. */
+ }
+ disp->GetGeneratedCommandsMemoryRequirementsEXT(device, pInfo, pMemoryRequirements);
+}
+
+VKAPI_ATTR void VKAPI_CALL CmdPreprocessGeneratedCommandsEXT(
+ VkCommandBuffer commandBuffer,
+ const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo,
+ VkCommandBuffer stateCommandBuffer) {
+ const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
+ if (NULL == disp) {
+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
+ "vkCmdPreprocessGeneratedCommandsEXT: Invalid commandBuffer "
+ "[VUID-vkCmdPreprocessGeneratedCommandsEXT-commandBuffer-parameter]");
+ abort(); /* Intentionally fail so user can correct issue. */
+ }
+ disp->CmdPreprocessGeneratedCommandsEXT(commandBuffer, pGeneratedCommandsInfo, stateCommandBuffer);
+}
+
+VKAPI_ATTR void VKAPI_CALL CmdExecuteGeneratedCommandsEXT(
+ VkCommandBuffer commandBuffer,
+ VkBool32 isPreprocessed,
+ const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo) {
+ const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
+ if (NULL == disp) {
+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
+ "vkCmdExecuteGeneratedCommandsEXT: Invalid commandBuffer "
+ "[VUID-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-parameter]");
+ abort(); /* Intentionally fail so user can correct issue. */
+ }
+ disp->CmdExecuteGeneratedCommandsEXT(commandBuffer, isPreprocessed, pGeneratedCommandsInfo);
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectCommandsLayoutEXT(
+ VkDevice device,
+ const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo,
+ const VkAllocationCallbacks* pAllocator,
+ VkIndirectCommandsLayoutEXT* pIndirectCommandsLayout) {
+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
+ if (NULL == disp) {
+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
+ "vkCreateIndirectCommandsLayoutEXT: Invalid device "
+ "[VUID-vkCreateIndirectCommandsLayoutEXT-device-parameter]");
+ abort(); /* Intentionally fail so user can correct issue. */
+ }
+ return disp->CreateIndirectCommandsLayoutEXT(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
+}
+
+VKAPI_ATTR void VKAPI_CALL DestroyIndirectCommandsLayoutEXT(
+ VkDevice device,
+ VkIndirectCommandsLayoutEXT indirectCommandsLayout,
+ const VkAllocationCallbacks* pAllocator) {
+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
+ if (NULL == disp) {
+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
+ "vkDestroyIndirectCommandsLayoutEXT: Invalid device "
+ "[VUID-vkDestroyIndirectCommandsLayoutEXT-device-parameter]");
+ abort(); /* Intentionally fail so user can correct issue. */
+ }
+ disp->DestroyIndirectCommandsLayoutEXT(device, indirectCommandsLayout, pAllocator);
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectExecutionSetEXT(
+ VkDevice device,
+ const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo,
+ const VkAllocationCallbacks* pAllocator,
+ VkIndirectExecutionSetEXT* pIndirectExecutionSet) {
+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
+ if (NULL == disp) {
+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
+ "vkCreateIndirectExecutionSetEXT: Invalid device "
+ "[VUID-vkCreateIndirectExecutionSetEXT-device-parameter]");
+ abort(); /* Intentionally fail so user can correct issue. */
+ }
+ return disp->CreateIndirectExecutionSetEXT(device, pCreateInfo, pAllocator, pIndirectExecutionSet);
+}
+
+VKAPI_ATTR void VKAPI_CALL DestroyIndirectExecutionSetEXT(
+ VkDevice device,
+ VkIndirectExecutionSetEXT indirectExecutionSet,
+ const VkAllocationCallbacks* pAllocator) {
+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
+ if (NULL == disp) {
+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
+ "vkDestroyIndirectExecutionSetEXT: Invalid device "
+ "[VUID-vkDestroyIndirectExecutionSetEXT-device-parameter]");
+ abort(); /* Intentionally fail so user can correct issue. */
+ }
+ disp->DestroyIndirectExecutionSetEXT(device, indirectExecutionSet, pAllocator);
+}
+
+VKAPI_ATTR void VKAPI_CALL UpdateIndirectExecutionSetPipelineEXT(
+ VkDevice device,
+ VkIndirectExecutionSetEXT indirectExecutionSet,
+ uint32_t executionSetWriteCount,
+ const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites) {
+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
+ if (NULL == disp) {
+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
+ "vkUpdateIndirectExecutionSetPipelineEXT: Invalid device "
+ "[VUID-vkUpdateIndirectExecutionSetPipelineEXT-device-parameter]");
+ abort(); /* Intentionally fail so user can correct issue. */
+ }
+ disp->UpdateIndirectExecutionSetPipelineEXT(device, indirectExecutionSet, executionSetWriteCount, pExecutionSetWrites);
+}
+
+VKAPI_ATTR void VKAPI_CALL UpdateIndirectExecutionSetShaderEXT(
+ VkDevice device,
+ VkIndirectExecutionSetEXT indirectExecutionSet,
+ uint32_t executionSetWriteCount,
+ const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites) {
+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
+ if (NULL == disp) {
+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
+ "vkUpdateIndirectExecutionSetShaderEXT: Invalid device "
+ "[VUID-vkUpdateIndirectExecutionSetShaderEXT-device-parameter]");
+ abort(); /* Intentionally fail so user can correct issue. */
+ }
+ disp->UpdateIndirectExecutionSetShaderEXT(device, indirectExecutionSet, executionSetWriteCount, pExecutionSetWrites);
+}
+
+
// ---- VK_KHR_acceleration_structure extension trampoline/terminators
VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureKHR(
*addr = (void *)CmdBindShadersEXT;
return true;
}
+ if (!strcmp("vkCmdSetDepthClampRangeEXT", name)) {
+ *addr = (void *)CmdSetDepthClampRangeEXT;
+ return true;
+ }
// ---- VK_QCOM_tile_properties extension commands
if (!strcmp("vkGetFramebufferTilePropertiesQCOM", name)) {
}
#endif // VK_USE_PLATFORM_SCREEN_QNX
+ // ---- VK_EXT_device_generated_commands extension commands
+ if (!strcmp("vkGetGeneratedCommandsMemoryRequirementsEXT", name)) {
+ *addr = (void *)GetGeneratedCommandsMemoryRequirementsEXT;
+ return true;
+ }
+ if (!strcmp("vkCmdPreprocessGeneratedCommandsEXT", name)) {
+ *addr = (void *)CmdPreprocessGeneratedCommandsEXT;
+ return true;
+ }
+ if (!strcmp("vkCmdExecuteGeneratedCommandsEXT", name)) {
+ *addr = (void *)CmdExecuteGeneratedCommandsEXT;
+ return true;
+ }
+ if (!strcmp("vkCreateIndirectCommandsLayoutEXT", name)) {
+ *addr = (void *)CreateIndirectCommandsLayoutEXT;
+ return true;
+ }
+ if (!strcmp("vkDestroyIndirectCommandsLayoutEXT", name)) {
+ *addr = (void *)DestroyIndirectCommandsLayoutEXT;
+ return true;
+ }
+ if (!strcmp("vkCreateIndirectExecutionSetEXT", name)) {
+ *addr = (void *)CreateIndirectExecutionSetEXT;
+ return true;
+ }
+ if (!strcmp("vkDestroyIndirectExecutionSetEXT", name)) {
+ *addr = (void *)DestroyIndirectExecutionSetEXT;
+ return true;
+ }
+ if (!strcmp("vkUpdateIndirectExecutionSetPipelineEXT", name)) {
+ *addr = (void *)UpdateIndirectExecutionSetPipelineEXT;
+ return true;
+ }
+ if (!strcmp("vkUpdateIndirectExecutionSetShaderEXT", name)) {
+ *addr = (void *)UpdateIndirectExecutionSetShaderEXT;
+ return true;
+ }
+
// ---- VK_KHR_acceleration_structure extension commands
if (!strcmp("vkCreateAccelerationStructureKHR", name)) {
*addr = (void *)CreateAccelerationStructureKHR;