aboutsummaryrefslogtreecommitdiff
path: root/layers/threading.cpp
diff options
context:
space:
mode:
authorMark Lobodzinski <mark@lunarg.com>2017-02-28 15:09:31 -0700
committerMark Lobodzinski <mark@lunarg.com>2017-02-28 15:09:31 -0700
commit9172c7bf11a3dbb663e170f57692e68891e891c9 (patch)
tree471e11df7403b7d1fcf52da4c2ced4788920b6e1 /layers/threading.cpp
parentbba73cd799889bb48a2b6f6f750a5005cc5ac068 (diff)
downloadusermoji-9172c7bf11a3dbb663e170f57692e68891e891c9.tar.xz
layers: Special-case threading GetSwapchainImages
This API is a special-case for the code-gen in that it sometimes returns an array of images. These do not need to be counted by start/finishReadObject and so were moved into the non-generated part of the layer source. Change-Id: Iaaab9143abadbf025b5f3c118aa26dae3c6f1bec
Diffstat (limited to 'layers/threading.cpp')
-rw-r--r--layers/threading.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/layers/threading.cpp b/layers/threading.cpp
index 0c46ef03..5984c4c8 100644
--- a/layers/threading.cpp
+++ b/layers/threading.cpp
@@ -171,6 +171,27 @@ VKAPI_ATTR void VKAPI_CALL DestroyDevice(VkDevice device, const VkAllocationCall
layer_data_map.erase(key);
}
+VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t *pSwapchainImageCount,
+ VkImage *pSwapchainImages) {
+ dispatch_key key = get_dispatch_key(device);
+ layer_data *my_data = GetLayerDataPtr(key, layer_data_map);
+ VkLayerDispatchTable *pTable = my_data->device_dispatch_table;
+ VkResult result;
+ bool threadChecks = startMultiThread();
+ if (threadChecks) {
+ startReadObject(my_data, device);
+ startReadObject(my_data, swapchain);
+ }
+ result = pTable->GetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
+ if (threadChecks) {
+ finishReadObject(my_data, device);
+ finishReadObject(my_data, swapchain);
+ } else {
+ finishMultiThread();
+ }
+ return result;
+}
+
static const VkExtensionProperties threading_extensions[] = {
{VK_EXT_DEBUG_REPORT_EXTENSION_NAME, VK_EXT_DEBUG_REPORT_SPEC_VERSION}};