mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Micro-optimize the Vulkan loader: Load more device-specific function pointers to avoid a bounce in the device loader, reorder things a little.
This commit is contained in:
parent
ddb5208130
commit
f4d348ca0c
1 changed files with 126 additions and 129 deletions
|
@ -61,9 +61,7 @@ PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImag
|
|||
PFN_vkQueueBindSparse vkQueueBindSparse;
|
||||
PFN_vkCreateFence vkCreateFence;
|
||||
PFN_vkDestroyFence vkDestroyFence;
|
||||
PFN_vkResetFences vkResetFences;
|
||||
PFN_vkGetFenceStatus vkGetFenceStatus;
|
||||
PFN_vkWaitForFences vkWaitForFences;
|
||||
PFN_vkCreateSemaphore vkCreateSemaphore;
|
||||
PFN_vkDestroySemaphore vkDestroySemaphore;
|
||||
PFN_vkCreateEvent vkCreateEvent;
|
||||
|
@ -115,7 +113,7 @@ PFN_vkResetCommandPool vkResetCommandPool;
|
|||
PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers;
|
||||
PFN_vkFreeCommandBuffers vkFreeCommandBuffers;
|
||||
|
||||
// Used frequently
|
||||
// Used frequently together
|
||||
PFN_vkCmdBindPipeline vkCmdBindPipeline;
|
||||
PFN_vkCmdSetViewport vkCmdSetViewport;
|
||||
PFN_vkCmdSetScissor vkCmdSetScissor;
|
||||
|
@ -128,14 +126,16 @@ PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer;
|
|||
PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers;
|
||||
PFN_vkCmdDraw vkCmdDraw;
|
||||
PFN_vkCmdDrawIndexed vkCmdDrawIndexed;
|
||||
PFN_vkCmdClearAttachments vkCmdClearAttachments;
|
||||
PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier;
|
||||
PFN_vkCmdPushConstants vkCmdPushConstants;
|
||||
|
||||
// Every frame to a few times per frame
|
||||
PFN_vkWaitForFences vkWaitForFences;
|
||||
PFN_vkResetFences vkResetFences;
|
||||
PFN_vkBeginCommandBuffer vkBeginCommandBuffer;
|
||||
PFN_vkEndCommandBuffer vkEndCommandBuffer;
|
||||
PFN_vkResetCommandBuffer vkResetCommandBuffer;
|
||||
PFN_vkCmdClearAttachments vkCmdClearAttachments;
|
||||
PFN_vkCmdSetEvent vkCmdSetEvent;
|
||||
PFN_vkCmdResetEvent vkCmdResetEvent;
|
||||
PFN_vkCmdWaitEvents vkCmdWaitEvents;
|
||||
|
@ -147,6 +147,7 @@ PFN_vkCmdBlitImage vkCmdBlitImage;
|
|||
PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage;
|
||||
PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer;
|
||||
|
||||
// Rare or not used
|
||||
PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds;
|
||||
PFN_vkCmdSetLineWidth vkCmdSetLineWidth;
|
||||
PFN_vkCmdSetDepthBias vkCmdSetDepthBias;
|
||||
|
@ -439,125 +440,7 @@ void VulkanLoadInstanceFunctions(VkInstance instance, const VulkanDeviceExtensio
|
|||
LOAD_INSTANCE_FUNC(instance, vkEnumerateDeviceExtensionProperties);
|
||||
LOAD_INSTANCE_FUNC(instance, vkEnumerateDeviceLayerProperties);
|
||||
LOAD_INSTANCE_FUNC(instance, vkGetDeviceQueue);
|
||||
LOAD_INSTANCE_FUNC(instance, vkQueueSubmit);
|
||||
LOAD_INSTANCE_FUNC(instance, vkQueueWaitIdle);
|
||||
LOAD_INSTANCE_FUNC(instance, vkDeviceWaitIdle);
|
||||
LOAD_INSTANCE_FUNC(instance, vkAllocateMemory);
|
||||
LOAD_INSTANCE_FUNC(instance, vkFreeMemory);
|
||||
LOAD_INSTANCE_FUNC(instance, vkMapMemory);
|
||||
LOAD_INSTANCE_FUNC(instance, vkUnmapMemory);
|
||||
LOAD_INSTANCE_FUNC(instance, vkFlushMappedMemoryRanges);
|
||||
LOAD_INSTANCE_FUNC(instance, vkInvalidateMappedMemoryRanges);
|
||||
LOAD_INSTANCE_FUNC(instance, vkGetDeviceMemoryCommitment);
|
||||
LOAD_INSTANCE_FUNC(instance, vkBindBufferMemory);
|
||||
LOAD_INSTANCE_FUNC(instance, vkBindImageMemory);
|
||||
LOAD_INSTANCE_FUNC(instance, vkGetBufferMemoryRequirements);
|
||||
LOAD_INSTANCE_FUNC(instance, vkGetImageMemoryRequirements);
|
||||
LOAD_INSTANCE_FUNC(instance, vkGetImageSparseMemoryRequirements);
|
||||
LOAD_INSTANCE_FUNC(instance, vkGetPhysicalDeviceSparseImageFormatProperties);
|
||||
LOAD_INSTANCE_FUNC(instance, vkQueueBindSparse);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCreateFence);
|
||||
LOAD_INSTANCE_FUNC(instance, vkDestroyFence);
|
||||
LOAD_INSTANCE_FUNC(instance, vkResetFences);
|
||||
LOAD_INSTANCE_FUNC(instance, vkGetFenceStatus);
|
||||
LOAD_INSTANCE_FUNC(instance, vkWaitForFences);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCreateSemaphore);
|
||||
LOAD_INSTANCE_FUNC(instance, vkDestroySemaphore);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCreateEvent);
|
||||
LOAD_INSTANCE_FUNC(instance, vkDestroyEvent);
|
||||
LOAD_INSTANCE_FUNC(instance, vkGetEventStatus);
|
||||
LOAD_INSTANCE_FUNC(instance, vkSetEvent);
|
||||
LOAD_INSTANCE_FUNC(instance, vkResetEvent);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCreateQueryPool);
|
||||
LOAD_INSTANCE_FUNC(instance, vkDestroyQueryPool);
|
||||
LOAD_INSTANCE_FUNC(instance, vkGetQueryPoolResults);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCreateBuffer);
|
||||
LOAD_INSTANCE_FUNC(instance, vkDestroyBuffer);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCreateBufferView);
|
||||
LOAD_INSTANCE_FUNC(instance, vkDestroyBufferView);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCreateImage);
|
||||
LOAD_INSTANCE_FUNC(instance, vkDestroyImage);
|
||||
LOAD_INSTANCE_FUNC(instance, vkGetImageSubresourceLayout);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCreateImageView);
|
||||
LOAD_INSTANCE_FUNC(instance, vkDestroyImageView);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCreateShaderModule);
|
||||
LOAD_INSTANCE_FUNC(instance, vkDestroyShaderModule);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCreatePipelineCache);
|
||||
LOAD_INSTANCE_FUNC(instance, vkDestroyPipelineCache);
|
||||
LOAD_INSTANCE_FUNC(instance, vkGetPipelineCacheData);
|
||||
LOAD_INSTANCE_FUNC(instance, vkMergePipelineCaches);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCreateGraphicsPipelines);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCreateComputePipelines);
|
||||
LOAD_INSTANCE_FUNC(instance, vkDestroyPipeline);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCreatePipelineLayout);
|
||||
LOAD_INSTANCE_FUNC(instance, vkDestroyPipelineLayout);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCreateSampler);
|
||||
LOAD_INSTANCE_FUNC(instance, vkDestroySampler);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCreateDescriptorSetLayout);
|
||||
LOAD_INSTANCE_FUNC(instance, vkDestroyDescriptorSetLayout);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCreateDescriptorPool);
|
||||
LOAD_INSTANCE_FUNC(instance, vkDestroyDescriptorPool);
|
||||
LOAD_INSTANCE_FUNC(instance, vkResetDescriptorPool);
|
||||
LOAD_INSTANCE_FUNC(instance, vkAllocateDescriptorSets);
|
||||
LOAD_INSTANCE_FUNC(instance, vkFreeDescriptorSets);
|
||||
LOAD_INSTANCE_FUNC(instance, vkUpdateDescriptorSets);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCreateFramebuffer);
|
||||
LOAD_INSTANCE_FUNC(instance, vkDestroyFramebuffer);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCreateRenderPass);
|
||||
LOAD_INSTANCE_FUNC(instance, vkDestroyRenderPass);
|
||||
LOAD_INSTANCE_FUNC(instance, vkGetRenderAreaGranularity);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCreateCommandPool);
|
||||
LOAD_INSTANCE_FUNC(instance, vkDestroyCommandPool);
|
||||
LOAD_INSTANCE_FUNC(instance, vkResetCommandPool);
|
||||
LOAD_INSTANCE_FUNC(instance, vkAllocateCommandBuffers);
|
||||
LOAD_INSTANCE_FUNC(instance, vkFreeCommandBuffers);
|
||||
LOAD_INSTANCE_FUNC(instance, vkBeginCommandBuffer);
|
||||
LOAD_INSTANCE_FUNC(instance, vkEndCommandBuffer);
|
||||
LOAD_INSTANCE_FUNC(instance, vkResetCommandBuffer);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdBindPipeline);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdSetViewport);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdSetScissor);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdSetLineWidth);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdSetDepthBias);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdSetBlendConstants);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdSetDepthBounds);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdSetStencilCompareMask);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdSetStencilWriteMask);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdSetStencilReference);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdBindDescriptorSets);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdBindIndexBuffer);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdBindVertexBuffers);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdDraw);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdDrawIndexed);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdDrawIndirect);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdDrawIndexedIndirect);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdDispatch);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdDispatchIndirect);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdCopyBuffer);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdCopyImage);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdBlitImage);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdCopyBufferToImage);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdCopyImageToBuffer);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdUpdateBuffer);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdFillBuffer);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdClearColorImage);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdClearDepthStencilImage);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdClearAttachments);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdResolveImage);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdSetEvent);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdResetEvent);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdWaitEvents);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdPipelineBarrier);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdBeginQuery);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdEndQuery);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdResetQueryPool);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdWriteTimestamp);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdCopyQueryPoolResults);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdPushConstants);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdBeginRenderPass);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdNextSubpass);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdEndRenderPass);
|
||||
LOAD_INSTANCE_FUNC(instance, vkCmdExecuteCommands);
|
||||
|
||||
LOAD_INSTANCE_FUNC(instance, vkGetPhysicalDeviceSurfaceSupportKHR);
|
||||
LOAD_INSTANCE_FUNC(instance, vkGetPhysicalDeviceSurfaceCapabilitiesKHR);
|
||||
|
@ -609,15 +492,129 @@ void VulkanLoadInstanceFunctions(VkInstance instance, const VulkanDeviceExtensio
|
|||
|
||||
// On some implementations, loading functions (that have Device as their first parameter) via vkGetDeviceProcAddr may
|
||||
// increase performance - but then these function pointers will only work on that specific device. Thus, this loader is not very
|
||||
// good for multi-device.
|
||||
// good for multi-device - not likely we'll ever try that anyway though.
|
||||
void VulkanLoadDeviceFunctions(VkDevice device, const VulkanDeviceExtensions &enabledExtensions) {
|
||||
WLOG("Vulkan device functions loaded.");
|
||||
// TODO: Move more functions VulkanLoadInstanceFunctions to here.
|
||||
LOAD_DEVICE_FUNC(device, vkCreateSwapchainKHR);
|
||||
LOAD_DEVICE_FUNC(device, vkDestroySwapchainKHR);
|
||||
LOAD_DEVICE_FUNC(device, vkGetSwapchainImagesKHR);
|
||||
LOAD_DEVICE_FUNC(device, vkAcquireNextImageKHR);
|
||||
LOAD_DEVICE_FUNC(device, vkQueuePresentKHR);
|
||||
|
||||
LOAD_DEVICE_FUNC(device, vkQueueSubmit);
|
||||
LOAD_DEVICE_FUNC(device, vkQueueWaitIdle);
|
||||
LOAD_DEVICE_FUNC(device, vkAllocateMemory);
|
||||
LOAD_DEVICE_FUNC(device, vkFreeMemory);
|
||||
LOAD_DEVICE_FUNC(device, vkMapMemory);
|
||||
LOAD_DEVICE_FUNC(device, vkUnmapMemory);
|
||||
LOAD_DEVICE_FUNC(device, vkFlushMappedMemoryRanges);
|
||||
LOAD_DEVICE_FUNC(device, vkInvalidateMappedMemoryRanges);
|
||||
LOAD_DEVICE_FUNC(device, vkGetDeviceMemoryCommitment);
|
||||
LOAD_DEVICE_FUNC(device, vkBindBufferMemory);
|
||||
LOAD_DEVICE_FUNC(device, vkBindImageMemory);
|
||||
LOAD_DEVICE_FUNC(device, vkGetBufferMemoryRequirements);
|
||||
LOAD_DEVICE_FUNC(device, vkGetImageMemoryRequirements);
|
||||
LOAD_DEVICE_FUNC(device, vkGetImageSparseMemoryRequirements);
|
||||
LOAD_DEVICE_FUNC(device, vkGetPhysicalDeviceSparseImageFormatProperties);
|
||||
LOAD_DEVICE_FUNC(device, vkQueueBindSparse);
|
||||
LOAD_DEVICE_FUNC(device, vkCreateFence);
|
||||
LOAD_DEVICE_FUNC(device, vkDestroyFence);
|
||||
LOAD_DEVICE_FUNC(device, vkResetFences);
|
||||
LOAD_DEVICE_FUNC(device, vkGetFenceStatus);
|
||||
LOAD_DEVICE_FUNC(device, vkWaitForFences);
|
||||
LOAD_DEVICE_FUNC(device, vkCreateSemaphore);
|
||||
LOAD_DEVICE_FUNC(device, vkDestroySemaphore);
|
||||
LOAD_DEVICE_FUNC(device, vkCreateEvent);
|
||||
LOAD_DEVICE_FUNC(device, vkDestroyEvent);
|
||||
LOAD_DEVICE_FUNC(device, vkGetEventStatus);
|
||||
LOAD_DEVICE_FUNC(device, vkSetEvent);
|
||||
LOAD_DEVICE_FUNC(device, vkResetEvent);
|
||||
LOAD_DEVICE_FUNC(device, vkCreateQueryPool);
|
||||
LOAD_DEVICE_FUNC(device, vkDestroyQueryPool);
|
||||
LOAD_DEVICE_FUNC(device, vkGetQueryPoolResults);
|
||||
LOAD_DEVICE_FUNC(device, vkCreateBuffer);
|
||||
LOAD_DEVICE_FUNC(device, vkDestroyBuffer);
|
||||
LOAD_DEVICE_FUNC(device, vkCreateBufferView);
|
||||
LOAD_DEVICE_FUNC(device, vkDestroyBufferView);
|
||||
LOAD_DEVICE_FUNC(device, vkCreateImage);
|
||||
LOAD_DEVICE_FUNC(device, vkDestroyImage);
|
||||
LOAD_DEVICE_FUNC(device, vkGetImageSubresourceLayout);
|
||||
LOAD_DEVICE_FUNC(device, vkCreateImageView);
|
||||
LOAD_DEVICE_FUNC(device, vkDestroyImageView);
|
||||
LOAD_DEVICE_FUNC(device, vkCreateShaderModule);
|
||||
LOAD_DEVICE_FUNC(device, vkDestroyShaderModule);
|
||||
LOAD_DEVICE_FUNC(device, vkCreatePipelineCache);
|
||||
LOAD_DEVICE_FUNC(device, vkDestroyPipelineCache);
|
||||
LOAD_DEVICE_FUNC(device, vkGetPipelineCacheData);
|
||||
LOAD_DEVICE_FUNC(device, vkMergePipelineCaches);
|
||||
LOAD_DEVICE_FUNC(device, vkCreateGraphicsPipelines);
|
||||
LOAD_DEVICE_FUNC(device, vkCreateComputePipelines);
|
||||
LOAD_DEVICE_FUNC(device, vkDestroyPipeline);
|
||||
LOAD_DEVICE_FUNC(device, vkCreatePipelineLayout);
|
||||
LOAD_DEVICE_FUNC(device, vkDestroyPipelineLayout);
|
||||
LOAD_DEVICE_FUNC(device, vkCreateSampler);
|
||||
LOAD_DEVICE_FUNC(device, vkDestroySampler);
|
||||
LOAD_DEVICE_FUNC(device, vkCreateDescriptorSetLayout);
|
||||
LOAD_DEVICE_FUNC(device, vkDestroyDescriptorSetLayout);
|
||||
LOAD_DEVICE_FUNC(device, vkCreateDescriptorPool);
|
||||
LOAD_DEVICE_FUNC(device, vkDestroyDescriptorPool);
|
||||
LOAD_DEVICE_FUNC(device, vkResetDescriptorPool);
|
||||
LOAD_DEVICE_FUNC(device, vkAllocateDescriptorSets);
|
||||
LOAD_DEVICE_FUNC(device, vkFreeDescriptorSets);
|
||||
LOAD_DEVICE_FUNC(device, vkUpdateDescriptorSets);
|
||||
LOAD_DEVICE_FUNC(device, vkCreateFramebuffer);
|
||||
LOAD_DEVICE_FUNC(device, vkDestroyFramebuffer);
|
||||
LOAD_DEVICE_FUNC(device, vkCreateRenderPass);
|
||||
LOAD_DEVICE_FUNC(device, vkDestroyRenderPass);
|
||||
LOAD_DEVICE_FUNC(device, vkGetRenderAreaGranularity);
|
||||
LOAD_DEVICE_FUNC(device, vkCreateCommandPool);
|
||||
LOAD_DEVICE_FUNC(device, vkDestroyCommandPool);
|
||||
LOAD_DEVICE_FUNC(device, vkResetCommandPool);
|
||||
LOAD_DEVICE_FUNC(device, vkAllocateCommandBuffers);
|
||||
LOAD_DEVICE_FUNC(device, vkFreeCommandBuffers);
|
||||
LOAD_DEVICE_FUNC(device, vkBeginCommandBuffer);
|
||||
LOAD_DEVICE_FUNC(device, vkEndCommandBuffer);
|
||||
LOAD_DEVICE_FUNC(device, vkResetCommandBuffer);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdBindPipeline);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdSetViewport);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdSetScissor);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdSetLineWidth);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdSetDepthBias);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdSetBlendConstants);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdSetDepthBounds);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdSetStencilCompareMask);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdSetStencilWriteMask);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdSetStencilReference);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdBindDescriptorSets);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdBindIndexBuffer);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdBindVertexBuffers);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdDraw);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdDrawIndexed);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdDrawIndirect);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdDrawIndexedIndirect);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdDispatch);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdDispatchIndirect);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdCopyBuffer);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdCopyImage);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdBlitImage);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdCopyBufferToImage);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdCopyImageToBuffer);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdUpdateBuffer);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdFillBuffer);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdClearColorImage);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdClearDepthStencilImage);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdClearAttachments);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdResolveImage);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdSetEvent);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdResetEvent);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdWaitEvents);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdPipelineBarrier);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdBeginQuery);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdEndQuery);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdResetQueryPool);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdWriteTimestamp);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdCopyQueryPoolResults);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdPushConstants);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdBeginRenderPass);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdNextSubpass);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdEndRenderPass);
|
||||
LOAD_DEVICE_FUNC(device, vkCmdExecuteCommands);
|
||||
|
||||
if (enabledExtensions.EXT_external_memory_host) {
|
||||
LOAD_DEVICE_FUNC(device, vkGetMemoryHostPointerPropertiesEXT);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue