aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCody Northrop <cody@lunarg.com>2015-09-28 15:09:32 -0600
committerCody Northrop <cody@lunarg.com>2015-09-28 15:10:46 -0600
commitb4156fd375d611dc631ece28a0909f9714d5b682 (patch)
treef71e3a78b8e718fe8738c426aeaa445367b168b9
parent15e38d98c9311b2f86e9d038397e1f28da596c87 (diff)
downloadusermoji-b4156fd375d611dc631ece28a0909f9714d5b682.tar.xz
layers: Add constructors for layer_data
-rw-r--r--layers/device_limits.cpp9
-rw-r--r--layers/draw_state.cpp9
-rw-r--r--layers/image.cpp10
-rw-r--r--layers/mem_tracker.cpp10
-rw-r--r--layers/object_track.h11
-rw-r--r--layers/param_checker.cpp9
-rw-r--r--layers/shader_checker.cpp9
-rw-r--r--layers/swapchain.cpp10
-rw-r--r--layers/swapchain.h18
-rw-r--r--layers/threading.h9
10 files changed, 77 insertions, 27 deletions
diff --git a/layers/device_limits.cpp b/layers/device_limits.cpp
index 30e57d44..37ad695f 100644
--- a/layers/device_limits.cpp
+++ b/layers/device_limits.cpp
@@ -52,11 +52,16 @@
#include "vk_layer_extension_utils.h"
#include "vk_layer_utils.h"
-typedef struct _layer_data {
+struct layer_data {
debug_report_data *report_data;
// TODO: put instance data here
VkDbgMsgCallback logging_callback;
-} layer_data;
+
+ layer_data() :
+ report_data(nullptr),
+ logging_callback(nullptr)
+ {};
+};
static std::unordered_map<void *, layer_data *> layer_data_map;
static device_table_map device_limits_device_table_map;
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index 915b9407..5a6d1211 100644
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -50,11 +50,16 @@
#include "vk_layer_logging.h"
#include "vk_layer_extension_utils.h"
-typedef struct _layer_data {
+struct layer_data {
debug_report_data *report_data;
// TODO: put instance data here
VkDbgMsgCallback logging_callback;
-} layer_data;
+
+ layer_data() :
+ report_data(nullptr),
+ logging_callback(nullptr)
+ {};
+};
static std::unordered_map<void *, layer_data *> layer_data_map;
static device_table_map draw_state_device_table_map;
diff --git a/layers/image.cpp b/layers/image.cpp
index c3ff045c..d58f1a75 100644
--- a/layers/image.cpp
+++ b/layers/image.cpp
@@ -46,12 +46,18 @@
using namespace std;
-typedef struct _layer_data {
+struct layer_data {
debug_report_data *report_data;
VkDbgMsgCallback logging_callback;
VkPhysicalDevice physicalDevice;
unordered_map<uint64_t, unique_ptr<IMAGE_STATE>> imageMap;
-} layer_data;
+
+ layer_data() :
+ report_data(nullptr),
+ logging_callback(nullptr),
+ physicalDevice(0)
+ {};
+};
static unordered_map<void*, layer_data*> layer_data_map;
static device_table_map image_device_table_map;
diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp
index 36574f60..f42b686f 100644
--- a/layers/mem_tracker.cpp
+++ b/layers/mem_tracker.cpp
@@ -50,12 +50,18 @@ static LOADER_PLATFORM_THREAD_ONCE_DECLARATION(g_initOnce);
// Object value will be used to identify them internally.
static const VkDeviceMemory MEMTRACKER_SWAP_CHAIN_IMAGE_KEY = static_cast<VkDeviceMemory>(-1);
-typedef struct _layer_data {
+struct layer_data {
debug_report_data *report_data;
// TODO: put instance data here
VkDbgMsgCallback logging_callback;
bool wsi_enabled;
-} layer_data;
+
+ layer_data() :
+ report_data(nullptr),
+ logging_callback(nullptr),
+ wsi_enabled(false)
+ {};
+};
static unordered_map<void *, layer_data *> layer_data_map;
diff --git a/layers/object_track.h b/layers/object_track.h
index dd266106..e7d58201 100644
--- a/layers/object_track.h
+++ b/layers/object_track.h
@@ -65,13 +65,20 @@ uint64_t objTrackGetObjectsOfTypeCount(VkDevice, VkDbgObjectType type);
typedef uint64_t (*OBJ_TRACK_GET_OBJECT_COUNT)(VkDevice);
typedef uint64_t (*OBJ_TRACK_GET_OBJECTS_OF_TYPE_COUNT)(VkDevice, VkDbgObjectType);
-typedef struct _layer_data {
+struct layer_data {
debug_report_data *report_data;
//TODO: put instance data here
VkDbgMsgCallback logging_callback;
bool wsi_enabled;
bool objtrack_extensions_enabled;
-} layer_data;
+
+ layer_data() :
+ report_data(nullptr),
+ logging_callback(nullptr),
+ wsi_enabled(false),
+ objtrack_extensions_enabled(false)
+ {};
+};
struct instExts {
bool wsi_enabled;
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp
index 0b6909dd..7c8d6c71 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -45,10 +45,15 @@
#include "vk_layer_logging.h"
#include "vk_layer_extension_utils.h"
-typedef struct _layer_data {
+struct layer_data {
debug_report_data *report_data;
VkDbgMsgCallback logging_callback;
-} layer_data;
+
+ layer_data() :
+ report_data(nullptr),
+ logging_callback(nullptr)
+ {};
+};
static std::unordered_map<void*, layer_data*> layer_data_map;
static device_table_map pc_device_table_map;
diff --git a/layers/shader_checker.cpp b/layers/shader_checker.cpp
index 41d10b11..6146b94b 100644
--- a/layers/shader_checker.cpp
+++ b/layers/shader_checker.cpp
@@ -47,11 +47,16 @@
#include "spirv/spirv.hpp"
-typedef struct _layer_data {
+struct layer_data {
debug_report_data *report_data;
// TODO: put instance data here
VkDbgMsgCallback logging_callback;
-} layer_data;
+
+ layer_data() :
+ report_data(nullptr),
+ logging_callback(nullptr)
+ {};
+};
static std::unordered_map<void *, layer_data *> layer_data_map;
static device_table_map shader_checker_device_table_map;
diff --git a/layers/swapchain.cpp b/layers/swapchain.cpp
index bfcd2ab8..a36854b0 100644
--- a/layers/swapchain.cpp
+++ b/layers/swapchain.cpp
@@ -145,7 +145,7 @@ static void initSwapchain(void)
// Turn on logging, since it was requested:
option_str = getLayerOption("SwapchainLogFilename");
log_output = getLayerLogOutput(option_str, "Swapchain");
- layer_create_msg_callback(&mydata.report_data, report_flags,
+ layer_create_msg_callback(mydata.report_data, report_flags,
log_callback, (void *) log_output,
&mydata.logging_callback);
}
@@ -351,7 +351,6 @@ VK_LAYER_EXPORT void VKAPI vkDestroyDevice(VkDevice device)
if (deviceMap[device].pPresentModes) {
free(deviceMap[device].pPresentModes);
}
- deviceMap.erase(device);
if (!pDevice->swapchains.empty()) {
LOG_ERROR(VK_OBJECT_TYPE_DEVICE, device, "VkDevice",
SWAPCHAIN_DEL_DEVICE_BEFORE_SWAPCHAINS,
@@ -366,6 +365,7 @@ VK_LAYER_EXPORT void VKAPI vkDestroyDevice(VkDevice device)
}
pDevice->swapchains.clear();
}
+ deviceMap.erase(device);
}
}
@@ -657,7 +657,7 @@ static VkBool32 validateCreateSwapchainKHR(VkDevice device, const VkSwapchainCre
}
}
// Log the message that we've built up:
- skipCall |= debug_report_log_msg(&mydata.report_data,
+ skipCall |= debug_report_log_msg(mydata.report_data,
VK_DBG_REPORT_ERROR_BIT,
VK_OBJECT_TYPE_DEVICE,
(uint64_t) device, 0,
@@ -1104,12 +1104,12 @@ static inline PFN_vkVoidFunction layer_intercept_instance_proc(const char *name)
VK_LAYER_EXPORT VkResult VKAPI vkDbgCreateMsgCallback(VkInstance instance, VkFlags msgFlags, const PFN_vkDbgMsgCallback pfnMsgCallback, void* pUserData, VkDbgMsgCallback* pMsgCallback)
{
- return layer_create_msg_callback(&mydata.report_data, msgFlags, pfnMsgCallback, pUserData, pMsgCallback);
+ return layer_create_msg_callback(mydata.report_data, msgFlags, pfnMsgCallback, pUserData, pMsgCallback);
}
VK_LAYER_EXPORT VkResult VKAPI vkDbgDestroyMsgCallback(VkInstance instance, VkDbgMsgCallback msgCallback)
{
- layer_destroy_msg_callback(&mydata.report_data, msgCallback);
+ layer_destroy_msg_callback(mydata.report_data, msgCallback);
return VK_SUCCESS;
}
diff --git a/layers/swapchain.h b/layers/swapchain.h
index 8414d474..9a336283 100644
--- a/layers/swapchain.h
+++ b/layers/swapchain.h
@@ -65,21 +65,27 @@ typedef enum _SWAPCHAIN_ERROR
// The following is for logging error messages:
-typedef struct _layer_data {
- debug_report_data report_data;
+struct layer_data {
+ debug_report_data *report_data;
VkDbgMsgCallback logging_callback;
-} layer_data;
+
+ layer_data() :
+ report_data(nullptr),
+ logging_callback(nullptr)
+ {};
+};
+
#define LAYER_NAME (char *) "Swapchain"
#define LOG_ERROR_NON_VALID_OBJ(objType, type, obj) \
- log_msg(&mydata.report_data, VK_DBG_REPORT_ERROR_BIT, (objType), \
+ log_msg(mydata.report_data, VK_DBG_REPORT_ERROR_BIT, (objType), \
(uint64_t) (obj), 0, SWAPCHAIN_INVALID_HANDLE, LAYER_NAME, \
"%s() called with a non-valid %s.", __FUNCTION__, (obj))
#define LOG_ERROR(objType, type, obj, enm, fmt, ...) \
- log_msg(&mydata.report_data, VK_DBG_REPORT_ERROR_BIT, (objType), \
+ log_msg(mydata.report_data, VK_DBG_REPORT_ERROR_BIT, (objType), \
(uint64_t) (obj), 0, (enm), LAYER_NAME, (fmt), __VA_ARGS__)
#define LOG_PERF_WARNING(objType, type, obj, enm, fmt, ...) \
- log_msg(&mydata.report_data, VK_DBG_REPORT_PERF_WARN_BIT, (objType), \
+ log_msg(mydata.report_data, VK_DBG_REPORT_PERF_WARN_BIT, (objType), \
(uint64_t) (obj), 0, (enm), LAYER_NAME, (fmt), __VA_ARGS__)
diff --git a/layers/threading.h b/layers/threading.h
index 367679c7..5335578b 100644
--- a/layers/threading.h
+++ b/layers/threading.h
@@ -34,10 +34,15 @@ typedef enum _THREADING_CHECKER_ERROR
THREADING_CHECKER_SINGLE_THREAD_REUSE, // Object used simultaneously by recursion in single thread
} THREADING_CHECKER_ERROR;
-typedef struct _layer_data {
+struct layer_data {
debug_report_data *report_data;
VkDbgMsgCallback logging_callback;
-} layer_data;
+
+ layer_data() :
+ report_data(nullptr),
+ logging_callback(nullptr)
+ {};
+};
static std::unordered_map<void*, layer_data *> layer_data_map;
static device_table_map Threading_device_table_map;