aboutsummaryrefslogtreecommitdiff
path: root/layers/screenshot.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'layers/screenshot.cpp')
-rw-r--r--layers/screenshot.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/layers/screenshot.cpp b/layers/screenshot.cpp
index d46205b3..f7927df3 100644
--- a/layers/screenshot.cpp
+++ b/layers/screenshot.cpp
@@ -311,8 +311,8 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateDevice(
const VkDeviceCreateInfo *pCreateInfo,
VkDevice *pDevice)
{
- VkLayerInstanceDispatchTable *pInstanceTable = get_dispatch_table(screenshot_instance_table_map, gpu);
- VkResult result = pInstanceTable->CreateDevice(gpu, pCreateInfo, pDevice);
+ VkLayerDispatchTable *pDisp = get_dispatch_table(screenshot_device_table_map, *pDevice);
+ VkResult result = pDisp->CreateDevice(gpu, pCreateInfo, pDevice);
if (result == VK_SUCCESS) {
createDeviceRegisterExtensions(pCreateInfo, *pDevice);
@@ -321,6 +321,8 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateDevice(
return result;
}
+/* TODO: Probably need a DestroyDevice as well */
+
#define SCREENSHOT_LAYER_EXT_ARRAY_SIZE 2
static const VkExtensionProperties ssExts[SCREENSHOT_LAYER_EXT_ARRAY_SIZE] = {
{
@@ -561,6 +563,9 @@ VK_LAYER_EXPORT void* VKAPI vkGetDeviceProcAddr(
initDeviceTable(screenshot_device_table_map, (const VkBaseLayerObject *) dev);
return (void *) vkGetDeviceProcAddr;
}
+ if (!strcmp(funcName, "vkCreateDevice"))
+ return (void*) vkCreateDevice;
+
if (!strcmp(funcName, "vkGetDeviceQueue"))
return (void*) vkGetDeviceQueue;
@@ -610,8 +615,6 @@ VK_LAYER_EXPORT void* VKAPI vkGetInstanceProcAddr(
return (void *) vkDestroyInstance;
if (!strcmp(funcName, "vkCreateInstance"))
return (void*) vkCreateInstance;
- if (!strcmp(funcName, "vkCreateDevice"))
- return (void*) vkCreateDevice;
if (get_dispatch_table(screenshot_instance_table_map, instance)->GetInstanceProcAddr == NULL)
return NULL;