From d8ba43984a874da57e7b118f9c6001846020df14 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Mon, 28 Feb 2022 13:07:53 -0300 Subject: [PATCH] vkr: update venus-protocol for proc tables Add the automatic generated code to the proc tables. Co-authored-by: Igor Torrente Co-authored-by: Chia-I Wu Part-of: --- .../venus-protocol/vn_protocol_renderer.h | 3 +- .../vn_protocol_renderer_util.h | 663 ++++++++++++++++++ 2 files changed, 665 insertions(+), 1 deletion(-) create mode 100644 src/venus/venus-protocol/vn_protocol_renderer_util.h diff --git a/src/venus/venus-protocol/vn_protocol_renderer.h b/src/venus/venus-protocol/vn_protocol_renderer.h index 3de37e1..7e14637 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer.h +++ b/src/venus/venus-protocol/vn_protocol_renderer.h @@ -1,4 +1,4 @@ -/* This file is generated by venus-protocol git-2f119241. */ +/* This file is generated by venus-protocol git-41236da2. */ /* * Copyright 2020 Google LLC @@ -13,6 +13,7 @@ #include "vn_protocol_renderer_info.h" #include "vn_protocol_renderer_types.h" #include "vn_protocol_renderer_handles.h" +#include "vn_protocol_renderer_util.h" #include "vn_protocol_renderer_dispatches.h" #include "vn_protocol_renderer_structs.h" #include "vn_protocol_renderer_transport.h" diff --git a/src/venus/venus-protocol/vn_protocol_renderer_util.h b/src/venus/venus-protocol/vn_protocol_renderer_util.h new file mode 100644 index 0000000..76e0e08 --- /dev/null +++ b/src/venus/venus-protocol/vn_protocol_renderer_util.h @@ -0,0 +1,663 @@ +/* This file is generated by venus-protocol. See vn_protocol_renderer.h. */ + +/* + * Copyright 2022 Google LLC + * Copyright 2022 Collabora Ltd. + * SPDX-License-Identifier: MIT + */ + +#ifndef VN_PROTOCOL_RENDERER_UTIL_H +#define VN_PROTOCOL_RENDERER_UTIL_H + +#include "vn_protocol_renderer_info.h" + +struct vn_physical_device_proc_table { + PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT GetPhysicalDeviceCalibrateableTimeDomainsEXT; + PFN_vkGetPhysicalDeviceToolProperties GetPhysicalDeviceToolProperties; +}; + +struct vn_device_proc_table { + PFN_vkAllocateCommandBuffers AllocateCommandBuffers; + PFN_vkAllocateDescriptorSets AllocateDescriptorSets; + PFN_vkAllocateMemory AllocateMemory; + PFN_vkBeginCommandBuffer BeginCommandBuffer; + PFN_vkBindBufferMemory BindBufferMemory; + PFN_vkBindBufferMemory2 BindBufferMemory2; + PFN_vkBindImageMemory BindImageMemory; + PFN_vkBindImageMemory2 BindImageMemory2; + PFN_vkCmdBeginQuery CmdBeginQuery; + PFN_vkCmdBeginQueryIndexedEXT CmdBeginQueryIndexedEXT; + PFN_vkCmdBeginRenderPass CmdBeginRenderPass; + PFN_vkCmdBeginRenderPass2 CmdBeginRenderPass2; + PFN_vkCmdBeginRendering CmdBeginRendering; + PFN_vkCmdBeginTransformFeedbackEXT CmdBeginTransformFeedbackEXT; + PFN_vkCmdBindDescriptorSets CmdBindDescriptorSets; + PFN_vkCmdBindIndexBuffer CmdBindIndexBuffer; + PFN_vkCmdBindPipeline CmdBindPipeline; + PFN_vkCmdBindTransformFeedbackBuffersEXT CmdBindTransformFeedbackBuffersEXT; + PFN_vkCmdBindVertexBuffers CmdBindVertexBuffers; + PFN_vkCmdBindVertexBuffers2 CmdBindVertexBuffers2; + PFN_vkCmdBlitImage CmdBlitImage; + PFN_vkCmdBlitImage2 CmdBlitImage2; + PFN_vkCmdClearAttachments CmdClearAttachments; + PFN_vkCmdClearColorImage CmdClearColorImage; + PFN_vkCmdClearDepthStencilImage CmdClearDepthStencilImage; + PFN_vkCmdCopyBuffer CmdCopyBuffer; + PFN_vkCmdCopyBuffer2 CmdCopyBuffer2; + PFN_vkCmdCopyBufferToImage CmdCopyBufferToImage; + PFN_vkCmdCopyBufferToImage2 CmdCopyBufferToImage2; + PFN_vkCmdCopyImage CmdCopyImage; + PFN_vkCmdCopyImage2 CmdCopyImage2; + PFN_vkCmdCopyImageToBuffer CmdCopyImageToBuffer; + PFN_vkCmdCopyImageToBuffer2 CmdCopyImageToBuffer2; + PFN_vkCmdCopyQueryPoolResults CmdCopyQueryPoolResults; + PFN_vkCmdDispatch CmdDispatch; + PFN_vkCmdDispatchBase CmdDispatchBase; + PFN_vkCmdDispatchIndirect CmdDispatchIndirect; + PFN_vkCmdDraw CmdDraw; + PFN_vkCmdDrawIndexed CmdDrawIndexed; + PFN_vkCmdDrawIndexedIndirect CmdDrawIndexedIndirect; + PFN_vkCmdDrawIndexedIndirectCount CmdDrawIndexedIndirectCount; + PFN_vkCmdDrawIndirect CmdDrawIndirect; + PFN_vkCmdDrawIndirectByteCountEXT CmdDrawIndirectByteCountEXT; + PFN_vkCmdDrawIndirectCount CmdDrawIndirectCount; + PFN_vkCmdEndQuery CmdEndQuery; + PFN_vkCmdEndQueryIndexedEXT CmdEndQueryIndexedEXT; + PFN_vkCmdEndRenderPass CmdEndRenderPass; + PFN_vkCmdEndRenderPass2 CmdEndRenderPass2; + PFN_vkCmdEndRendering CmdEndRendering; + PFN_vkCmdEndTransformFeedbackEXT CmdEndTransformFeedbackEXT; + PFN_vkCmdExecuteCommands CmdExecuteCommands; + PFN_vkCmdFillBuffer CmdFillBuffer; + PFN_vkCmdNextSubpass CmdNextSubpass; + PFN_vkCmdNextSubpass2 CmdNextSubpass2; + PFN_vkCmdPipelineBarrier CmdPipelineBarrier; + PFN_vkCmdPipelineBarrier2 CmdPipelineBarrier2; + PFN_vkCmdPushConstants CmdPushConstants; + PFN_vkCmdResetEvent CmdResetEvent; + PFN_vkCmdResetEvent2 CmdResetEvent2; + PFN_vkCmdResetQueryPool CmdResetQueryPool; + PFN_vkCmdResolveImage CmdResolveImage; + PFN_vkCmdResolveImage2 CmdResolveImage2; + PFN_vkCmdSetBlendConstants CmdSetBlendConstants; + PFN_vkCmdSetCullMode CmdSetCullMode; + PFN_vkCmdSetDepthBias CmdSetDepthBias; + PFN_vkCmdSetDepthBiasEnable CmdSetDepthBiasEnable; + PFN_vkCmdSetDepthBounds CmdSetDepthBounds; + PFN_vkCmdSetDepthBoundsTestEnable CmdSetDepthBoundsTestEnable; + PFN_vkCmdSetDepthCompareOp CmdSetDepthCompareOp; + PFN_vkCmdSetDepthTestEnable CmdSetDepthTestEnable; + PFN_vkCmdSetDepthWriteEnable CmdSetDepthWriteEnable; + PFN_vkCmdSetDeviceMask CmdSetDeviceMask; + PFN_vkCmdSetEvent CmdSetEvent; + PFN_vkCmdSetEvent2 CmdSetEvent2; + PFN_vkCmdSetFrontFace CmdSetFrontFace; + PFN_vkCmdSetLineStippleEXT CmdSetLineStippleEXT; + PFN_vkCmdSetLineWidth CmdSetLineWidth; + PFN_vkCmdSetLogicOpEXT CmdSetLogicOpEXT; + PFN_vkCmdSetPatchControlPointsEXT CmdSetPatchControlPointsEXT; + PFN_vkCmdSetPrimitiveRestartEnable CmdSetPrimitiveRestartEnable; + PFN_vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology; + PFN_vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable; + PFN_vkCmdSetScissor CmdSetScissor; + PFN_vkCmdSetScissorWithCount CmdSetScissorWithCount; + PFN_vkCmdSetStencilCompareMask CmdSetStencilCompareMask; + PFN_vkCmdSetStencilOp CmdSetStencilOp; + PFN_vkCmdSetStencilReference CmdSetStencilReference; + PFN_vkCmdSetStencilTestEnable CmdSetStencilTestEnable; + PFN_vkCmdSetStencilWriteMask CmdSetStencilWriteMask; + PFN_vkCmdSetViewport CmdSetViewport; + PFN_vkCmdSetViewportWithCount CmdSetViewportWithCount; + PFN_vkCmdUpdateBuffer CmdUpdateBuffer; + PFN_vkCmdWaitEvents CmdWaitEvents; + PFN_vkCmdWaitEvents2 CmdWaitEvents2; + PFN_vkCmdWriteTimestamp CmdWriteTimestamp; + PFN_vkCmdWriteTimestamp2 CmdWriteTimestamp2; + PFN_vkCreateBuffer CreateBuffer; + PFN_vkCreateBufferView CreateBufferView; + PFN_vkCreateCommandPool CreateCommandPool; + PFN_vkCreateComputePipelines CreateComputePipelines; + PFN_vkCreateDescriptorPool CreateDescriptorPool; + PFN_vkCreateDescriptorSetLayout CreateDescriptorSetLayout; + PFN_vkCreateDescriptorUpdateTemplate CreateDescriptorUpdateTemplate; + PFN_vkCreateEvent CreateEvent; + PFN_vkCreateFence CreateFence; + PFN_vkCreateFramebuffer CreateFramebuffer; + PFN_vkCreateGraphicsPipelines CreateGraphicsPipelines; + PFN_vkCreateImage CreateImage; + PFN_vkCreateImageView CreateImageView; + PFN_vkCreatePipelineCache CreatePipelineCache; + PFN_vkCreatePipelineLayout CreatePipelineLayout; + PFN_vkCreatePrivateDataSlot CreatePrivateDataSlot; + PFN_vkCreateQueryPool CreateQueryPool; + PFN_vkCreateRenderPass CreateRenderPass; + PFN_vkCreateRenderPass2 CreateRenderPass2; + PFN_vkCreateSampler CreateSampler; + PFN_vkCreateSamplerYcbcrConversion CreateSamplerYcbcrConversion; + PFN_vkCreateSemaphore CreateSemaphore; + PFN_vkCreateShaderModule CreateShaderModule; + PFN_vkDestroyBuffer DestroyBuffer; + PFN_vkDestroyBufferView DestroyBufferView; + PFN_vkDestroyCommandPool DestroyCommandPool; + PFN_vkDestroyDescriptorPool DestroyDescriptorPool; + PFN_vkDestroyDescriptorSetLayout DestroyDescriptorSetLayout; + PFN_vkDestroyDescriptorUpdateTemplate DestroyDescriptorUpdateTemplate; + PFN_vkDestroyDevice DestroyDevice; + PFN_vkDestroyEvent DestroyEvent; + PFN_vkDestroyFence DestroyFence; + PFN_vkDestroyFramebuffer DestroyFramebuffer; + PFN_vkDestroyImage DestroyImage; + PFN_vkDestroyImageView DestroyImageView; + PFN_vkDestroyPipeline DestroyPipeline; + PFN_vkDestroyPipelineCache DestroyPipelineCache; + PFN_vkDestroyPipelineLayout DestroyPipelineLayout; + PFN_vkDestroyPrivateDataSlot DestroyPrivateDataSlot; + PFN_vkDestroyQueryPool DestroyQueryPool; + PFN_vkDestroyRenderPass DestroyRenderPass; + PFN_vkDestroySampler DestroySampler; + PFN_vkDestroySamplerYcbcrConversion DestroySamplerYcbcrConversion; + PFN_vkDestroySemaphore DestroySemaphore; + PFN_vkDestroyShaderModule DestroyShaderModule; + PFN_vkDeviceWaitIdle DeviceWaitIdle; + PFN_vkEndCommandBuffer EndCommandBuffer; + PFN_vkFlushMappedMemoryRanges FlushMappedMemoryRanges; + PFN_vkFreeCommandBuffers FreeCommandBuffers; + PFN_vkFreeDescriptorSets FreeDescriptorSets; + PFN_vkFreeMemory FreeMemory; + PFN_vkGetBufferDeviceAddress GetBufferDeviceAddress; + PFN_vkGetBufferMemoryRequirements GetBufferMemoryRequirements; + PFN_vkGetBufferMemoryRequirements2 GetBufferMemoryRequirements2; + PFN_vkGetBufferOpaqueCaptureAddress GetBufferOpaqueCaptureAddress; + PFN_vkGetCalibratedTimestampsEXT GetCalibratedTimestampsEXT; + PFN_vkGetDescriptorSetLayoutSupport GetDescriptorSetLayoutSupport; + PFN_vkGetDeviceBufferMemoryRequirements GetDeviceBufferMemoryRequirements; + PFN_vkGetDeviceGroupPeerMemoryFeatures GetDeviceGroupPeerMemoryFeatures; + PFN_vkGetDeviceImageMemoryRequirements GetDeviceImageMemoryRequirements; + PFN_vkGetDeviceImageSparseMemoryRequirements GetDeviceImageSparseMemoryRequirements; + PFN_vkGetDeviceMemoryCommitment GetDeviceMemoryCommitment; + PFN_vkGetDeviceMemoryOpaqueCaptureAddress GetDeviceMemoryOpaqueCaptureAddress; + PFN_vkGetDeviceProcAddr GetDeviceProcAddr; + PFN_vkGetDeviceQueue GetDeviceQueue; + PFN_vkGetDeviceQueue2 GetDeviceQueue2; + PFN_vkGetEventStatus GetEventStatus; + PFN_vkGetFenceStatus GetFenceStatus; + PFN_vkGetImageDrmFormatModifierPropertiesEXT GetImageDrmFormatModifierPropertiesEXT; + PFN_vkGetImageMemoryRequirements GetImageMemoryRequirements; + PFN_vkGetImageMemoryRequirements2 GetImageMemoryRequirements2; + PFN_vkGetImageSparseMemoryRequirements GetImageSparseMemoryRequirements; + PFN_vkGetImageSparseMemoryRequirements2 GetImageSparseMemoryRequirements2; + PFN_vkGetImageSubresourceLayout GetImageSubresourceLayout; + PFN_vkGetMemoryFdKHR GetMemoryFdKHR; + PFN_vkGetMemoryFdPropertiesKHR GetMemoryFdPropertiesKHR; + PFN_vkGetPipelineCacheData GetPipelineCacheData; + PFN_vkGetPrivateData GetPrivateData; + PFN_vkGetQueryPoolResults GetQueryPoolResults; + PFN_vkGetRenderAreaGranularity GetRenderAreaGranularity; + PFN_vkGetSemaphoreCounterValue GetSemaphoreCounterValue; + PFN_vkInvalidateMappedMemoryRanges InvalidateMappedMemoryRanges; + PFN_vkMapMemory MapMemory; + PFN_vkMergePipelineCaches MergePipelineCaches; + PFN_vkQueueBindSparse QueueBindSparse; + PFN_vkQueueSubmit QueueSubmit; + PFN_vkQueueSubmit2 QueueSubmit2; + PFN_vkQueueWaitIdle QueueWaitIdle; + PFN_vkResetCommandBuffer ResetCommandBuffer; + PFN_vkResetCommandPool ResetCommandPool; + PFN_vkResetDescriptorPool ResetDescriptorPool; + PFN_vkResetEvent ResetEvent; + PFN_vkResetFences ResetFences; + PFN_vkResetQueryPool ResetQueryPool; + PFN_vkSetEvent SetEvent; + PFN_vkSetPrivateData SetPrivateData; + PFN_vkSignalSemaphore SignalSemaphore; + PFN_vkTrimCommandPool TrimCommandPool; + PFN_vkUnmapMemory UnmapMemory; + PFN_vkUpdateDescriptorSetWithTemplate UpdateDescriptorSetWithTemplate; + PFN_vkUpdateDescriptorSets UpdateDescriptorSets; + PFN_vkWaitForFences WaitForFences; + PFN_vkWaitSemaphores WaitSemaphores; +}; + +static inline void +vn_util_init_physical_device_proc_table(VkInstance instance, + struct vn_physical_device_proc_table *proc_table) +{ +#define VN_GIPA(instance, cmd) (PFN_ ## cmd)vkGetInstanceProcAddr(instance, #cmd) + proc_table->GetPhysicalDeviceCalibrateableTimeDomainsEXT = VN_GIPA(instance, vkGetPhysicalDeviceCalibrateableTimeDomainsEXT); + proc_table->GetPhysicalDeviceToolProperties = VN_GIPA(instance, vkGetPhysicalDeviceToolProperties); + if (!proc_table->GetPhysicalDeviceToolProperties) + proc_table->GetPhysicalDeviceToolProperties = VN_GIPA(instance, vkGetPhysicalDeviceToolPropertiesEXT); +#undef VN_GIPA +} + + +static inline void +vn_util_init_device_proc_table(VkDevice dev, + uint32_t api_version, + const struct vn_info_extension_table *ext_table, + struct vn_device_proc_table *proc_table) +{ +#define VN_GDPA(dev, cmd) (PFN_ ## cmd)vkGetDeviceProcAddr(dev, #cmd) + proc_table->AllocateCommandBuffers = VN_GDPA(dev, vkAllocateCommandBuffers); + proc_table->AllocateDescriptorSets = VN_GDPA(dev, vkAllocateDescriptorSets); + proc_table->AllocateMemory = VN_GDPA(dev, vkAllocateMemory); + proc_table->BeginCommandBuffer = VN_GDPA(dev, vkBeginCommandBuffer); + proc_table->BindBufferMemory = VN_GDPA(dev, vkBindBufferMemory); + proc_table->BindBufferMemory2 = + api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkBindBufferMemory2) : + ext_table->KHR_bind_memory2 ? VN_GDPA(dev, vkBindBufferMemory2KHR) : + NULL; + proc_table->BindImageMemory = VN_GDPA(dev, vkBindImageMemory); + proc_table->BindImageMemory2 = + api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkBindImageMemory2) : + ext_table->KHR_bind_memory2 ? VN_GDPA(dev, vkBindImageMemory2KHR) : + NULL; + proc_table->CmdBeginQuery = VN_GDPA(dev, vkCmdBeginQuery); + proc_table->CmdBeginQueryIndexedEXT = + ext_table->EXT_transform_feedback ? VN_GDPA(dev, vkCmdBeginQueryIndexedEXT) : + NULL; + proc_table->CmdBeginRenderPass = VN_GDPA(dev, vkCmdBeginRenderPass); + proc_table->CmdBeginRenderPass2 = + api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkCmdBeginRenderPass2) : + ext_table->KHR_create_renderpass2 ? VN_GDPA(dev, vkCmdBeginRenderPass2KHR) : + NULL; + proc_table->CmdBeginRendering = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdBeginRendering) : + ext_table->KHR_dynamic_rendering ? VN_GDPA(dev, vkCmdBeginRenderingKHR) : + NULL; + proc_table->CmdBeginTransformFeedbackEXT = + ext_table->EXT_transform_feedback ? VN_GDPA(dev, vkCmdBeginTransformFeedbackEXT) : + NULL; + proc_table->CmdBindDescriptorSets = VN_GDPA(dev, vkCmdBindDescriptorSets); + proc_table->CmdBindIndexBuffer = VN_GDPA(dev, vkCmdBindIndexBuffer); + proc_table->CmdBindPipeline = VN_GDPA(dev, vkCmdBindPipeline); + proc_table->CmdBindTransformFeedbackBuffersEXT = + ext_table->EXT_transform_feedback ? VN_GDPA(dev, vkCmdBindTransformFeedbackBuffersEXT) : + NULL; + proc_table->CmdBindVertexBuffers = VN_GDPA(dev, vkCmdBindVertexBuffers); + proc_table->CmdBindVertexBuffers2 = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdBindVertexBuffers2) : + ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdBindVertexBuffers2EXT) : + NULL; + proc_table->CmdBlitImage = VN_GDPA(dev, vkCmdBlitImage); + proc_table->CmdBlitImage2 = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdBlitImage2) : + ext_table->KHR_copy_commands2 ? VN_GDPA(dev, vkCmdBlitImage2KHR) : + NULL; + proc_table->CmdClearAttachments = VN_GDPA(dev, vkCmdClearAttachments); + proc_table->CmdClearColorImage = VN_GDPA(dev, vkCmdClearColorImage); + proc_table->CmdClearDepthStencilImage = VN_GDPA(dev, vkCmdClearDepthStencilImage); + proc_table->CmdCopyBuffer = VN_GDPA(dev, vkCmdCopyBuffer); + proc_table->CmdCopyBuffer2 = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdCopyBuffer2) : + ext_table->KHR_copy_commands2 ? VN_GDPA(dev, vkCmdCopyBuffer2KHR) : + NULL; + proc_table->CmdCopyBufferToImage = VN_GDPA(dev, vkCmdCopyBufferToImage); + proc_table->CmdCopyBufferToImage2 = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdCopyBufferToImage2) : + ext_table->KHR_copy_commands2 ? VN_GDPA(dev, vkCmdCopyBufferToImage2KHR) : + NULL; + proc_table->CmdCopyImage = VN_GDPA(dev, vkCmdCopyImage); + proc_table->CmdCopyImage2 = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdCopyImage2) : + ext_table->KHR_copy_commands2 ? VN_GDPA(dev, vkCmdCopyImage2KHR) : + NULL; + proc_table->CmdCopyImageToBuffer = VN_GDPA(dev, vkCmdCopyImageToBuffer); + proc_table->CmdCopyImageToBuffer2 = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdCopyImageToBuffer2) : + ext_table->KHR_copy_commands2 ? VN_GDPA(dev, vkCmdCopyImageToBuffer2KHR) : + NULL; + proc_table->CmdCopyQueryPoolResults = VN_GDPA(dev, vkCmdCopyQueryPoolResults); + proc_table->CmdDispatch = VN_GDPA(dev, vkCmdDispatch); + proc_table->CmdDispatchBase = + api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkCmdDispatchBase) : + ext_table->KHR_device_group ? VN_GDPA(dev, vkCmdDispatchBaseKHR) : + NULL; + proc_table->CmdDispatchIndirect = VN_GDPA(dev, vkCmdDispatchIndirect); + proc_table->CmdDraw = VN_GDPA(dev, vkCmdDraw); + proc_table->CmdDrawIndexed = VN_GDPA(dev, vkCmdDrawIndexed); + proc_table->CmdDrawIndexedIndirect = VN_GDPA(dev, vkCmdDrawIndexedIndirect); + proc_table->CmdDrawIndexedIndirectCount = + api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkCmdDrawIndexedIndirectCount) : + ext_table->KHR_draw_indirect_count ? VN_GDPA(dev, vkCmdDrawIndexedIndirectCountKHR) : + NULL; + proc_table->CmdDrawIndirect = VN_GDPA(dev, vkCmdDrawIndirect); + proc_table->CmdDrawIndirectByteCountEXT = + ext_table->EXT_transform_feedback ? VN_GDPA(dev, vkCmdDrawIndirectByteCountEXT) : + NULL; + proc_table->CmdDrawIndirectCount = + api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkCmdDrawIndirectCount) : + ext_table->KHR_draw_indirect_count ? VN_GDPA(dev, vkCmdDrawIndirectCountKHR) : + NULL; + proc_table->CmdEndQuery = VN_GDPA(dev, vkCmdEndQuery); + proc_table->CmdEndQueryIndexedEXT = + ext_table->EXT_transform_feedback ? VN_GDPA(dev, vkCmdEndQueryIndexedEXT) : + NULL; + proc_table->CmdEndRenderPass = VN_GDPA(dev, vkCmdEndRenderPass); + proc_table->CmdEndRenderPass2 = + api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkCmdEndRenderPass2) : + ext_table->KHR_create_renderpass2 ? VN_GDPA(dev, vkCmdEndRenderPass2KHR) : + NULL; + proc_table->CmdEndRendering = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdEndRendering) : + ext_table->KHR_dynamic_rendering ? VN_GDPA(dev, vkCmdEndRenderingKHR) : + NULL; + proc_table->CmdEndTransformFeedbackEXT = + ext_table->EXT_transform_feedback ? VN_GDPA(dev, vkCmdEndTransformFeedbackEXT) : + NULL; + proc_table->CmdExecuteCommands = VN_GDPA(dev, vkCmdExecuteCommands); + proc_table->CmdFillBuffer = VN_GDPA(dev, vkCmdFillBuffer); + proc_table->CmdNextSubpass = VN_GDPA(dev, vkCmdNextSubpass); + proc_table->CmdNextSubpass2 = + api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkCmdNextSubpass2) : + ext_table->KHR_create_renderpass2 ? VN_GDPA(dev, vkCmdNextSubpass2KHR) : + NULL; + proc_table->CmdPipelineBarrier = VN_GDPA(dev, vkCmdPipelineBarrier); + proc_table->CmdPipelineBarrier2 = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdPipelineBarrier2) : + ext_table->KHR_synchronization2 ? VN_GDPA(dev, vkCmdPipelineBarrier2KHR) : + NULL; + proc_table->CmdPushConstants = VN_GDPA(dev, vkCmdPushConstants); + proc_table->CmdResetEvent = VN_GDPA(dev, vkCmdResetEvent); + proc_table->CmdResetEvent2 = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdResetEvent2) : + ext_table->KHR_synchronization2 ? VN_GDPA(dev, vkCmdResetEvent2KHR) : + NULL; + proc_table->CmdResetQueryPool = VN_GDPA(dev, vkCmdResetQueryPool); + proc_table->CmdResolveImage = VN_GDPA(dev, vkCmdResolveImage); + proc_table->CmdResolveImage2 = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdResolveImage2) : + ext_table->KHR_copy_commands2 ? VN_GDPA(dev, vkCmdResolveImage2KHR) : + NULL; + proc_table->CmdSetBlendConstants = VN_GDPA(dev, vkCmdSetBlendConstants); + proc_table->CmdSetCullMode = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetCullMode) : + ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetCullModeEXT) : + NULL; + proc_table->CmdSetDepthBias = VN_GDPA(dev, vkCmdSetDepthBias); + proc_table->CmdSetDepthBiasEnable = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetDepthBiasEnable) : + ext_table->EXT_extended_dynamic_state2 ? VN_GDPA(dev, vkCmdSetDepthBiasEnableEXT) : + NULL; + proc_table->CmdSetDepthBounds = VN_GDPA(dev, vkCmdSetDepthBounds); + proc_table->CmdSetDepthBoundsTestEnable = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetDepthBoundsTestEnable) : + ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetDepthBoundsTestEnableEXT) : + NULL; + proc_table->CmdSetDepthCompareOp = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetDepthCompareOp) : + ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetDepthCompareOpEXT) : + NULL; + proc_table->CmdSetDepthTestEnable = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetDepthTestEnable) : + ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetDepthTestEnableEXT) : + NULL; + proc_table->CmdSetDepthWriteEnable = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetDepthWriteEnable) : + ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetDepthWriteEnableEXT) : + NULL; + proc_table->CmdSetDeviceMask = + api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkCmdSetDeviceMask) : + ext_table->KHR_device_group ? VN_GDPA(dev, vkCmdSetDeviceMaskKHR) : + NULL; + proc_table->CmdSetEvent = VN_GDPA(dev, vkCmdSetEvent); + proc_table->CmdSetEvent2 = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetEvent2) : + ext_table->KHR_synchronization2 ? VN_GDPA(dev, vkCmdSetEvent2KHR) : + NULL; + proc_table->CmdSetFrontFace = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetFrontFace) : + ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetFrontFaceEXT) : + NULL; + proc_table->CmdSetLineStippleEXT = + ext_table->EXT_line_rasterization ? VN_GDPA(dev, vkCmdSetLineStippleEXT) : + NULL; + proc_table->CmdSetLineWidth = VN_GDPA(dev, vkCmdSetLineWidth); + proc_table->CmdSetLogicOpEXT = + ext_table->EXT_extended_dynamic_state2 ? VN_GDPA(dev, vkCmdSetLogicOpEXT) : + NULL; + proc_table->CmdSetPatchControlPointsEXT = + ext_table->EXT_extended_dynamic_state2 ? VN_GDPA(dev, vkCmdSetPatchControlPointsEXT) : + NULL; + proc_table->CmdSetPrimitiveRestartEnable = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetPrimitiveRestartEnable) : + ext_table->EXT_extended_dynamic_state2 ? VN_GDPA(dev, vkCmdSetPrimitiveRestartEnableEXT) : + NULL; + proc_table->CmdSetPrimitiveTopology = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetPrimitiveTopology) : + ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetPrimitiveTopologyEXT) : + NULL; + proc_table->CmdSetRasterizerDiscardEnable = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetRasterizerDiscardEnable) : + ext_table->EXT_extended_dynamic_state2 ? VN_GDPA(dev, vkCmdSetRasterizerDiscardEnableEXT) : + NULL; + proc_table->CmdSetScissor = VN_GDPA(dev, vkCmdSetScissor); + proc_table->CmdSetScissorWithCount = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetScissorWithCount) : + ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetScissorWithCountEXT) : + NULL; + proc_table->CmdSetStencilCompareMask = VN_GDPA(dev, vkCmdSetStencilCompareMask); + proc_table->CmdSetStencilOp = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetStencilOp) : + ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetStencilOpEXT) : + NULL; + proc_table->CmdSetStencilReference = VN_GDPA(dev, vkCmdSetStencilReference); + proc_table->CmdSetStencilTestEnable = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetStencilTestEnable) : + ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetStencilTestEnableEXT) : + NULL; + proc_table->CmdSetStencilWriteMask = VN_GDPA(dev, vkCmdSetStencilWriteMask); + proc_table->CmdSetViewport = VN_GDPA(dev, vkCmdSetViewport); + proc_table->CmdSetViewportWithCount = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetViewportWithCount) : + ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetViewportWithCountEXT) : + NULL; + proc_table->CmdUpdateBuffer = VN_GDPA(dev, vkCmdUpdateBuffer); + proc_table->CmdWaitEvents = VN_GDPA(dev, vkCmdWaitEvents); + proc_table->CmdWaitEvents2 = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdWaitEvents2) : + ext_table->KHR_synchronization2 ? VN_GDPA(dev, vkCmdWaitEvents2KHR) : + NULL; + proc_table->CmdWriteTimestamp = VN_GDPA(dev, vkCmdWriteTimestamp); + proc_table->CmdWriteTimestamp2 = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdWriteTimestamp2) : + ext_table->KHR_synchronization2 ? VN_GDPA(dev, vkCmdWriteTimestamp2KHR) : + NULL; + proc_table->CreateBuffer = VN_GDPA(dev, vkCreateBuffer); + proc_table->CreateBufferView = VN_GDPA(dev, vkCreateBufferView); + proc_table->CreateCommandPool = VN_GDPA(dev, vkCreateCommandPool); + proc_table->CreateComputePipelines = VN_GDPA(dev, vkCreateComputePipelines); + proc_table->CreateDescriptorPool = VN_GDPA(dev, vkCreateDescriptorPool); + proc_table->CreateDescriptorSetLayout = VN_GDPA(dev, vkCreateDescriptorSetLayout); + proc_table->CreateDescriptorUpdateTemplate = + api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkCreateDescriptorUpdateTemplate) : + ext_table->KHR_descriptor_update_template ? VN_GDPA(dev, vkCreateDescriptorUpdateTemplateKHR) : + NULL; + proc_table->CreateEvent = VN_GDPA(dev, vkCreateEvent); + proc_table->CreateFence = VN_GDPA(dev, vkCreateFence); + proc_table->CreateFramebuffer = VN_GDPA(dev, vkCreateFramebuffer); + proc_table->CreateGraphicsPipelines = VN_GDPA(dev, vkCreateGraphicsPipelines); + proc_table->CreateImage = VN_GDPA(dev, vkCreateImage); + proc_table->CreateImageView = VN_GDPA(dev, vkCreateImageView); + proc_table->CreatePipelineCache = VN_GDPA(dev, vkCreatePipelineCache); + proc_table->CreatePipelineLayout = VN_GDPA(dev, vkCreatePipelineLayout); + proc_table->CreatePrivateDataSlot = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCreatePrivateDataSlot) : + ext_table->EXT_private_data ? VN_GDPA(dev, vkCreatePrivateDataSlotEXT) : + NULL; + proc_table->CreateQueryPool = VN_GDPA(dev, vkCreateQueryPool); + proc_table->CreateRenderPass = VN_GDPA(dev, vkCreateRenderPass); + proc_table->CreateRenderPass2 = + api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkCreateRenderPass2) : + ext_table->KHR_create_renderpass2 ? VN_GDPA(dev, vkCreateRenderPass2KHR) : + NULL; + proc_table->CreateSampler = VN_GDPA(dev, vkCreateSampler); + proc_table->CreateSamplerYcbcrConversion = + api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkCreateSamplerYcbcrConversion) : + ext_table->KHR_sampler_ycbcr_conversion ? VN_GDPA(dev, vkCreateSamplerYcbcrConversionKHR) : + NULL; + proc_table->CreateSemaphore = VN_GDPA(dev, vkCreateSemaphore); + proc_table->CreateShaderModule = VN_GDPA(dev, vkCreateShaderModule); + proc_table->DestroyBuffer = VN_GDPA(dev, vkDestroyBuffer); + proc_table->DestroyBufferView = VN_GDPA(dev, vkDestroyBufferView); + proc_table->DestroyCommandPool = VN_GDPA(dev, vkDestroyCommandPool); + proc_table->DestroyDescriptorPool = VN_GDPA(dev, vkDestroyDescriptorPool); + proc_table->DestroyDescriptorSetLayout = VN_GDPA(dev, vkDestroyDescriptorSetLayout); + proc_table->DestroyDescriptorUpdateTemplate = + api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkDestroyDescriptorUpdateTemplate) : + ext_table->KHR_descriptor_update_template ? VN_GDPA(dev, vkDestroyDescriptorUpdateTemplateKHR) : + NULL; + proc_table->DestroyDevice = VN_GDPA(dev, vkDestroyDevice); + proc_table->DestroyEvent = VN_GDPA(dev, vkDestroyEvent); + proc_table->DestroyFence = VN_GDPA(dev, vkDestroyFence); + proc_table->DestroyFramebuffer = VN_GDPA(dev, vkDestroyFramebuffer); + proc_table->DestroyImage = VN_GDPA(dev, vkDestroyImage); + proc_table->DestroyImageView = VN_GDPA(dev, vkDestroyImageView); + proc_table->DestroyPipeline = VN_GDPA(dev, vkDestroyPipeline); + proc_table->DestroyPipelineCache = VN_GDPA(dev, vkDestroyPipelineCache); + proc_table->DestroyPipelineLayout = VN_GDPA(dev, vkDestroyPipelineLayout); + proc_table->DestroyPrivateDataSlot = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkDestroyPrivateDataSlot) : + ext_table->EXT_private_data ? VN_GDPA(dev, vkDestroyPrivateDataSlotEXT) : + NULL; + proc_table->DestroyQueryPool = VN_GDPA(dev, vkDestroyQueryPool); + proc_table->DestroyRenderPass = VN_GDPA(dev, vkDestroyRenderPass); + proc_table->DestroySampler = VN_GDPA(dev, vkDestroySampler); + proc_table->DestroySamplerYcbcrConversion = + api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkDestroySamplerYcbcrConversion) : + ext_table->KHR_sampler_ycbcr_conversion ? VN_GDPA(dev, vkDestroySamplerYcbcrConversionKHR) : + NULL; + proc_table->DestroySemaphore = VN_GDPA(dev, vkDestroySemaphore); + proc_table->DestroyShaderModule = VN_GDPA(dev, vkDestroyShaderModule); + proc_table->DeviceWaitIdle = VN_GDPA(dev, vkDeviceWaitIdle); + proc_table->EndCommandBuffer = VN_GDPA(dev, vkEndCommandBuffer); + proc_table->FlushMappedMemoryRanges = VN_GDPA(dev, vkFlushMappedMemoryRanges); + proc_table->FreeCommandBuffers = VN_GDPA(dev, vkFreeCommandBuffers); + proc_table->FreeDescriptorSets = VN_GDPA(dev, vkFreeDescriptorSets); + proc_table->FreeMemory = VN_GDPA(dev, vkFreeMemory); + proc_table->GetBufferDeviceAddress = + api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkGetBufferDeviceAddress) : + ext_table->KHR_buffer_device_address ? VN_GDPA(dev, vkGetBufferDeviceAddressKHR) : + NULL; + proc_table->GetBufferMemoryRequirements = VN_GDPA(dev, vkGetBufferMemoryRequirements); + proc_table->GetBufferMemoryRequirements2 = + api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkGetBufferMemoryRequirements2) : + ext_table->KHR_get_memory_requirements2 ? VN_GDPA(dev, vkGetBufferMemoryRequirements2KHR) : + NULL; + proc_table->GetBufferOpaqueCaptureAddress = + api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkGetBufferOpaqueCaptureAddress) : + ext_table->KHR_buffer_device_address ? VN_GDPA(dev, vkGetBufferOpaqueCaptureAddressKHR) : + NULL; + proc_table->GetCalibratedTimestampsEXT = + ext_table->EXT_calibrated_timestamps ? VN_GDPA(dev, vkGetCalibratedTimestampsEXT) : + NULL; + proc_table->GetDescriptorSetLayoutSupport = + api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkGetDescriptorSetLayoutSupport) : + ext_table->KHR_maintenance3 ? VN_GDPA(dev, vkGetDescriptorSetLayoutSupportKHR) : + NULL; + proc_table->GetDeviceBufferMemoryRequirements = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkGetDeviceBufferMemoryRequirements) : + ext_table->KHR_maintenance4 ? VN_GDPA(dev, vkGetDeviceBufferMemoryRequirementsKHR) : + NULL; + proc_table->GetDeviceGroupPeerMemoryFeatures = + api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkGetDeviceGroupPeerMemoryFeatures) : + ext_table->KHR_device_group ? VN_GDPA(dev, vkGetDeviceGroupPeerMemoryFeaturesKHR) : + NULL; + proc_table->GetDeviceImageMemoryRequirements = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkGetDeviceImageMemoryRequirements) : + ext_table->KHR_maintenance4 ? VN_GDPA(dev, vkGetDeviceImageMemoryRequirementsKHR) : + NULL; + proc_table->GetDeviceImageSparseMemoryRequirements = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkGetDeviceImageSparseMemoryRequirements) : + ext_table->KHR_maintenance4 ? VN_GDPA(dev, vkGetDeviceImageSparseMemoryRequirementsKHR) : + NULL; + proc_table->GetDeviceMemoryCommitment = VN_GDPA(dev, vkGetDeviceMemoryCommitment); + proc_table->GetDeviceMemoryOpaqueCaptureAddress = + api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkGetDeviceMemoryOpaqueCaptureAddress) : + ext_table->KHR_buffer_device_address ? VN_GDPA(dev, vkGetDeviceMemoryOpaqueCaptureAddressKHR) : + NULL; + proc_table->GetDeviceProcAddr = VN_GDPA(dev, vkGetDeviceProcAddr); + proc_table->GetDeviceQueue = VN_GDPA(dev, vkGetDeviceQueue); + proc_table->GetDeviceQueue2 = + api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkGetDeviceQueue2) : + NULL; + proc_table->GetEventStatus = VN_GDPA(dev, vkGetEventStatus); + proc_table->GetFenceStatus = VN_GDPA(dev, vkGetFenceStatus); + proc_table->GetImageDrmFormatModifierPropertiesEXT = + ext_table->EXT_image_drm_format_modifier ? VN_GDPA(dev, vkGetImageDrmFormatModifierPropertiesEXT) : + NULL; + proc_table->GetImageMemoryRequirements = VN_GDPA(dev, vkGetImageMemoryRequirements); + proc_table->GetImageMemoryRequirements2 = + api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkGetImageMemoryRequirements2) : + ext_table->KHR_get_memory_requirements2 ? VN_GDPA(dev, vkGetImageMemoryRequirements2KHR) : + NULL; + proc_table->GetImageSparseMemoryRequirements = VN_GDPA(dev, vkGetImageSparseMemoryRequirements); + proc_table->GetImageSparseMemoryRequirements2 = + api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkGetImageSparseMemoryRequirements2) : + ext_table->KHR_get_memory_requirements2 ? VN_GDPA(dev, vkGetImageSparseMemoryRequirements2KHR) : + NULL; + proc_table->GetImageSubresourceLayout = VN_GDPA(dev, vkGetImageSubresourceLayout); + proc_table->GetMemoryFdKHR = + ext_table->KHR_external_memory_fd ? VN_GDPA(dev, vkGetMemoryFdKHR) : + NULL; + proc_table->GetMemoryFdPropertiesKHR = + ext_table->KHR_external_memory_fd ? VN_GDPA(dev, vkGetMemoryFdPropertiesKHR) : + NULL; + proc_table->GetPipelineCacheData = VN_GDPA(dev, vkGetPipelineCacheData); + proc_table->GetPrivateData = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkGetPrivateData) : + ext_table->EXT_private_data ? VN_GDPA(dev, vkGetPrivateDataEXT) : + NULL; + proc_table->GetQueryPoolResults = VN_GDPA(dev, vkGetQueryPoolResults); + proc_table->GetRenderAreaGranularity = VN_GDPA(dev, vkGetRenderAreaGranularity); + proc_table->GetSemaphoreCounterValue = + api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkGetSemaphoreCounterValue) : + ext_table->KHR_timeline_semaphore ? VN_GDPA(dev, vkGetSemaphoreCounterValueKHR) : + NULL; + proc_table->InvalidateMappedMemoryRanges = VN_GDPA(dev, vkInvalidateMappedMemoryRanges); + proc_table->MapMemory = VN_GDPA(dev, vkMapMemory); + proc_table->MergePipelineCaches = VN_GDPA(dev, vkMergePipelineCaches); + proc_table->QueueBindSparse = VN_GDPA(dev, vkQueueBindSparse); + proc_table->QueueSubmit = VN_GDPA(dev, vkQueueSubmit); + proc_table->QueueSubmit2 = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkQueueSubmit2) : + ext_table->KHR_synchronization2 ? VN_GDPA(dev, vkQueueSubmit2KHR) : + NULL; + proc_table->QueueWaitIdle = VN_GDPA(dev, vkQueueWaitIdle); + proc_table->ResetCommandBuffer = VN_GDPA(dev, vkResetCommandBuffer); + proc_table->ResetCommandPool = VN_GDPA(dev, vkResetCommandPool); + proc_table->ResetDescriptorPool = VN_GDPA(dev, vkResetDescriptorPool); + proc_table->ResetEvent = VN_GDPA(dev, vkResetEvent); + proc_table->ResetFences = VN_GDPA(dev, vkResetFences); + proc_table->ResetQueryPool = + api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkResetQueryPool) : + ext_table->EXT_host_query_reset ? VN_GDPA(dev, vkResetQueryPoolEXT) : + NULL; + proc_table->SetEvent = VN_GDPA(dev, vkSetEvent); + proc_table->SetPrivateData = + api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkSetPrivateData) : + ext_table->EXT_private_data ? VN_GDPA(dev, vkSetPrivateDataEXT) : + NULL; + proc_table->SignalSemaphore = + api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkSignalSemaphore) : + ext_table->KHR_timeline_semaphore ? VN_GDPA(dev, vkSignalSemaphoreKHR) : + NULL; + proc_table->TrimCommandPool = + api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkTrimCommandPool) : + ext_table->KHR_maintenance1 ? VN_GDPA(dev, vkTrimCommandPoolKHR) : + NULL; + proc_table->UnmapMemory = VN_GDPA(dev, vkUnmapMemory); + proc_table->UpdateDescriptorSetWithTemplate = + api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkUpdateDescriptorSetWithTemplate) : + ext_table->KHR_descriptor_update_template ? VN_GDPA(dev, vkUpdateDescriptorSetWithTemplateKHR) : + NULL; + proc_table->UpdateDescriptorSets = VN_GDPA(dev, vkUpdateDescriptorSets); + proc_table->WaitForFences = VN_GDPA(dev, vkWaitForFences); + proc_table->WaitSemaphores = + api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkWaitSemaphores) : + ext_table->KHR_timeline_semaphore ? VN_GDPA(dev, vkWaitSemaphoresKHR) : + NULL; +#undef VN_GDPA +} + +#endif /* VN_PROTOCOL_RENDERER_UTIL_H */