From bd66db049a442642fef0d6e3a51a466aa3438729 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Sun, 27 Jan 2019 12:51:03 +1000 Subject: [PATCH] Vulkan: Use device-local functions where possible Avoids a call into the loader library, which may improve performance ever-so-slightly. --- .../Vulkan/VulkanEntryPoints.inl | 241 +++++++++--------- 1 file changed, 120 insertions(+), 121 deletions(-) diff --git a/Source/Core/VideoBackends/Vulkan/VulkanEntryPoints.inl b/Source/Core/VideoBackends/Vulkan/VulkanEntryPoints.inl index 333efa62b2..54a7f43e24 100644 --- a/Source/Core/VideoBackends/Vulkan/VulkanEntryPoints.inl +++ b/Source/Core/VideoBackends/Vulkan/VulkanEntryPoints.inl @@ -29,130 +29,9 @@ VULKAN_INSTANCE_ENTRY_POINT(vkGetPhysicalDeviceProperties, true) VULKAN_INSTANCE_ENTRY_POINT(vkGetPhysicalDeviceQueueFamilyProperties, true) VULKAN_INSTANCE_ENTRY_POINT(vkGetPhysicalDeviceMemoryProperties, true) VULKAN_INSTANCE_ENTRY_POINT(vkCreateDevice, true) -VULKAN_INSTANCE_ENTRY_POINT(vkDestroyDevice, true) VULKAN_INSTANCE_ENTRY_POINT(vkEnumerateDeviceExtensionProperties, true) VULKAN_INSTANCE_ENTRY_POINT(vkEnumerateDeviceLayerProperties, true) -VULKAN_INSTANCE_ENTRY_POINT(vkGetDeviceQueue, true) -VULKAN_INSTANCE_ENTRY_POINT(vkQueueSubmit, true) -VULKAN_INSTANCE_ENTRY_POINT(vkQueueWaitIdle, true) -VULKAN_INSTANCE_ENTRY_POINT(vkDeviceWaitIdle, true) -VULKAN_INSTANCE_ENTRY_POINT(vkAllocateMemory, true) -VULKAN_INSTANCE_ENTRY_POINT(vkFreeMemory, true) -VULKAN_INSTANCE_ENTRY_POINT(vkMapMemory, true) -VULKAN_INSTANCE_ENTRY_POINT(vkUnmapMemory, true) -VULKAN_INSTANCE_ENTRY_POINT(vkFlushMappedMemoryRanges, true) -VULKAN_INSTANCE_ENTRY_POINT(vkInvalidateMappedMemoryRanges, true) -VULKAN_INSTANCE_ENTRY_POINT(vkGetDeviceMemoryCommitment, true) -VULKAN_INSTANCE_ENTRY_POINT(vkBindBufferMemory, true) -VULKAN_INSTANCE_ENTRY_POINT(vkBindImageMemory, true) -VULKAN_INSTANCE_ENTRY_POINT(vkGetBufferMemoryRequirements, true) -VULKAN_INSTANCE_ENTRY_POINT(vkGetImageMemoryRequirements, true) -VULKAN_INSTANCE_ENTRY_POINT(vkGetImageSparseMemoryRequirements, true) VULKAN_INSTANCE_ENTRY_POINT(vkGetPhysicalDeviceSparseImageFormatProperties, true) -VULKAN_INSTANCE_ENTRY_POINT(vkQueueBindSparse, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCreateFence, true) -VULKAN_INSTANCE_ENTRY_POINT(vkDestroyFence, true) -VULKAN_INSTANCE_ENTRY_POINT(vkResetFences, true) -VULKAN_INSTANCE_ENTRY_POINT(vkGetFenceStatus, true) -VULKAN_INSTANCE_ENTRY_POINT(vkWaitForFences, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCreateSemaphore, true) -VULKAN_INSTANCE_ENTRY_POINT(vkDestroySemaphore, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCreateEvent, true) -VULKAN_INSTANCE_ENTRY_POINT(vkDestroyEvent, true) -VULKAN_INSTANCE_ENTRY_POINT(vkGetEventStatus, true) -VULKAN_INSTANCE_ENTRY_POINT(vkSetEvent, true) -VULKAN_INSTANCE_ENTRY_POINT(vkResetEvent, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCreateQueryPool, true) -VULKAN_INSTANCE_ENTRY_POINT(vkDestroyQueryPool, true) -VULKAN_INSTANCE_ENTRY_POINT(vkGetQueryPoolResults, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCreateBuffer, true) -VULKAN_INSTANCE_ENTRY_POINT(vkDestroyBuffer, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCreateBufferView, true) -VULKAN_INSTANCE_ENTRY_POINT(vkDestroyBufferView, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCreateImage, true) -VULKAN_INSTANCE_ENTRY_POINT(vkDestroyImage, true) -VULKAN_INSTANCE_ENTRY_POINT(vkGetImageSubresourceLayout, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCreateImageView, true) -VULKAN_INSTANCE_ENTRY_POINT(vkDestroyImageView, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCreateShaderModule, true) -VULKAN_INSTANCE_ENTRY_POINT(vkDestroyShaderModule, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCreatePipelineCache, true) -VULKAN_INSTANCE_ENTRY_POINT(vkDestroyPipelineCache, true) -VULKAN_INSTANCE_ENTRY_POINT(vkGetPipelineCacheData, true) -VULKAN_INSTANCE_ENTRY_POINT(vkMergePipelineCaches, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCreateGraphicsPipelines, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCreateComputePipelines, true) -VULKAN_INSTANCE_ENTRY_POINT(vkDestroyPipeline, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCreatePipelineLayout, true) -VULKAN_INSTANCE_ENTRY_POINT(vkDestroyPipelineLayout, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCreateSampler, true) -VULKAN_INSTANCE_ENTRY_POINT(vkDestroySampler, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCreateDescriptorSetLayout, true) -VULKAN_INSTANCE_ENTRY_POINT(vkDestroyDescriptorSetLayout, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCreateDescriptorPool, true) -VULKAN_INSTANCE_ENTRY_POINT(vkDestroyDescriptorPool, true) -VULKAN_INSTANCE_ENTRY_POINT(vkResetDescriptorPool, true) -VULKAN_INSTANCE_ENTRY_POINT(vkAllocateDescriptorSets, true) -VULKAN_INSTANCE_ENTRY_POINT(vkFreeDescriptorSets, true) -VULKAN_INSTANCE_ENTRY_POINT(vkUpdateDescriptorSets, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCreateFramebuffer, true) -VULKAN_INSTANCE_ENTRY_POINT(vkDestroyFramebuffer, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCreateRenderPass, true) -VULKAN_INSTANCE_ENTRY_POINT(vkDestroyRenderPass, true) -VULKAN_INSTANCE_ENTRY_POINT(vkGetRenderAreaGranularity, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCreateCommandPool, true) -VULKAN_INSTANCE_ENTRY_POINT(vkDestroyCommandPool, true) -VULKAN_INSTANCE_ENTRY_POINT(vkResetCommandPool, true) -VULKAN_INSTANCE_ENTRY_POINT(vkAllocateCommandBuffers, true) -VULKAN_INSTANCE_ENTRY_POINT(vkFreeCommandBuffers, true) -VULKAN_INSTANCE_ENTRY_POINT(vkBeginCommandBuffer, true) -VULKAN_INSTANCE_ENTRY_POINT(vkEndCommandBuffer, true) -VULKAN_INSTANCE_ENTRY_POINT(vkResetCommandBuffer, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdBindPipeline, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdSetViewport, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdSetScissor, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdSetLineWidth, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdSetDepthBias, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdSetBlendConstants, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdSetDepthBounds, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdSetStencilCompareMask, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdSetStencilWriteMask, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdSetStencilReference, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdBindDescriptorSets, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdBindIndexBuffer, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdBindVertexBuffers, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdDraw, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdDrawIndexed, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdDrawIndirect, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdDrawIndexedIndirect, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdDispatch, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdDispatchIndirect, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdCopyBuffer, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdCopyImage, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdBlitImage, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdCopyBufferToImage, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdCopyImageToBuffer, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdUpdateBuffer, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdFillBuffer, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdClearColorImage, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdClearDepthStencilImage, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdClearAttachments, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdResolveImage, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdSetEvent, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdResetEvent, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdWaitEvents, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdPipelineBarrier, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdBeginQuery, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdEndQuery, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdResetQueryPool, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdWriteTimestamp, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdCopyQueryPoolResults, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdPushConstants, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdBeginRenderPass, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdNextSubpass, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdEndRenderPass, true) -VULKAN_INSTANCE_ENTRY_POINT(vkCmdExecuteCommands, true) - VULKAN_INSTANCE_ENTRY_POINT(vkDestroySurfaceKHR, false) VULKAN_INSTANCE_ENTRY_POINT(vkGetPhysicalDeviceSurfaceSupportKHR, false) VULKAN_INSTANCE_ENTRY_POINT(vkGetPhysicalDeviceSurfaceCapabilitiesKHR, false) @@ -192,6 +71,126 @@ VULKAN_INSTANCE_ENTRY_POINT(vkDebugReportMessageEXT, false) #ifdef VULKAN_DEVICE_ENTRY_POINT +VULKAN_DEVICE_ENTRY_POINT(vkDestroyDevice, true) +VULKAN_DEVICE_ENTRY_POINT(vkGetDeviceQueue, true) +VULKAN_DEVICE_ENTRY_POINT(vkQueueSubmit, true) +VULKAN_DEVICE_ENTRY_POINT(vkQueueWaitIdle, true) +VULKAN_DEVICE_ENTRY_POINT(vkDeviceWaitIdle, true) +VULKAN_DEVICE_ENTRY_POINT(vkAllocateMemory, true) +VULKAN_DEVICE_ENTRY_POINT(vkFreeMemory, true) +VULKAN_DEVICE_ENTRY_POINT(vkMapMemory, true) +VULKAN_DEVICE_ENTRY_POINT(vkUnmapMemory, true) +VULKAN_DEVICE_ENTRY_POINT(vkFlushMappedMemoryRanges, true) +VULKAN_DEVICE_ENTRY_POINT(vkInvalidateMappedMemoryRanges, true) +VULKAN_DEVICE_ENTRY_POINT(vkGetDeviceMemoryCommitment, true) +VULKAN_DEVICE_ENTRY_POINT(vkBindBufferMemory, true) +VULKAN_DEVICE_ENTRY_POINT(vkBindImageMemory, true) +VULKAN_DEVICE_ENTRY_POINT(vkGetBufferMemoryRequirements, true) +VULKAN_DEVICE_ENTRY_POINT(vkGetImageMemoryRequirements, true) +VULKAN_DEVICE_ENTRY_POINT(vkGetImageSparseMemoryRequirements, true) +VULKAN_DEVICE_ENTRY_POINT(vkQueueBindSparse, true) +VULKAN_DEVICE_ENTRY_POINT(vkCreateFence, true) +VULKAN_DEVICE_ENTRY_POINT(vkDestroyFence, true) +VULKAN_DEVICE_ENTRY_POINT(vkResetFences, true) +VULKAN_DEVICE_ENTRY_POINT(vkGetFenceStatus, true) +VULKAN_DEVICE_ENTRY_POINT(vkWaitForFences, true) +VULKAN_DEVICE_ENTRY_POINT(vkCreateSemaphore, true) +VULKAN_DEVICE_ENTRY_POINT(vkDestroySemaphore, true) +VULKAN_DEVICE_ENTRY_POINT(vkCreateEvent, true) +VULKAN_DEVICE_ENTRY_POINT(vkDestroyEvent, true) +VULKAN_DEVICE_ENTRY_POINT(vkGetEventStatus, true) +VULKAN_DEVICE_ENTRY_POINT(vkSetEvent, true) +VULKAN_DEVICE_ENTRY_POINT(vkResetEvent, true) +VULKAN_DEVICE_ENTRY_POINT(vkCreateQueryPool, true) +VULKAN_DEVICE_ENTRY_POINT(vkDestroyQueryPool, true) +VULKAN_DEVICE_ENTRY_POINT(vkGetQueryPoolResults, true) +VULKAN_DEVICE_ENTRY_POINT(vkCreateBuffer, true) +VULKAN_DEVICE_ENTRY_POINT(vkDestroyBuffer, true) +VULKAN_DEVICE_ENTRY_POINT(vkCreateBufferView, true) +VULKAN_DEVICE_ENTRY_POINT(vkDestroyBufferView, true) +VULKAN_DEVICE_ENTRY_POINT(vkCreateImage, true) +VULKAN_DEVICE_ENTRY_POINT(vkDestroyImage, true) +VULKAN_DEVICE_ENTRY_POINT(vkGetImageSubresourceLayout, true) +VULKAN_DEVICE_ENTRY_POINT(vkCreateImageView, true) +VULKAN_DEVICE_ENTRY_POINT(vkDestroyImageView, true) +VULKAN_DEVICE_ENTRY_POINT(vkCreateShaderModule, true) +VULKAN_DEVICE_ENTRY_POINT(vkDestroyShaderModule, true) +VULKAN_DEVICE_ENTRY_POINT(vkCreatePipelineCache, true) +VULKAN_DEVICE_ENTRY_POINT(vkDestroyPipelineCache, true) +VULKAN_DEVICE_ENTRY_POINT(vkGetPipelineCacheData, true) +VULKAN_DEVICE_ENTRY_POINT(vkMergePipelineCaches, true) +VULKAN_DEVICE_ENTRY_POINT(vkCreateGraphicsPipelines, true) +VULKAN_DEVICE_ENTRY_POINT(vkCreateComputePipelines, true) +VULKAN_DEVICE_ENTRY_POINT(vkDestroyPipeline, true) +VULKAN_DEVICE_ENTRY_POINT(vkCreatePipelineLayout, true) +VULKAN_DEVICE_ENTRY_POINT(vkDestroyPipelineLayout, true) +VULKAN_DEVICE_ENTRY_POINT(vkCreateSampler, true) +VULKAN_DEVICE_ENTRY_POINT(vkDestroySampler, true) +VULKAN_DEVICE_ENTRY_POINT(vkCreateDescriptorSetLayout, true) +VULKAN_DEVICE_ENTRY_POINT(vkDestroyDescriptorSetLayout, true) +VULKAN_DEVICE_ENTRY_POINT(vkCreateDescriptorPool, true) +VULKAN_DEVICE_ENTRY_POINT(vkDestroyDescriptorPool, true) +VULKAN_DEVICE_ENTRY_POINT(vkResetDescriptorPool, true) +VULKAN_DEVICE_ENTRY_POINT(vkAllocateDescriptorSets, true) +VULKAN_DEVICE_ENTRY_POINT(vkFreeDescriptorSets, true) +VULKAN_DEVICE_ENTRY_POINT(vkUpdateDescriptorSets, true) +VULKAN_DEVICE_ENTRY_POINT(vkCreateFramebuffer, true) +VULKAN_DEVICE_ENTRY_POINT(vkDestroyFramebuffer, true) +VULKAN_DEVICE_ENTRY_POINT(vkCreateRenderPass, true) +VULKAN_DEVICE_ENTRY_POINT(vkDestroyRenderPass, true) +VULKAN_DEVICE_ENTRY_POINT(vkGetRenderAreaGranularity, true) +VULKAN_DEVICE_ENTRY_POINT(vkCreateCommandPool, true) +VULKAN_DEVICE_ENTRY_POINT(vkDestroyCommandPool, true) +VULKAN_DEVICE_ENTRY_POINT(vkResetCommandPool, true) +VULKAN_DEVICE_ENTRY_POINT(vkAllocateCommandBuffers, true) +VULKAN_DEVICE_ENTRY_POINT(vkFreeCommandBuffers, true) +VULKAN_DEVICE_ENTRY_POINT(vkBeginCommandBuffer, true) +VULKAN_DEVICE_ENTRY_POINT(vkEndCommandBuffer, true) +VULKAN_DEVICE_ENTRY_POINT(vkResetCommandBuffer, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdBindPipeline, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdSetViewport, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdSetScissor, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdSetLineWidth, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdSetDepthBias, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdSetBlendConstants, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdSetDepthBounds, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdSetStencilCompareMask, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdSetStencilWriteMask, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdSetStencilReference, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdBindDescriptorSets, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdBindIndexBuffer, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdBindVertexBuffers, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdDraw, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdDrawIndexed, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdDrawIndirect, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdDrawIndexedIndirect, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdDispatch, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdDispatchIndirect, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdCopyBuffer, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdCopyImage, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdBlitImage, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdCopyBufferToImage, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdCopyImageToBuffer, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdUpdateBuffer, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdFillBuffer, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdClearColorImage, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdClearDepthStencilImage, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdClearAttachments, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdResolveImage, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdSetEvent, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdResetEvent, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdWaitEvents, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdPipelineBarrier, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdBeginQuery, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdEndQuery, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdResetQueryPool, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdWriteTimestamp, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdCopyQueryPoolResults, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdPushConstants, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdBeginRenderPass, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdNextSubpass, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdEndRenderPass, true) +VULKAN_DEVICE_ENTRY_POINT(vkCmdExecuteCommands, true) VULKAN_DEVICE_ENTRY_POINT(vkCreateSwapchainKHR, false) VULKAN_DEVICE_ENTRY_POINT(vkDestroySwapchainKHR, false) VULKAN_DEVICE_ENTRY_POINT(vkGetSwapchainImagesKHR, false)