diff --git a/CMakeLists.txt b/CMakeLists.txt index 5c891a3ce..6f11cb216 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ # ~~~ cmake_minimum_required(VERSION 3.22.1) -project(VULKAN_LOADER VERSION 1.4.345 LANGUAGES C) +project(VULKAN_LOADER VERSION 1.4.346 LANGUAGES C) option(CODE_COVERAGE "Enable Code Coverage" OFF) if (CODE_COVERAGE) diff --git a/loader/generated/vk_layer_dispatch_table.h b/loader/generated/vk_layer_dispatch_table.h index 7a1ba6483..b7b7ae78c 100644 --- a/loader/generated/vk_layer_dispatch_table.h +++ b/loader/generated/vk_layer_dispatch_table.h @@ -711,6 +711,30 @@ typedef struct VkLayerDispatchTable_ { PFN_vkCmdWriteTimestamp2KHR CmdWriteTimestamp2KHR; PFN_vkQueueSubmit2KHR QueueSubmit2KHR; + // ---- VK_KHR_device_address_commands extension commands + PFN_vkCmdBindIndexBuffer3KHR CmdBindIndexBuffer3KHR; + PFN_vkCmdBindVertexBuffers3KHR CmdBindVertexBuffers3KHR; + PFN_vkCmdDrawIndirect2KHR CmdDrawIndirect2KHR; + PFN_vkCmdDrawIndexedIndirect2KHR CmdDrawIndexedIndirect2KHR; + PFN_vkCmdDispatchIndirect2KHR CmdDispatchIndirect2KHR; + PFN_vkCmdCopyMemoryKHR CmdCopyMemoryKHR; + PFN_vkCmdCopyMemoryToImageKHR CmdCopyMemoryToImageKHR; + PFN_vkCmdCopyImageToMemoryKHR CmdCopyImageToMemoryKHR; + PFN_vkCmdUpdateMemoryKHR CmdUpdateMemoryKHR; + PFN_vkCmdFillMemoryKHR CmdFillMemoryKHR; + PFN_vkCmdCopyQueryPoolResultsToMemoryKHR CmdCopyQueryPoolResultsToMemoryKHR; + PFN_vkCmdDrawIndirectCount2KHR CmdDrawIndirectCount2KHR; + PFN_vkCmdDrawIndexedIndirectCount2KHR CmdDrawIndexedIndirectCount2KHR; + PFN_vkCmdBeginConditionalRendering2EXT CmdBeginConditionalRendering2EXT; + PFN_vkCmdBindTransformFeedbackBuffers2EXT CmdBindTransformFeedbackBuffers2EXT; + PFN_vkCmdBeginTransformFeedback2EXT CmdBeginTransformFeedback2EXT; + PFN_vkCmdEndTransformFeedback2EXT CmdEndTransformFeedback2EXT; + PFN_vkCmdDrawIndirectByteCount2EXT CmdDrawIndirectByteCount2EXT; + PFN_vkCmdDrawMeshTasksIndirect2EXT CmdDrawMeshTasksIndirect2EXT; + PFN_vkCmdDrawMeshTasksIndirectCount2EXT CmdDrawMeshTasksIndirectCount2EXT; + PFN_vkCmdWriteMarkerToMemoryAMD CmdWriteMarkerToMemoryAMD; + PFN_vkCreateAccelerationStructure2KHR CreateAccelerationStructure2KHR; + // ---- VK_KHR_copy_commands2 extension commands PFN_vkCmdCopyBuffer2KHR CmdCopyBuffer2KHR; PFN_vkCmdCopyImage2KHR CmdCopyImage2KHR; diff --git a/loader/generated/vk_loader_extensions.c b/loader/generated/vk_loader_extensions.c index 712916ff0..3f7c30a1d 100644 --- a/loader/generated/vk_loader_extensions.c +++ b/loader/generated/vk_loader_extensions.c @@ -752,6 +752,30 @@ VKAPI_ATTR void VKAPI_CALL loader_init_device_extension_dispatch_table(struct lo table->CmdWriteTimestamp2KHR = (PFN_vkCmdWriteTimestamp2KHR)gdpa(dev, "vkCmdWriteTimestamp2KHR"); table->QueueSubmit2KHR = (PFN_vkQueueSubmit2KHR)gdpa(dev, "vkQueueSubmit2KHR"); + // ---- VK_KHR_device_address_commands extension commands + table->CmdBindIndexBuffer3KHR = (PFN_vkCmdBindIndexBuffer3KHR)gdpa(dev, "vkCmdBindIndexBuffer3KHR"); + table->CmdBindVertexBuffers3KHR = (PFN_vkCmdBindVertexBuffers3KHR)gdpa(dev, "vkCmdBindVertexBuffers3KHR"); + table->CmdDrawIndirect2KHR = (PFN_vkCmdDrawIndirect2KHR)gdpa(dev, "vkCmdDrawIndirect2KHR"); + table->CmdDrawIndexedIndirect2KHR = (PFN_vkCmdDrawIndexedIndirect2KHR)gdpa(dev, "vkCmdDrawIndexedIndirect2KHR"); + table->CmdDispatchIndirect2KHR = (PFN_vkCmdDispatchIndirect2KHR)gdpa(dev, "vkCmdDispatchIndirect2KHR"); + table->CmdCopyMemoryKHR = (PFN_vkCmdCopyMemoryKHR)gdpa(dev, "vkCmdCopyMemoryKHR"); + table->CmdCopyMemoryToImageKHR = (PFN_vkCmdCopyMemoryToImageKHR)gdpa(dev, "vkCmdCopyMemoryToImageKHR"); + table->CmdCopyImageToMemoryKHR = (PFN_vkCmdCopyImageToMemoryKHR)gdpa(dev, "vkCmdCopyImageToMemoryKHR"); + table->CmdUpdateMemoryKHR = (PFN_vkCmdUpdateMemoryKHR)gdpa(dev, "vkCmdUpdateMemoryKHR"); + table->CmdFillMemoryKHR = (PFN_vkCmdFillMemoryKHR)gdpa(dev, "vkCmdFillMemoryKHR"); + table->CmdCopyQueryPoolResultsToMemoryKHR = (PFN_vkCmdCopyQueryPoolResultsToMemoryKHR)gdpa(dev, "vkCmdCopyQueryPoolResultsToMemoryKHR"); + table->CmdDrawIndirectCount2KHR = (PFN_vkCmdDrawIndirectCount2KHR)gdpa(dev, "vkCmdDrawIndirectCount2KHR"); + table->CmdDrawIndexedIndirectCount2KHR = (PFN_vkCmdDrawIndexedIndirectCount2KHR)gdpa(dev, "vkCmdDrawIndexedIndirectCount2KHR"); + table->CmdBeginConditionalRendering2EXT = (PFN_vkCmdBeginConditionalRendering2EXT)gdpa(dev, "vkCmdBeginConditionalRendering2EXT"); + table->CmdBindTransformFeedbackBuffers2EXT = (PFN_vkCmdBindTransformFeedbackBuffers2EXT)gdpa(dev, "vkCmdBindTransformFeedbackBuffers2EXT"); + table->CmdBeginTransformFeedback2EXT = (PFN_vkCmdBeginTransformFeedback2EXT)gdpa(dev, "vkCmdBeginTransformFeedback2EXT"); + table->CmdEndTransformFeedback2EXT = (PFN_vkCmdEndTransformFeedback2EXT)gdpa(dev, "vkCmdEndTransformFeedback2EXT"); + table->CmdDrawIndirectByteCount2EXT = (PFN_vkCmdDrawIndirectByteCount2EXT)gdpa(dev, "vkCmdDrawIndirectByteCount2EXT"); + table->CmdDrawMeshTasksIndirect2EXT = (PFN_vkCmdDrawMeshTasksIndirect2EXT)gdpa(dev, "vkCmdDrawMeshTasksIndirect2EXT"); + table->CmdDrawMeshTasksIndirectCount2EXT = (PFN_vkCmdDrawMeshTasksIndirectCount2EXT)gdpa(dev, "vkCmdDrawMeshTasksIndirectCount2EXT"); + table->CmdWriteMarkerToMemoryAMD = (PFN_vkCmdWriteMarkerToMemoryAMD)gdpa(dev, "vkCmdWriteMarkerToMemoryAMD"); + table->CreateAccelerationStructure2KHR = (PFN_vkCreateAccelerationStructure2KHR)gdpa(dev, "vkCreateAccelerationStructure2KHR"); + // ---- VK_KHR_copy_commands2 extension commands table->CmdCopyBuffer2KHR = (PFN_vkCmdCopyBuffer2KHR)gdpa(dev, "vkCmdCopyBuffer2KHR"); table->CmdCopyImage2KHR = (PFN_vkCmdCopyImage2KHR)gdpa(dev, "vkCmdCopyImage2KHR"); @@ -2782,6 +2806,30 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDis if (!strcmp(name, "CmdWriteTimestamp2KHR")) return (void *)table->CmdWriteTimestamp2KHR; if (!strcmp(name, "QueueSubmit2KHR")) return (void *)table->QueueSubmit2KHR; + // ---- VK_KHR_device_address_commands extension commands + if (!strcmp(name, "CmdBindIndexBuffer3KHR")) return (void *)table->CmdBindIndexBuffer3KHR; + if (!strcmp(name, "CmdBindVertexBuffers3KHR")) return (void *)table->CmdBindVertexBuffers3KHR; + if (!strcmp(name, "CmdDrawIndirect2KHR")) return (void *)table->CmdDrawIndirect2KHR; + if (!strcmp(name, "CmdDrawIndexedIndirect2KHR")) return (void *)table->CmdDrawIndexedIndirect2KHR; + if (!strcmp(name, "CmdDispatchIndirect2KHR")) return (void *)table->CmdDispatchIndirect2KHR; + if (!strcmp(name, "CmdCopyMemoryKHR")) return (void *)table->CmdCopyMemoryKHR; + if (!strcmp(name, "CmdCopyMemoryToImageKHR")) return (void *)table->CmdCopyMemoryToImageKHR; + if (!strcmp(name, "CmdCopyImageToMemoryKHR")) return (void *)table->CmdCopyImageToMemoryKHR; + if (!strcmp(name, "CmdUpdateMemoryKHR")) return (void *)table->CmdUpdateMemoryKHR; + if (!strcmp(name, "CmdFillMemoryKHR")) return (void *)table->CmdFillMemoryKHR; + if (!strcmp(name, "CmdCopyQueryPoolResultsToMemoryKHR")) return (void *)table->CmdCopyQueryPoolResultsToMemoryKHR; + if (!strcmp(name, "CmdDrawIndirectCount2KHR")) return (void *)table->CmdDrawIndirectCount2KHR; + if (!strcmp(name, "CmdDrawIndexedIndirectCount2KHR")) return (void *)table->CmdDrawIndexedIndirectCount2KHR; + if (!strcmp(name, "CmdBeginConditionalRendering2EXT")) return (void *)table->CmdBeginConditionalRendering2EXT; + if (!strcmp(name, "CmdBindTransformFeedbackBuffers2EXT")) return (void *)table->CmdBindTransformFeedbackBuffers2EXT; + if (!strcmp(name, "CmdBeginTransformFeedback2EXT")) return (void *)table->CmdBeginTransformFeedback2EXT; + if (!strcmp(name, "CmdEndTransformFeedback2EXT")) return (void *)table->CmdEndTransformFeedback2EXT; + if (!strcmp(name, "CmdDrawIndirectByteCount2EXT")) return (void *)table->CmdDrawIndirectByteCount2EXT; + if (!strcmp(name, "CmdDrawMeshTasksIndirect2EXT")) return (void *)table->CmdDrawMeshTasksIndirect2EXT; + if (!strcmp(name, "CmdDrawMeshTasksIndirectCount2EXT")) return (void *)table->CmdDrawMeshTasksIndirectCount2EXT; + if (!strcmp(name, "CmdWriteMarkerToMemoryAMD")) return (void *)table->CmdWriteMarkerToMemoryAMD; + if (!strcmp(name, "CreateAccelerationStructure2KHR")) return (void *)table->CreateAccelerationStructure2KHR; + // ---- VK_KHR_copy_commands2 extension commands if (!strcmp(name, "CmdCopyBuffer2KHR")) return (void *)table->CmdCopyBuffer2KHR; if (!strcmp(name, "CmdCopyImage2KHR")) return (void *)table->CmdCopyImage2KHR; @@ -5152,6 +5200,319 @@ VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit2KHR( } +// ---- VK_KHR_device_address_commands extension trampoline/terminators + +VKAPI_ATTR void VKAPI_CALL CmdBindIndexBuffer3KHR( + VkCommandBuffer commandBuffer, + const VkBindIndexBuffer3InfoKHR* pInfo) { + 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, + "vkCmdBindIndexBuffer3KHR: Invalid commandBuffer " + "[VUID-vkCmdBindIndexBuffer3KHR-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdBindIndexBuffer3KHR(commandBuffer, pInfo); +} + +VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers3KHR( + VkCommandBuffer commandBuffer, + uint32_t firstBinding, + uint32_t bindingCount, + const VkBindVertexBuffer3InfoKHR* pBindingInfos) { + 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, + "vkCmdBindVertexBuffers3KHR: Invalid commandBuffer " + "[VUID-vkCmdBindVertexBuffers3KHR-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdBindVertexBuffers3KHR(commandBuffer, firstBinding, bindingCount, pBindingInfos); +} + +VKAPI_ATTR void VKAPI_CALL CmdDrawIndirect2KHR( + VkCommandBuffer commandBuffer, + const VkDrawIndirect2InfoKHR* pInfo) { + 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, + "vkCmdDrawIndirect2KHR: Invalid commandBuffer " + "[VUID-vkCmdDrawIndirect2KHR-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdDrawIndirect2KHR(commandBuffer, pInfo); +} + +VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirect2KHR( + VkCommandBuffer commandBuffer, + const VkDrawIndirect2InfoKHR* pInfo) { + 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, + "vkCmdDrawIndexedIndirect2KHR: Invalid commandBuffer " + "[VUID-vkCmdDrawIndexedIndirect2KHR-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdDrawIndexedIndirect2KHR(commandBuffer, pInfo); +} + +VKAPI_ATTR void VKAPI_CALL CmdDispatchIndirect2KHR( + VkCommandBuffer commandBuffer, + const VkDispatchIndirect2InfoKHR* pInfo) { + 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, + "vkCmdDispatchIndirect2KHR: Invalid commandBuffer " + "[VUID-vkCmdDispatchIndirect2KHR-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdDispatchIndirect2KHR(commandBuffer, pInfo); +} + +VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryKHR( + VkCommandBuffer commandBuffer, + const VkCopyDeviceMemoryInfoKHR* pCopyMemoryInfo) { + 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, + "vkCmdCopyMemoryKHR: Invalid commandBuffer " + "[VUID-vkCmdCopyMemoryKHR-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdCopyMemoryKHR(commandBuffer, pCopyMemoryInfo); +} + +VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToImageKHR( + VkCommandBuffer commandBuffer, + const VkCopyDeviceMemoryImageInfoKHR* pCopyMemoryInfo) { + 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, + "vkCmdCopyMemoryToImageKHR: Invalid commandBuffer " + "[VUID-vkCmdCopyMemoryToImageKHR-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdCopyMemoryToImageKHR(commandBuffer, pCopyMemoryInfo); +} + +VKAPI_ATTR void VKAPI_CALL CmdCopyImageToMemoryKHR( + VkCommandBuffer commandBuffer, + const VkCopyDeviceMemoryImageInfoKHR* pCopyMemoryInfo) { + 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, + "vkCmdCopyImageToMemoryKHR: Invalid commandBuffer " + "[VUID-vkCmdCopyImageToMemoryKHR-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdCopyImageToMemoryKHR(commandBuffer, pCopyMemoryInfo); +} + +VKAPI_ATTR void VKAPI_CALL CmdUpdateMemoryKHR( + VkCommandBuffer commandBuffer, + const VkDeviceAddressRangeKHR* pDstRange, + VkAddressCommandFlagsKHR dstFlags, + VkDeviceSize dataSize, + const void* pData) { + 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, + "vkCmdUpdateMemoryKHR: Invalid commandBuffer " + "[VUID-vkCmdUpdateMemoryKHR-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdUpdateMemoryKHR(commandBuffer, pDstRange, dstFlags, dataSize, pData); +} + +VKAPI_ATTR void VKAPI_CALL CmdFillMemoryKHR( + VkCommandBuffer commandBuffer, + const VkDeviceAddressRangeKHR* pDstRange, + VkAddressCommandFlagsKHR dstFlags, + uint32_t data) { + 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, + "vkCmdFillMemoryKHR: Invalid commandBuffer " + "[VUID-vkCmdFillMemoryKHR-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdFillMemoryKHR(commandBuffer, pDstRange, dstFlags, data); +} + +VKAPI_ATTR void VKAPI_CALL CmdCopyQueryPoolResultsToMemoryKHR( + VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + const VkStridedDeviceAddressRangeKHR* pDstRange, + VkAddressCommandFlagsKHR dstFlags, + VkQueryResultFlags queryResultFlags) { + 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, + "vkCmdCopyQueryPoolResultsToMemoryKHR: Invalid commandBuffer " + "[VUID-vkCmdCopyQueryPoolResultsToMemoryKHR-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdCopyQueryPoolResultsToMemoryKHR(commandBuffer, queryPool, firstQuery, queryCount, pDstRange, dstFlags, queryResultFlags); +} + +VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCount2KHR( + VkCommandBuffer commandBuffer, + const VkDrawIndirectCount2InfoKHR* pInfo) { + 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, + "vkCmdDrawIndirectCount2KHR: Invalid commandBuffer " + "[VUID-vkCmdDrawIndirectCount2KHR-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdDrawIndirectCount2KHR(commandBuffer, pInfo); +} + +VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCount2KHR( + VkCommandBuffer commandBuffer, + const VkDrawIndirectCount2InfoKHR* pInfo) { + 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, + "vkCmdDrawIndexedIndirectCount2KHR: Invalid commandBuffer " + "[VUID-vkCmdDrawIndexedIndirectCount2KHR-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdDrawIndexedIndirectCount2KHR(commandBuffer, pInfo); +} + +VKAPI_ATTR void VKAPI_CALL CmdBeginConditionalRendering2EXT( + VkCommandBuffer commandBuffer, + const VkConditionalRenderingBeginInfo2EXT* pConditionalRenderingBegin) { + 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, + "vkCmdBeginConditionalRendering2EXT: Invalid commandBuffer " + "[VUID-vkCmdBeginConditionalRendering2EXT-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdBeginConditionalRendering2EXT(commandBuffer, pConditionalRenderingBegin); +} + +VKAPI_ATTR void VKAPI_CALL CmdBindTransformFeedbackBuffers2EXT( + VkCommandBuffer commandBuffer, + uint32_t firstBinding, + uint32_t bindingCount, + const VkBindTransformFeedbackBuffer2InfoEXT* pBindingInfos) { + 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, + "vkCmdBindTransformFeedbackBuffers2EXT: Invalid commandBuffer " + "[VUID-vkCmdBindTransformFeedbackBuffers2EXT-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdBindTransformFeedbackBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBindingInfos); +} + +VKAPI_ATTR void VKAPI_CALL CmdBeginTransformFeedback2EXT( + VkCommandBuffer commandBuffer, + uint32_t firstCounterRange, + uint32_t counterRangeCount, + const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfos) { + 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, + "vkCmdBeginTransformFeedback2EXT: Invalid commandBuffer " + "[VUID-vkCmdBeginTransformFeedback2EXT-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdBeginTransformFeedback2EXT(commandBuffer, firstCounterRange, counterRangeCount, pCounterInfos); +} + +VKAPI_ATTR void VKAPI_CALL CmdEndTransformFeedback2EXT( + VkCommandBuffer commandBuffer, + uint32_t firstCounterRange, + uint32_t counterRangeCount, + const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfos) { + 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, + "vkCmdEndTransformFeedback2EXT: Invalid commandBuffer " + "[VUID-vkCmdEndTransformFeedback2EXT-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdEndTransformFeedback2EXT(commandBuffer, firstCounterRange, counterRangeCount, pCounterInfos); +} + +VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectByteCount2EXT( + VkCommandBuffer commandBuffer, + uint32_t instanceCount, + uint32_t firstInstance, + const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfo, + uint32_t counterOffset, + uint32_t vertexStride) { + 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, + "vkCmdDrawIndirectByteCount2EXT: Invalid commandBuffer " + "[VUID-vkCmdDrawIndirectByteCount2EXT-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdDrawIndirectByteCount2EXT(commandBuffer, instanceCount, firstInstance, pCounterInfo, counterOffset, vertexStride); +} + +VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirect2EXT( + VkCommandBuffer commandBuffer, + const VkDrawIndirect2InfoKHR* pInfo) { + 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, + "vkCmdDrawMeshTasksIndirect2EXT: Invalid commandBuffer " + "[VUID-vkCmdDrawMeshTasksIndirect2EXT-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdDrawMeshTasksIndirect2EXT(commandBuffer, pInfo); +} + +VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCount2EXT( + VkCommandBuffer commandBuffer, + const VkDrawIndirectCount2InfoKHR* pInfo) { + 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, + "vkCmdDrawMeshTasksIndirectCount2EXT: Invalid commandBuffer " + "[VUID-vkCmdDrawMeshTasksIndirectCount2EXT-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdDrawMeshTasksIndirectCount2EXT(commandBuffer, pInfo); +} + +VKAPI_ATTR void VKAPI_CALL CmdWriteMarkerToMemoryAMD( + VkCommandBuffer commandBuffer, + const VkMemoryMarkerInfoAMD* pInfo) { + 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, + "vkCmdWriteMarkerToMemoryAMD: Invalid commandBuffer " + "[VUID-vkCmdWriteMarkerToMemoryAMD-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdWriteMarkerToMemoryAMD(commandBuffer, pInfo); +} + +VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructure2KHR( + VkDevice device, + const VkAccelerationStructureCreateInfo2KHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkAccelerationStructureKHR* pAccelerationStructure) { + 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, + "vkCreateAccelerationStructure2KHR: Invalid device " + "[VUID-vkCreateAccelerationStructure2KHR-device-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + return disp->CreateAccelerationStructure2KHR(device, pCreateInfo, pAllocator, pAccelerationStructure); +} + + // ---- VK_KHR_copy_commands2 extension trampoline/terminators VKAPI_ATTR void VKAPI_CALL CmdCopyBuffer2KHR( @@ -12424,6 +12785,96 @@ bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *na return true; } + // ---- VK_KHR_device_address_commands extension commands + if (!strcmp("vkCmdBindIndexBuffer3KHR", name)) { + *addr = (void *)CmdBindIndexBuffer3KHR; + return true; + } + if (!strcmp("vkCmdBindVertexBuffers3KHR", name)) { + *addr = (void *)CmdBindVertexBuffers3KHR; + return true; + } + if (!strcmp("vkCmdDrawIndirect2KHR", name)) { + *addr = (void *)CmdDrawIndirect2KHR; + return true; + } + if (!strcmp("vkCmdDrawIndexedIndirect2KHR", name)) { + *addr = (void *)CmdDrawIndexedIndirect2KHR; + return true; + } + if (!strcmp("vkCmdDispatchIndirect2KHR", name)) { + *addr = (void *)CmdDispatchIndirect2KHR; + return true; + } + if (!strcmp("vkCmdCopyMemoryKHR", name)) { + *addr = (void *)CmdCopyMemoryKHR; + return true; + } + if (!strcmp("vkCmdCopyMemoryToImageKHR", name)) { + *addr = (void *)CmdCopyMemoryToImageKHR; + return true; + } + if (!strcmp("vkCmdCopyImageToMemoryKHR", name)) { + *addr = (void *)CmdCopyImageToMemoryKHR; + return true; + } + if (!strcmp("vkCmdUpdateMemoryKHR", name)) { + *addr = (void *)CmdUpdateMemoryKHR; + return true; + } + if (!strcmp("vkCmdFillMemoryKHR", name)) { + *addr = (void *)CmdFillMemoryKHR; + return true; + } + if (!strcmp("vkCmdCopyQueryPoolResultsToMemoryKHR", name)) { + *addr = (void *)CmdCopyQueryPoolResultsToMemoryKHR; + return true; + } + if (!strcmp("vkCmdDrawIndirectCount2KHR", name)) { + *addr = (void *)CmdDrawIndirectCount2KHR; + return true; + } + if (!strcmp("vkCmdDrawIndexedIndirectCount2KHR", name)) { + *addr = (void *)CmdDrawIndexedIndirectCount2KHR; + return true; + } + if (!strcmp("vkCmdBeginConditionalRendering2EXT", name)) { + *addr = (void *)CmdBeginConditionalRendering2EXT; + return true; + } + if (!strcmp("vkCmdBindTransformFeedbackBuffers2EXT", name)) { + *addr = (void *)CmdBindTransformFeedbackBuffers2EXT; + return true; + } + if (!strcmp("vkCmdBeginTransformFeedback2EXT", name)) { + *addr = (void *)CmdBeginTransformFeedback2EXT; + return true; + } + if (!strcmp("vkCmdEndTransformFeedback2EXT", name)) { + *addr = (void *)CmdEndTransformFeedback2EXT; + return true; + } + if (!strcmp("vkCmdDrawIndirectByteCount2EXT", name)) { + *addr = (void *)CmdDrawIndirectByteCount2EXT; + return true; + } + if (!strcmp("vkCmdDrawMeshTasksIndirect2EXT", name)) { + *addr = (void *)CmdDrawMeshTasksIndirect2EXT; + return true; + } + if (!strcmp("vkCmdDrawMeshTasksIndirectCount2EXT", name)) { + *addr = (void *)CmdDrawMeshTasksIndirectCount2EXT; + return true; + } + if (!strcmp("vkCmdWriteMarkerToMemoryAMD", name)) { + *addr = (void *)CmdWriteMarkerToMemoryAMD; + return true; + } + if (!strcmp("vkCreateAccelerationStructure2KHR", name)) { + *addr = (void *)CreateAccelerationStructure2KHR; + return true; + } + // ---- VK_KHR_copy_commands2 extension commands if (!strcmp("vkCmdCopyBuffer2KHR", name)) { *addr = (void *)CmdCopyBuffer2KHR; diff --git a/loader/generated/vk_object_types.h b/loader/generated/vk_object_types.h index 32db56b5f..2f979d67c 100644 --- a/loader/generated/vk_object_types.h +++ b/loader/generated/vk_object_types.h @@ -74,19 +74,19 @@ typedef enum VulkanObjectType { kVulkanObjectTypeVideoSessionKHR = 33, kVulkanObjectTypeVideoSessionParametersKHR = 34, kVulkanObjectTypeDeferredOperationKHR = 35, - kVulkanObjectTypePipelineBinaryKHR = 36, - kVulkanObjectTypeDebugReportCallbackEXT = 37, - kVulkanObjectTypeCuModuleNVX = 38, - kVulkanObjectTypeCuFunctionNVX = 39, - kVulkanObjectTypeDebugUtilsMessengerEXT = 40, - kVulkanObjectTypeTensorARM = 41, - kVulkanObjectTypeValidationCacheEXT = 42, - kVulkanObjectTypeAccelerationStructureNV = 43, - kVulkanObjectTypePerformanceConfigurationINTEL = 44, - kVulkanObjectTypeIndirectCommandsLayoutNV = 45, - kVulkanObjectTypeCudaModuleNV = 46, - kVulkanObjectTypeCudaFunctionNV = 47, - kVulkanObjectTypeAccelerationStructureKHR = 48, + kVulkanObjectTypeAccelerationStructureKHR = 36, + kVulkanObjectTypePipelineBinaryKHR = 37, + kVulkanObjectTypeDebugReportCallbackEXT = 38, + kVulkanObjectTypeCuModuleNVX = 39, + kVulkanObjectTypeCuFunctionNVX = 40, + kVulkanObjectTypeDebugUtilsMessengerEXT = 41, + kVulkanObjectTypeTensorARM = 42, + kVulkanObjectTypeValidationCacheEXT = 43, + kVulkanObjectTypeAccelerationStructureNV = 44, + kVulkanObjectTypePerformanceConfigurationINTEL = 45, + kVulkanObjectTypeIndirectCommandsLayoutNV = 46, + kVulkanObjectTypeCudaModuleNV = 47, + kVulkanObjectTypeCudaFunctionNV = 48, kVulkanObjectTypeBufferCollectionFUCHSIA = 49, kVulkanObjectTypeMicromapEXT = 50, kVulkanObjectTypeTensorViewARM = 51, @@ -142,6 +142,7 @@ static const char * const object_string[kVulkanObjectTypeMax] = { "VideoSessionKHR", "VideoSessionParametersKHR", "DeferredOperationKHR", + "AccelerationStructureKHR", "PipelineBinaryKHR", "DebugReportCallbackEXT", "CuModuleNVX", @@ -154,7 +155,6 @@ static const char * const object_string[kVulkanObjectTypeMax] = { "IndirectCommandsLayoutNV", "CudaModuleNV", "CudaFunctionNV", - "AccelerationStructureKHR", "BufferCollectionFUCHSIA", "MicromapEXT", "TensorViewARM", @@ -205,6 +205,7 @@ const VkDebugReportObjectTypeEXT get_debug_report_enum[] = { VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeVideoSessionKHR VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeVideoSessionParametersKHR VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeDeferredOperationKHR + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT, // kVulkanObjectTypeAccelerationStructureKHR VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypePipelineBinaryKHR VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT, // kVulkanObjectTypeDebugReportCallbackEXT VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT, // kVulkanObjectTypeCuModuleNVX @@ -217,7 +218,6 @@ const VkDebugReportObjectTypeEXT get_debug_report_enum[] = { VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeIndirectCommandsLayoutNV VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT, // kVulkanObjectTypeCudaModuleNV VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT, // kVulkanObjectTypeCudaFunctionNV - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT, // kVulkanObjectTypeAccelerationStructureKHR VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT, // kVulkanObjectTypeBufferCollectionFUCHSIA VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeMicromapEXT VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeTensorViewARM @@ -268,6 +268,7 @@ const VkObjectType get_object_type_enum[] = { VK_OBJECT_TYPE_VIDEO_SESSION_KHR, // kVulkanObjectTypeVideoSessionKHR VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR, // kVulkanObjectTypeVideoSessionParametersKHR VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR, // kVulkanObjectTypeDeferredOperationKHR + VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR, // kVulkanObjectTypeAccelerationStructureKHR VK_OBJECT_TYPE_PIPELINE_BINARY_KHR, // kVulkanObjectTypePipelineBinaryKHR VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT, // kVulkanObjectTypeDebugReportCallbackEXT VK_OBJECT_TYPE_CU_MODULE_NVX, // kVulkanObjectTypeCuModuleNVX @@ -280,7 +281,6 @@ const VkObjectType get_object_type_enum[] = { VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV, // kVulkanObjectTypeIndirectCommandsLayoutNV VK_OBJECT_TYPE_CUDA_MODULE_NV, // kVulkanObjectTypeCudaModuleNV VK_OBJECT_TYPE_CUDA_FUNCTION_NV, // kVulkanObjectTypeCudaFunctionNV - VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR, // kVulkanObjectTypeAccelerationStructureKHR VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA, // kVulkanObjectTypeBufferCollectionFUCHSIA VK_OBJECT_TYPE_MICROMAP_EXT, // kVulkanObjectTypeMicromapEXT VK_OBJECT_TYPE_TENSOR_VIEW_ARM, // kVulkanObjectTypeTensorViewARM diff --git a/loader/loader.rc b/loader/loader.rc index cede33ec8..29c3c2082 100644 --- a/loader/loader.rc +++ b/loader/loader.rc @@ -22,8 +22,8 @@ #include "winres.h" // All set through CMake -#define VER_FILE_VERSION 1, 4, 345, 0 -#define VER_FILE_DESCRIPTION_STR "1.4.345.Dev Build" +#define VER_FILE_VERSION 1, 4, 346, 0 +#define VER_FILE_DESCRIPTION_STR "1.4.346.Dev Build" #define VER_FILE_VERSION_STR "Vulkan Loader - Dev Build" #define VER_COPYRIGHT_STR "Copyright (C) 2015-2026" diff --git a/scripts/known_good.json b/scripts/known_good.json index 77952a221..f10aa21b1 100644 --- a/scripts/known_good.json +++ b/scripts/known_good.json @@ -7,7 +7,7 @@ "sub_dir": "Vulkan-Headers", "build_dir": "Vulkan-Headers/build", "install_dir": "Vulkan-Headers/build/install", - "commit": "v1.4.345" + "commit": "v1.4.346" }, { "name": "googletest", @@ -42,4 +42,4 @@ "googletest": "GOOGLETEST_INSTALL_DIR", "detours": "DETOURS_INSTALL_DIR" } -} \ No newline at end of file +} diff --git a/tests/framework/layer/generated/vk_dispatch_table_helper.h b/tests/framework/layer/generated/vk_dispatch_table_helper.h index b6bcc4ef6..502ee3f94 100644 --- a/tests/framework/layer/generated/vk_dispatch_table_helper.h +++ b/tests/framework/layer/generated/vk_dispatch_table_helper.h @@ -341,6 +341,28 @@ static inline void layer_init_device_dispatch_table(VkDevice device, VkLayerDisp table->CmdPipelineBarrier2KHR = (PFN_vkCmdPipelineBarrier2KHR)gpa(device, "vkCmdPipelineBarrier2KHR"); table->CmdWriteTimestamp2KHR = (PFN_vkCmdWriteTimestamp2KHR)gpa(device, "vkCmdWriteTimestamp2KHR"); table->QueueSubmit2KHR = (PFN_vkQueueSubmit2KHR)gpa(device, "vkQueueSubmit2KHR"); + table->CmdBindIndexBuffer3KHR = (PFN_vkCmdBindIndexBuffer3KHR)gpa(device, "vkCmdBindIndexBuffer3KHR"); + table->CmdBindVertexBuffers3KHR = (PFN_vkCmdBindVertexBuffers3KHR)gpa(device, "vkCmdBindVertexBuffers3KHR"); + table->CmdDrawIndirect2KHR = (PFN_vkCmdDrawIndirect2KHR)gpa(device, "vkCmdDrawIndirect2KHR"); + table->CmdDrawIndexedIndirect2KHR = (PFN_vkCmdDrawIndexedIndirect2KHR)gpa(device, "vkCmdDrawIndexedIndirect2KHR"); + table->CmdDispatchIndirect2KHR = (PFN_vkCmdDispatchIndirect2KHR)gpa(device, "vkCmdDispatchIndirect2KHR"); + table->CmdCopyMemoryKHR = (PFN_vkCmdCopyMemoryKHR)gpa(device, "vkCmdCopyMemoryKHR"); + table->CmdCopyMemoryToImageKHR = (PFN_vkCmdCopyMemoryToImageKHR)gpa(device, "vkCmdCopyMemoryToImageKHR"); + table->CmdCopyImageToMemoryKHR = (PFN_vkCmdCopyImageToMemoryKHR)gpa(device, "vkCmdCopyImageToMemoryKHR"); + table->CmdUpdateMemoryKHR = (PFN_vkCmdUpdateMemoryKHR)gpa(device, "vkCmdUpdateMemoryKHR"); + table->CmdFillMemoryKHR = (PFN_vkCmdFillMemoryKHR)gpa(device, "vkCmdFillMemoryKHR"); + table->CmdCopyQueryPoolResultsToMemoryKHR = (PFN_vkCmdCopyQueryPoolResultsToMemoryKHR)gpa(device, "vkCmdCopyQueryPoolResultsToMemoryKHR"); + table->CmdDrawIndirectCount2KHR = (PFN_vkCmdDrawIndirectCount2KHR)gpa(device, "vkCmdDrawIndirectCount2KHR"); + table->CmdDrawIndexedIndirectCount2KHR = (PFN_vkCmdDrawIndexedIndirectCount2KHR)gpa(device, "vkCmdDrawIndexedIndirectCount2KHR"); + table->CmdBeginConditionalRendering2EXT = (PFN_vkCmdBeginConditionalRendering2EXT)gpa(device, "vkCmdBeginConditionalRendering2EXT"); + table->CmdBindTransformFeedbackBuffers2EXT = (PFN_vkCmdBindTransformFeedbackBuffers2EXT)gpa(device, "vkCmdBindTransformFeedbackBuffers2EXT"); + table->CmdBeginTransformFeedback2EXT = (PFN_vkCmdBeginTransformFeedback2EXT)gpa(device, "vkCmdBeginTransformFeedback2EXT"); + table->CmdEndTransformFeedback2EXT = (PFN_vkCmdEndTransformFeedback2EXT)gpa(device, "vkCmdEndTransformFeedback2EXT"); + table->CmdDrawIndirectByteCount2EXT = (PFN_vkCmdDrawIndirectByteCount2EXT)gpa(device, "vkCmdDrawIndirectByteCount2EXT"); + table->CmdDrawMeshTasksIndirect2EXT = (PFN_vkCmdDrawMeshTasksIndirect2EXT)gpa(device, "vkCmdDrawMeshTasksIndirect2EXT"); + table->CmdDrawMeshTasksIndirectCount2EXT = (PFN_vkCmdDrawMeshTasksIndirectCount2EXT)gpa(device, "vkCmdDrawMeshTasksIndirectCount2EXT"); + table->CmdWriteMarkerToMemoryAMD = (PFN_vkCmdWriteMarkerToMemoryAMD)gpa(device, "vkCmdWriteMarkerToMemoryAMD"); + table->CreateAccelerationStructure2KHR = (PFN_vkCreateAccelerationStructure2KHR)gpa(device, "vkCreateAccelerationStructure2KHR"); table->CmdCopyBuffer2KHR = (PFN_vkCmdCopyBuffer2KHR)gpa(device, "vkCmdCopyBuffer2KHR"); table->CmdCopyImage2KHR = (PFN_vkCmdCopyImage2KHR)gpa(device, "vkCmdCopyImage2KHR"); table->CmdCopyBufferToImage2KHR = (PFN_vkCmdCopyBufferToImage2KHR)gpa(device, "vkCmdCopyBufferToImage2KHR");