diff options
| author | Lenny Komow <lenny@lunarg.com> | 2017-10-02 17:11:05 -0600 |
|---|---|---|
| committer | Mike Schuchardt <mikes@lunarg.com> | 2018-03-09 13:54:31 -0700 |
| commit | a36fb34f2ec532c5fc1f4caabd5bca7232af4114 (patch) | |
| tree | 8e57ac314296970e9fd5936b2dba722cde22bdd7 | |
| parent | 14c204677ba580e94bab13887ac09995b4d1f25e (diff) | |
| download | usermoji-a36fb34f2ec532c5fc1f4caabd5bca7232af4114.tar.xz | |
loader: Add new core 1.1 entry points
| -rw-r--r-- | loader/gpa_helper.h | 25 | ||||
| -rw-r--r-- | loader/trampoline.c | 109 |
2 files changed, 134 insertions, 0 deletions
diff --git a/loader/gpa_helper.h b/loader/gpa_helper.h index 0763938b..26a7646e 100644 --- a/loader/gpa_helper.h +++ b/loader/gpa_helper.h @@ -163,6 +163,31 @@ static inline void *trampolineGetProcAddr(struct loader_instance *inst, const ch if (!strcmp(funcName, "vkCmdEndRenderPass")) return (PFN_vkVoidFunction)vkCmdEndRenderPass; if (!strcmp(funcName, "vkCmdExecuteCommands")) return (PFN_vkVoidFunction)vkCmdExecuteCommands; + // Core 1.1 functions + if (!strcmp(funcName, "vkEnumerateInstanceVersion")) return (PFN_vkVoidFunction)vkEnumerateInstanceVersion; + if (!strcmp(funcName, "vkEnumeratePhysicalDeviceGroups")) return (PFN_vkVoidFunction)vkEnumeratePhysicalDeviceGroups; + if (!strcmp(funcName, "vkGetPhysicalDeviceFeatures2")) return (PFN_vkVoidFunction)vkGetPhysicalDeviceFeatures2; + if (!strcmp(funcName, "vkGetPhysicalDeviceProperties2")) return (PFN_vkVoidFunction)vkGetPhysicalDeviceProperties2; + if (!strcmp(funcName, "vkGetPhysicalDeviceFormatProperties2")) return (PFN_vkVoidFunction)vkGetPhysicalDeviceFormatProperties2; + if (!strcmp(funcName, "vkGetPhysicalDeviceImageFormatProperties2")) return (PFN_vkVoidFunction)vkGetPhysicalDeviceImageFormatProperties2; + if (!strcmp(funcName, "vkGetPhysicalDeviceQueueFamilyProperties2")) return (PFN_vkVoidFunction)vkGetPhysicalDeviceQueueFamilyProperties2; + if (!strcmp(funcName, "vkGetPhysicalDeviceMemoryProperties2")) return (PFN_vkVoidFunction)vkGetPhysicalDeviceMemoryProperties2; + if (!strcmp(funcName, "vkGetPhysicalDeviceSparseImageFormatProperties2")) return (PFN_vkVoidFunction)vkGetPhysicalDeviceSparseImageFormatProperties2; + if (!strcmp(funcName, "vkGetPhysicalDeviceExternalBufferProperties")) return (PFN_vkVoidFunction)vkGetPhysicalDeviceExternalBufferProperties; + if (!strcmp(funcName, "vkGetPhysicalDeviceExternalSemaphoreProperties")) return (PFN_vkVoidFunction)vkGetPhysicalDeviceExternalSemaphoreProperties; + if (!strcmp(funcName, "vkGetPhysicalDeviceExternalFenceProperties")) return (PFN_vkVoidFunction)vkGetPhysicalDeviceExternalFenceProperties; + if (!strcmp(funcName, "vkBindBufferMemory2")) return (PFN_vkVoidFunction)vkBindBufferMemory2; + if (!strcmp(funcName, "vkBindImageMemory2")) return (PFN_vkVoidFunction)vkBindImageMemory2; + if (!strcmp(funcName, "vkGetDeviceGroupPeerMemoryFeatures")) return (PFN_vkVoidFunction)vkGetDeviceGroupPeerMemoryFeatures; + if (!strcmp(funcName, "vkCmdSetDeviceMask")) return (PFN_vkVoidFunction)vkCmdSetDeviceMask; + if (!strcmp(funcName, "vkCmdDispatchBase")) return (PFN_vkVoidFunction)vkCmdDispatchBase; + if (!strcmp(funcName, "vkGetImageMemoryRequirements2")) return (PFN_vkVoidFunction)vkGetImageMemoryRequirements2; + if (!strcmp(funcName, "vkTrimCommandPool")) return (PFN_vkVoidFunction)vkTrimCommandPool; + if (!strcmp(funcName, "vkGetDeviceQueue2")) return (PFN_vkVoidFunction)vkGetDeviceQueue2; + if (!strcmp(funcName, "vkCreateSamplerYcbcrConversion")) return (PFN_vkVoidFunction)vkCreateSamplerYcbcrConversion; + if (!strcmp(funcName, "vkDestroySamplerYcbcrConversion")) return (PFN_vkVoidFunction)vkDestroySamplerYcbcrConversion; + if (!strcmp(funcName, "vkGetDescriptorSetLayoutSupport")) return (PFN_vkVoidFunction)vkGetDescriptorSetLayoutSupport; + // Instance extensions void *addr; if (debug_report_instance_gpa(inst, funcName, &addr)) return addr; diff --git a/loader/trampoline.c b/loader/trampoline.c index 09f2d88b..8968dc4c 100644 --- a/loader/trampoline.c +++ b/loader/trampoline.c @@ -2329,3 +2329,112 @@ VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties( disp = loader_get_instance_layer_dispatch(physicalDevice); disp->GetPhysicalDeviceExternalFenceProperties(unwrapped_phys_dev, pExternalFenceInfo, pExternalFenceProperties); } + +VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2( + VkDevice device, + uint32_t bindInfoCount, + const VkBindBufferMemoryInfo* pBindInfos) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + return disp->BindBufferMemory2(device, bindInfoCount, pBindInfos); +} + +VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2( + VkDevice device, + uint32_t bindInfoCount, + const VkBindImageMemoryInfo* pBindInfos) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + return disp->BindImageMemory2(device, bindInfoCount, pBindInfos); +} + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures( + VkDevice device, + uint32_t heapIndex, + uint32_t localDeviceIndex, + uint32_t remoteDeviceIndex, + VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + disp->GetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures); +} + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask( + VkCommandBuffer commandBuffer, + uint32_t deviceMask) { + const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer); + disp->CmdSetDeviceMask(commandBuffer, deviceMask); +} + +VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase( + VkCommandBuffer commandBuffer, + uint32_t baseGroupX, + uint32_t baseGroupY, + uint32_t baseGroupZ, + uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ) { + const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer); + disp->CmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ); +} + +VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2( + VkDevice device, + const VkImageMemoryRequirementsInfo2* pInfo, + VkMemoryRequirements2* pMemoryRequirements) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + disp->GetImageMemoryRequirements2(device, pInfo, pMemoryRequirements); +} + +VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2( + VkDevice device, + const VkBufferMemoryRequirementsInfo2* pInfo, + VkMemoryRequirements2* pMemoryRequirements) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + disp->GetBufferMemoryRequirements2(device, pInfo, pMemoryRequirements); +} + +VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2( + VkDevice device, + const VkImageSparseMemoryRequirementsInfo2* pInfo, + uint32_t* pSparseMemoryRequirementCount, + VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + disp->GetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); +} + +VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool( + VkDevice device, + VkCommandPool commandPool, + VkCommandPoolTrimFlags flags) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + disp->TrimCommandPool(device, commandPool, flags); +} + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(VkDevice device, const VkDeviceQueueInfo2 *pQueueInfo, VkQueue *pQueue) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + disp->GetDeviceQueue2(device, pQueueInfo, pQueue); + loader_set_dispatch(*pQueue, disp); +} + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion( + VkDevice device, + const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSamplerYcbcrConversion* pYcbcrConversion) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + return disp->CreateSamplerYcbcrConversion(device, pCreateInfo, pAllocator, pYcbcrConversion); +} + +VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion( + VkDevice device, + VkSamplerYcbcrConversion ycbcrConversion, + const VkAllocationCallbacks* pAllocator) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + disp->DestroySamplerYcbcrConversion(device, ycbcrConversion, pAllocator); +} + +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport( + VkDevice device, + const VkDescriptorSetLayoutCreateInfo* pCreateInfo, + VkDescriptorSetLayoutSupport* pSupport) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + disp->GetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport); +} |
