diff options
| author | Chris Forbes <chrisforbes@google.com> | 2016-10-11 15:57:55 +1300 |
|---|---|---|
| committer | Chris Forbes <chrisforbes@google.com> | 2016-11-22 11:45:12 +1300 |
| commit | 092f98388d93c0dca662bdff885d050f5af822c0 (patch) | |
| tree | cbffc744366f4a21a4619d6265ac80c087f0fc0b /layers/core_validation.cpp | |
| parent | d02aa62e8e657a2edd01a02e9f989177033be0cc (diff) | |
| download | usermoji-092f98388d93c0dca662bdff885d050f5af822c0.tar.xz | |
layers: Capture surface capabilities
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Diffstat (limited to 'layers/core_validation.cpp')
| -rw-r--r-- | layers/core_validation.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index 4a081eac..f073e118 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -12083,6 +12083,25 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateXlibSurfaceKHR(VkInstance instance, const V #endif // VK_USE_PLATFORM_XLIB_KHR +VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, + VkSurfaceCapabilitiesKHR *pSurfaceCapabilities) { + auto instance_data = get_my_data_ptr(get_dispatch_key(physicalDevice), instance_layer_data_map); + + std::unique_lock<std::mutex> lock(global_lock); + auto physical_device_state = getPhysicalDeviceState(instance_data, physicalDevice); + lock.unlock(); + + auto result = instance_data->dispatch_table.GetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, + pSurfaceCapabilities); + + if (result == VK_SUCCESS) { + physical_device_state->vkGetPhysicalDeviceSurfaceCapabilitiesKHRState = QUERY_DETAILS; + physical_device_state->surfaceCapabilities = *pSurfaceCapabilities; + } + + return result; +} + VKAPI_ATTR VkResult VKAPI_CALL CreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkDebugReportCallbackEXT *pMsgCallback) { @@ -12424,6 +12443,8 @@ intercept_khr_surface_command(const char *name, VkInstance instance) { #endif // VK_USE_PLATFORM_XLIB_KHR {"vkDestroySurfaceKHR", reinterpret_cast<PFN_vkVoidFunction>(DestroySurfaceKHR), &instance_layer_data::surfaceExtensionEnabled}, + {"vkGetPhysicalDeviceSurfaceCapabilitiesKHR", reinterpret_cast<PFN_vkVoidFunction>(GetPhysicalDeviceSurfaceCapabilitiesKHR), + &instance_layer_data::surfaceExtensionEnabled}, }; instance_layer_data *instance_data = nullptr; |
