diff options
| author | Chris Forbes <chrisforbes@google.com> | 2016-10-12 08:55:03 +1300 |
|---|---|---|
| committer | Chris Forbes <chrisforbes@google.com> | 2016-11-22 11:45:12 +1300 |
| commit | 2db86874983548c5ecda41c79d9fda27b66d2d17 (patch) | |
| tree | c54feb5b3b51ca8c458d8ffe2a44dd43cb09d4fa /layers/core_validation.cpp | |
| parent | c82a17124103cfe9ba1cf3c4a9f1c78b5e9bcf54 (diff) | |
| download | usermoji-2db86874983548c5ecda41c79d9fda27b66d2d17.tar.xz | |
layers: Track surface support for gpu+queue
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Diffstat (limited to 'layers/core_validation.cpp')
| -rw-r--r-- | layers/core_validation.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index 696120aa..25973826 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -12109,6 +12109,24 @@ VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysica return result; } + +VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, + VkSurfaceKHR surface, VkBool32 *pSupported) { + auto instance_data = get_my_data_ptr(get_dispatch_key(physicalDevice), instance_layer_data_map); + std::unique_lock<std::mutex> lock(global_lock); + auto surface_state = getSurfaceState(instance_data, surface); + lock.unlock(); + + auto result = instance_data->dispatch_table.GetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, + pSupported); + + if (result == VK_SUCCESS) { + surface_state->gpu_queue_support[{physicalDevice, queueFamilyIndex}] = *pSupported; + } + + return result; +} + VKAPI_ATTR VkResult VKAPI_CALL CreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkDebugReportCallbackEXT *pMsgCallback) { @@ -12452,6 +12470,8 @@ intercept_khr_surface_command(const char *name, VkInstance instance) { &instance_layer_data::surfaceExtensionEnabled}, {"vkGetPhysicalDeviceSurfaceCapabilitiesKHR", reinterpret_cast<PFN_vkVoidFunction>(GetPhysicalDeviceSurfaceCapabilitiesKHR), &instance_layer_data::surfaceExtensionEnabled}, + {"vkGetPhysicalDeviceSurfaceSupportKHR", reinterpret_cast<PFN_vkVoidFunction>(GetPhysicalDeviceSurfaceSupportKHR), + &instance_layer_data::surfaceExtensionEnabled}, }; instance_layer_data *instance_data = nullptr; |
