layers: Add default layer error message config

Allows layers to output error messages even if no vk_layer_settings.txt
config file is present. Sets defaults to LOG_MSG, error, stdout.
A layer settings file will override any default values. If no settings
file is present and an app creates a debug callback, the default
callbacks will be removed and unregistered.

Change-Id: I49f37189665816df58c258b9e9629f2bf76751c8
This commit is contained in:
Mark Lobodzinski 2016-05-19 15:27:18 -06:00
parent 43c20176c9
commit 52a063d4fd

View File

@ -234,22 +234,28 @@ typedef struct VkLayerInstanceDispatchTable_ {
CreateDisplayPlaneSurfaceKHR; CreateDisplayPlaneSurfaceKHR;
} VkLayerInstanceDispatchTable; } VkLayerInstanceDispatchTable;
// LL node for tree of dbg callback functions // LL node for tree of dbg callback functions
typedef struct VkLayerDbgFunctionNode_ { typedef struct VkLayerDbgFunctionNode_ {
VkDebugReportCallbackEXT msgCallback; VkDebugReportCallbackEXT msgCallback;
PFN_vkDebugReportCallbackEXT pfnMsgCallback; PFN_vkDebugReportCallbackEXT pfnMsgCallback;
VkFlags msgFlags; VkFlags msgFlags;
void *pUserData; void *pUserData;
bool default_callback;
struct VkLayerDbgFunctionNode_ *pNext; struct VkLayerDbgFunctionNode_ *pNext;
} VkLayerDbgFunctionNode; } VkLayerDbgFunctionNode;
typedef enum VkLayerDbgAction_ { // TODO: Move debug action definitions out of this header file
VK_DBG_LAYER_ACTION_IGNORE = 0x0, // Definitions for Debug Actions
VK_DBG_LAYER_ACTION_CALLBACK = 0x1, typedef enum VkLayerDbgActionBits {
VK_DBG_LAYER_ACTION_LOG_MSG = 0x2, VK_DBG_LAYER_ACTION_IGNORE = 0x00000000,
VK_DBG_LAYER_ACTION_BREAK = 0x4, VK_DBG_LAYER_ACTION_CALLBACK = 0x00000001,
VK_DBG_LAYER_ACTION_DEBUG_OUTPUT = 0x8, VK_DBG_LAYER_ACTION_LOG_MSG = 0x00000002,
} VkLayerDbgAction; VK_DBG_LAYER_ACTION_BREAK = 0x00000004,
VK_DBG_LAYER_ACTION_DEBUG_OUTPUT = 0x00000008,
VK_DBG_LAYER_ACTION_DEFAULT = 0x40000000,
} VkLayerDbgActionBits;
typedef VkFlags VkLayerDbgActionFlags;
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
// CreateInstance and CreateDevice support structures // CreateInstance and CreateDevice support structures