aboutsummaryrefslogtreecommitdiff
path: root/layers/core_validation.cpp
diff options
context:
space:
mode:
authorChris Forbes <chrisforbes@google.com>2016-10-11 15:57:55 +1300
committerChris Forbes <chrisforbes@google.com>2016-11-22 11:45:12 +1300
commit092f98388d93c0dca662bdff885d050f5af822c0 (patch)
treecbffc744366f4a21a4619d6265ac80c087f0fc0b /layers/core_validation.cpp
parentd02aa62e8e657a2edd01a02e9f989177033be0cc (diff)
downloadusermoji-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.cpp21
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;