aboutsummaryrefslogtreecommitdiff
path: root/layers
diff options
context:
space:
mode:
authorCourtney Goeltzenleuchter <courtney@LunarG.com>2015-06-13 21:22:12 -0600
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-06-18 10:22:56 -0600
commitaf4e8327f8319ab97bfbe71c907eaabd329704bc (patch)
treedbf963e17167e74ec1da8c1e28fa3bc3a30dfd9e /layers
parent03b7c7b58b4c6d3be53804e68eb94dcbcbef4a75 (diff)
downloadusermoji-af4e8327f8319ab97bfbe71c907eaabd329704bc.tar.xz
layers: Use static dispatch table maps
Changes to use dispatch table access functions.
Diffstat (limited to 'layers')
-rw-r--r--layers/basic.cpp8
-rw-r--r--layers/param_checker.cpp10
-rw-r--r--layers/shader_checker.cpp12
3 files changed, 15 insertions, 15 deletions
diff --git a/layers/basic.cpp b/layers/basic.cpp
index 81cdaa8b..d6ea963a 100644
--- a/layers/basic.cpp
+++ b/layers/basic.cpp
@@ -118,18 +118,18 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateDevice(VkPhysicalDevice gpu, const VkDevi
/* hook DestroyDevice to remove tableMap entry */
VK_LAYER_EXPORT VkResult VKAPI vkDestroyDevice(VkDevice device)
{
- VkLayerDispatchTable *pDisp = *(VkLayerDispatchTable **) device;
+ dispatch_key key = get_dispatch_key(device);
VkResult res = device_dispatch_table(device)->DestroyDevice(device);
- tableMap.erase(pDisp);
+ destroy_device_dispatch_table(key);
return res;
}
/* hook DestroyInstance to remove tableInstanceMap entry */
VK_LAYER_EXPORT VkResult VKAPI vkDestroyInstance(VkInstance instance)
{
- VkLayerInstanceDispatchTable *pDisp = *(VkLayerInstanceDispatchTable **) instance;
+ dispatch_key key = get_dispatch_key(instance);
VkResult res = instance_dispatch_table(instance)->DestroyInstance(instance);
- tableInstanceMap.erase(pDisp);
+ destroy_instance_dispatch_table(key);
return res;
}
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp
index c1a6fef5..0b13b65c 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -146,9 +146,9 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateInstance(const VkInstanceCreateInfo* pCre
VK_LAYER_EXPORT VkResult VKAPI vkDestroyInstance(VkInstance instance)
{
- VkLayerInstanceDispatchTable *pDisp = *(VkLayerInstanceDispatchTable **) instance;
+ dispatch_key key = get_dispatch_key(instance);
VkResult res = instance_dispatch_table(instance)->DestroyInstance(instance);
- tableInstanceMap.erase(pDisp);
+ destroy_instance_dispatch_table(key);
return res;
}
@@ -267,8 +267,9 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateDevice(VkPhysicalDevice gpu, const VkDevi
VK_LAYER_EXPORT VkResult VKAPI vkDestroyDevice(VkDevice device)
{
VkLayerDispatchTable *pDisp = *(VkLayerDispatchTable **) device;
+ dispatch_key key = get_dispatch_key(device);
VkResult result = device_dispatch_table(device)->DestroyDevice(device);
- tableMap.erase(pDisp);
+ destroy_device_dispatch_table(key);
tableDebugMarkerMap.erase(pDisp);
deviceExtMap.erase(pDisp);
return result;
@@ -1878,8 +1879,7 @@ VK_LAYER_EXPORT VkResult VKAPI vkDbgDestroyMsgCallback(
VkInstance instance,
VkDbgMsgCallback msgCallback)
{
- VkLayerInstanceDispatchTable *pDisp = *(VkLayerInstanceDispatchTable **) instance;
- VkLayerInstanceDispatchTable *pTable = tableInstanceMap[pDisp];
+ VkLayerInstanceDispatchTable *pTable = instance_dispatch_table(instance);
return layer_destroy_msg_callback(instance, pTable, msgCallback);
}
diff --git a/layers/shader_checker.cpp b/layers/shader_checker.cpp
index 57aab4f0..c3323d7d 100644
--- a/layers/shader_checker.cpp
+++ b/layers/shader_checker.cpp
@@ -887,9 +887,9 @@ vkCreateGraphicsPipelineDerivative(VkDevice device,
/* hook DextroyDevice to remove tableMap entry */
VK_LAYER_EXPORT VkResult VKAPI vkDestroyDevice(VkDevice device)
{
- VkLayerDispatchTable *pDisp = *(VkLayerDispatchTable **) device;
+ dispatch_key key = get_dispatch_key(device);
VkResult res = device_dispatch_table(device)->DestroyDevice(device);
- tableMap.erase(pDisp);
+ destroy_device_dispatch_table(key);
return res;
}
@@ -921,9 +921,9 @@ VkResult VKAPI vkCreateInstance(
/* hook DestroyInstance to remove tableInstanceMap entry */
VK_LAYER_EXPORT VkResult VKAPI vkDestroyInstance(VkInstance instance)
{
- VkLayerInstanceDispatchTable *pDisp = *(VkLayerInstanceDispatchTable **) instance;
+ dispatch_key key = get_dispatch_key(instance);
VkResult res = instance_dispatch_table(instance)->DestroyInstance(instance);
- tableInstanceMap.erase(pDisp);
+ destroy_instance_dispatch_table(key);
return res;
}
@@ -934,7 +934,7 @@ VK_LAYER_EXPORT VkResult VKAPI vkDbgCreateMsgCallback(
void* pUserData,
VkDbgMsgCallback* pMsgCallback)
{
- VkLayerInstanceDispatchTable *pTable = tableInstanceMap[(VkBaseLayerObject *)instance];
+ VkLayerInstanceDispatchTable *pTable = instance_dispatch_table(instance);
return layer_create_msg_callback(instance, pTable, msgFlags, pfnMsgCallback, pUserData, pMsgCallback);
}
@@ -942,7 +942,7 @@ VK_LAYER_EXPORT VkResult VKAPI vkDbgDestroyMsgCallback(
VkInstance instance,
VkDbgMsgCallback msgCallback)
{
- VkLayerInstanceDispatchTable *pTable = tableInstanceMap[(VkBaseLayerObject *)instance];
+ VkLayerInstanceDispatchTable *pTable = instance_dispatch_table(instance);
return layer_destroy_msg_callback(instance, pTable, msgCallback);
}