diff options
| author | Tobin Ehlis <tobin@lunarg.com> | 2015-09-15 09:55:54 -0600 |
|---|---|---|
| committer | Tobin Ehlis <tobin@lunarg.com> | 2015-09-16 08:10:21 -0600 |
| commit | 14ae26d06b54f19f5367755ef4db0f86c03482a4 (patch) | |
| tree | d114cf1b612e595322e40addd4fffd9742c1e2a5 | |
| parent | 967ce521d87b3e9a90114119dc816c4eb55f5a43 (diff) | |
| download | usermoji-14ae26d06b54f19f5367755ef4db0f86c03482a4.tar.xz | |
layers: Fix layer STDOUT logging
| -rw-r--r-- | layers/device_limits.cpp | 8 | ||||
| -rw-r--r-- | layers/draw_state.cpp | 11 | ||||
| -rw-r--r-- | layers/image.cpp | 10 | ||||
| -rw-r--r-- | layers/mem_tracker.cpp | 10 | ||||
| -rw-r--r-- | layers/object_track.h | 8 | ||||
| -rw-r--r-- | layers/param_checker.cpp | 11 | ||||
| -rw-r--r-- | layers/shader_checker.cpp | 11 | ||||
| -rw-r--r-- | layers/vk_layer_config.cpp | 18 | ||||
| -rw-r--r-- | layers/vk_layer_config.h | 1 | ||||
| -rwxr-xr-x | vk-layer-generate.py | 7 |
10 files changed, 27 insertions, 68 deletions
diff --git a/layers/device_limits.cpp b/layers/device_limits.cpp index c8ff7fc1..9489eb62 100644 --- a/layers/device_limits.cpp +++ b/layers/device_limits.cpp @@ -117,13 +117,7 @@ static void init_device_limits(layer_data *my_data) if (debug_action & VK_DBG_LAYER_ACTION_LOG_MSG) { option_str = getLayerOption("DeviceLimitsLogFilename"); - if (option_str) - { - log_output = fopen(option_str, "w"); - } - if (log_output == NULL) - log_output = stdout; - + log_output = getLayerLogOutput(option_str, "DeviceLimits"); layer_create_msg_callback(my_data->report_data, report_flags, log_callback, (void *) log_output, &my_data->logging_callback); } diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp index cbf96c1f..8a51043e 100644 --- a/layers/draw_state.cpp +++ b/layers/draw_state.cpp @@ -1321,16 +1321,7 @@ static void init_draw_state(layer_data *my_data) if (debug_action & VK_DBG_LAYER_ACTION_LOG_MSG) { option_str = getLayerOption("DrawStateLogFilename"); - if (option_str) - { - log_output = fopen(option_str, "w"); - } - if (log_output == NULL) { - if (option_str) - cout << endl << "DrawState ERROR: Bad output filename specified: " << option_str << ". Writing to STDOUT instead" << endl << endl; - log_output = stdout; - } - + log_output = getLayerLogOutput(option_str, "DrawState"); layer_create_msg_callback(my_data->report_data, report_flags, log_callback, (void *) log_output, &my_data->logging_callback); } diff --git a/layers/image.cpp b/layers/image.cpp index 7fc5f7c8..f41a0e0d 100644 --- a/layers/image.cpp +++ b/layers/image.cpp @@ -86,15 +86,7 @@ static void InitImage(layer_data *data) { FILE *log_output = NULL; const char* option_str = getLayerOption("ImageLogFilename"); - if(option_str) - { - log_output = fopen(option_str, "w"); - } - if(log_output == NULL) - { - log_output = stdout; - } - + log_output = getLayerLogOutput(option_str, "Image"); layer_create_msg_callback(data->report_data, report_flags, log_callback, (void*)log_output, &data->logging_callback); } } diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp index 0c96e40a..6042f8e6 100644 --- a/layers/mem_tracker.cpp +++ b/layers/mem_tracker.cpp @@ -1307,15 +1307,7 @@ static void init_mem_tracker( if (debug_action & VK_DBG_LAYER_ACTION_LOG_MSG) { option_str = getLayerOption("MemTrackerLogFilename"); - if (option_str) { - log_output = fopen(option_str, "w"); - } - if (log_output == NULL) { - if (option_str) - cout << endl << "MemTracker ERROR: Bad output filename specified: " << option_str << ". Writing to STDOUT instead" << endl << endl; - log_output = stdout; - } - + log_output = getLayerLogOutput(option_str, "MemTracker"); layer_create_msg_callback(my_data->report_data, report_flags, log_callback, (void *) log_output, &my_data->logging_callback); } diff --git a/layers/object_track.h b/layers/object_track.h index 63febb2a..141d0d9f 100644 --- a/layers/object_track.h +++ b/layers/object_track.h @@ -368,13 +368,7 @@ initObjectTracker( if (debug_action & VK_DBG_LAYER_ACTION_LOG_MSG) { option_str = getLayerOption("ObjectTrackerLogFilename"); - if (option_str) { - log_output = fopen(option_str, "w"); - } - if (log_output == NULL) { - log_output = stdout; - } - + log_output = getLayerLogOutput(option_str, "ObjectTracker"); layer_create_msg_callback(my_data->report_data, report_flags, log_callback, (void *) log_output, &my_data->logging_callback); } diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp index 40712077..9fcf1192 100644 --- a/layers/param_checker.cpp +++ b/layers/param_checker.cpp @@ -89,16 +89,7 @@ static void InitParamChecker(layer_data *data) { FILE *log_output = NULL; const char* option_str = getLayerOption("ParamCheckerLogFilename"); - if(option_str) - { - log_output = fopen(option_str, "w"); - } - if (log_output == NULL) { - if (option_str) - std::cout << std::endl << "ParamChecker ERROR: Bad output filename specified: " << option_str << ". Writing to STDOUT instead" << std::endl << std::endl; - log_output = stdout; - } - + log_output = getLayerLogOutput(option_str, "ParamChecker"); layer_create_msg_callback(data->report_data, report_flags, log_callback, (void*)log_output, &data->logging_callback); } } diff --git a/layers/shader_checker.cpp b/layers/shader_checker.cpp index 7e3602c6..fbaf0a4e 100644 --- a/layers/shader_checker.cpp +++ b/layers/shader_checker.cpp @@ -215,16 +215,7 @@ init_shader_checker(layer_data *my_data) if (debug_action & VK_DBG_LAYER_ACTION_LOG_MSG) { option_str = getLayerOption("ShaderCheckerLogFilename"); - if (option_str) - { - log_output = fopen(option_str, "w"); - } - if (log_output == NULL) { - if (option_str) - std::cout << std::endl << "ShaderChecker ERROR: Bad output filename specified: " << option_str << ". Writing to STDOUT instead" << std::endl << std::endl; - log_output = stdout; - } - + log_output = getLayerLogOutput(option_str, "ShaderChecker"); layer_create_msg_callback(my_data->report_data, report_flags, log_callback, (void *) log_output, &my_data->logging_callback); } diff --git a/layers/vk_layer_config.cpp b/layers/vk_layer_config.cpp index a9cf5d75..d5ee78b2 100644 --- a/layers/vk_layer_config.cpp +++ b/layers/vk_layer_config.cpp @@ -27,6 +27,7 @@ #include <map> #include <string.h> #include <vk_layer.h> +#include <iostream> #include "vk_loader_platform.h" #include "vk_layer_config.h" // The following is #included again to catch certain OS-specific functions @@ -97,6 +98,23 @@ const char *getLayerOption(const char *_option) return g_configFileObj.getOption(_option); } +// If option is NULL or stdout, return stdout, otherwise try to open option +// as a filename. If successful, return file handle, otherwise stdout +FILE* getLayerLogOutput(const char *_option, const char *layerName) +{ + FILE* log_output = NULL; + if (!_option || !strcmp("stdout", _option)) + log_output = stdout; + else { + log_output = fopen(_option, "w"); + if (log_output == NULL) { + if (_option) + std::cout << std::endl << layerName << " ERROR: Bad output filename specified: " << _option << ". Writing to STDOUT instead" << std::endl << std::endl; + log_output = stdout; + } + } +} + uint32_t getLayerOptionFlags(const char *_option, uint32_t optionDefault) { uint32_t flags = optionDefault; diff --git a/layers/vk_layer_config.h b/layers/vk_layer_config.h index 0fe3dc42..724e343f 100644 --- a/layers/vk_layer_config.h +++ b/layers/vk_layer_config.h @@ -30,6 +30,7 @@ extern "C" { #endif const char *getLayerOption(const char *_option); +FILE* getLayerLogOutput(const char *_option, const char *layerName); uint32_t getLayerOptionFlags(const char *_option, uint32_t optionDefault); bool getLayerOptionEnum(const char *_option, uint32_t *optionDefault); diff --git a/vk-layer-generate.py b/vk-layer-generate.py index 2f4662f5..0720de0b 100755 --- a/vk-layer-generate.py +++ b/vk-layer-generate.py @@ -535,12 +535,7 @@ class Subcommand(object): func_body.append(' if (debug_action & VK_DBG_LAYER_ACTION_LOG_MSG)') func_body.append(' {') func_body.append(' strOpt = getLayerOption("%sLogFilename");' % self.layer_name) - func_body.append(' if (strOpt)') - func_body.append(' {') - func_body.append(' log_output = fopen(strOpt, "w");') - func_body.append(' }') - func_body.append(' if (log_output == NULL)') - func_body.append(' log_output = stdout;') + func_body.append(' log_output = getLayerLogOutput(strOpt, "%s");' % self.layer_name) func_body.append(' layer_create_msg_callback(my_data->report_data, report_flags, log_callback, (void *) log_output, &my_data->logging_callback);') func_body.append(' }') func_body.append('') |
