From e8025e95c001c4adaacc12dda7322dab6a95cec9 Mon Sep 17 00:00:00 2001 From: Jon Ashburn Date: Tue, 13 Jan 2015 17:24:49 -0700 Subject: [PATCH] glave: Add xgl settings that control the MemTracker and DrawState layers Conflicts: glave-generate.py tools/glave/src/glv_extensions/glvreplay_xgl/glvreplay_xgl_settings.cpp tools/glave/src/glv_extensions/glvreplay_xgl/glvreplay_xgl_settings.h --- glave-generate.py | 1 + .../src/glv_extensions/glvreplay_xgl/CMakeLists.txt | 3 ++- .../glvreplay_xgl/glvreplay_xgl_settings.cpp | 21 +++++++++++++++++---- .../glvreplay_xgl/glvreplay_xgl_settings.h | 5 +++++ tools/glave/src/glvcommon/glv_common.h | 4 ++++ 5 files changed, 29 insertions(+), 5 deletions(-) diff --git a/glave-generate.py b/glave-generate.py index 3a6d70b..d52a2cf 100755 --- a/glave-generate.py +++ b/glave-generate.py @@ -2528,6 +2528,7 @@ class Subcommand(object): cd_body.append(' unsigned int numLayers = 0;') cd_body.append(' char ** layersStr = get_enableLayers_list(&numLayers);') + cd_body.append(' apply_layerSettings_overrides();') cd_body.append(' XGL_LAYER_CREATE_INFO layerInfo;') cd_body.append(' pCreateInfoSaved = (XGL_DEVICE_CREATE_INFO *) pPacket->pCreateInfo;') cd_body.append(' ci = (XGL_DEVICE_CREATE_INFO *) pPacket->pCreateInfo;') diff --git a/tools/glave/src/glv_extensions/glvreplay_xgl/CMakeLists.txt b/tools/glave/src/glv_extensions/glvreplay_xgl/CMakeLists.txt index 8600c1c..770a068 100644 --- a/tools/glave/src/glv_extensions/glvreplay_xgl/CMakeLists.txt +++ b/tools/glave/src/glv_extensions/glvreplay_xgl/CMakeLists.txt @@ -7,7 +7,7 @@ project(glvreplay_xgl) include("${SRC_DIR}/build_options.cmake") -include_directories(${CMAKE_CURRENT_BINARY_DIR} ${SRC_DIR}/../../../include ${SRC_DIR}/glv_extensions/glvreplay_xgl) +include_directories(${CMAKE_CURRENT_BINARY_DIR} ${SRC_DIR}/../../../include ${SRC_DIR}/../../../layers ${SRC_DIR}/glv_extensions/glvreplay_xgl) # This file is shared between replayer and tracer and are generated to each dir. Should generate them to common area add_custom_command(OUTPUT glvtrace_xgl_packet_id.h xgl_enum_string_helper.h glvtrace_xgl_xgl_structs.h glvtrace_xgl_xglwsix11ext_structs.h glvtrace_xgl_xgldbg_structs.h glvreplay_xgl_replay.h glvreplay_xgl_replay.cpp @@ -65,6 +65,7 @@ target_link_libraries(${PROJECT_NAME} ${OS_REPLAYER_LIBS} getopt_bundled glvcommon + layer_utils ) build_options_finalize() diff --git a/tools/glave/src/glv_extensions/glvreplay_xgl/glvreplay_xgl_settings.cpp b/tools/glave/src/glv_extensions/glvreplay_xgl/glvreplay_xgl_settings.cpp index 7fa5452..2bc9c4c 100644 --- a/tools/glave/src/glv_extensions/glvreplay_xgl/glvreplay_xgl_settings.cpp +++ b/tools/glave/src/glv_extensions/glvreplay_xgl/glvreplay_xgl_settings.cpp @@ -22,19 +22,24 @@ * THE SOFTWARE. * **************************************************************************/ +#include #include "glvreplay_xgl_settings.h" - +#include "layers_config.h" // declared as extern in header -static glvreplay_xgl_settings s_defaultXglReplaySettings = { 1, "DrawState,ObjectTracker" }; +static glvreplay_xgl_settings s_defaultXglReplaySettings = { 1, "DrawState,ObjectTracker,MemTracker", + STRINGIFY(XGL_DBG_LAYER_LEVEL_ERROR), STRINGIFY(XGL_DBG_LAYER_ACTION_CALLBACK), + STRINGIFY(XGL_DBG_LAYER_LEVEL_ERROR), STRINGIFY(XGL_DBG_LAYER_ACTION_CALLBACK)}; glvreplay_xgl_settings g_xglReplaySettings; glv_SettingInfo g_settings_info[] = { { "dl", "DebugLevel", GLV_SETTING_UINT, &g_xglReplaySettings.debugLevel, &s_defaultXglReplaySettings.debugLevel, FALSE, "Sets the Debug Level of the Mantle validation layers."}, { "e", "EnableLayers", GLV_SETTING_STRING, &g_xglReplaySettings.enableLayers, &s_defaultXglReplaySettings.enableLayers, TRUE, "Comma separated list of xgl layers to enable."}, -}; - + { "dsrl", "DrawStateReportLevel", GLV_SETTING_STRING, &g_xglReplaySettings.drawStateReportLevel, &s_defaultXglReplaySettings.drawStateReportLevel, TRUE, "DrawState Layer reporting level"}, + { "dsda", "DrawStateDebugAction", GLV_SETTING_STRING, &g_xglReplaySettings.drawStateDebugAction, &s_defaultXglReplaySettings.drawStateDebugAction, TRUE, "DrawState Layer debug action"}, + { "mtrl", "MemTrackerReportLevel", GLV_SETTING_STRING, &g_xglReplaySettings.memTrackerReportLevel, &s_defaultXglReplaySettings.memTrackerReportLevel, TRUE, "MemTracker Layer reporting level"}, + { "mtda", "MemTrackerDebugAction", GLV_SETTING_STRING, &g_xglReplaySettings.memTrackerDebugAction, &s_defaultXglReplaySettings.memTrackerDebugAction, TRUE, "MemTracker Layer debug action"},}; glv_SettingGroup g_xglReplaySettingGroup = { "glvreplay_xgl", @@ -42,6 +47,14 @@ glv_SettingGroup g_xglReplaySettingGroup = &g_settings_info[0] }; +void apply_layerSettings_overrides() +{ + setLayerOptionEnum("DrawStateReportLevel", g_xglReplaySettings.drawStateReportLevel); + setLayerOptionEnum("DrawStateDebugAction", g_xglReplaySettings.drawStateDebugAction); + setLayerOptionEnum("MemTrackerReportLevel", g_xglReplaySettings.memTrackerReportLevel); + setLayerOptionEnum("MemTrackerDebugAction", g_xglReplaySettings.memTrackerDebugAction); +} + char** get_enableLayers_list(unsigned int *pNumLayers) { char** pList = NULL; diff --git a/tools/glave/src/glv_extensions/glvreplay_xgl/glvreplay_xgl_settings.h b/tools/glave/src/glv_extensions/glvreplay_xgl/glvreplay_xgl_settings.h index 75d1fb1..6e20c36 100644 --- a/tools/glave/src/glv_extensions/glvreplay_xgl/glvreplay_xgl_settings.h +++ b/tools/glave/src/glv_extensions/glvreplay_xgl/glvreplay_xgl_settings.h @@ -36,11 +36,16 @@ typedef struct glvreplay_xgl_settings { uint32_t debugLevel; const char* enableLayers; + const char* drawStateReportLevel; + const char* drawStateDebugAction; + const char* memTrackerReportLevel; + const char* memTrackerDebugAction; } glvreplay_xgl_settings; extern glvreplay_xgl_settings g_xglReplaySettings; extern glv_SettingGroup g_xglReplaySettingGroup; +void apply_layerSettings_overrides(); char** get_enableLayers_list(unsigned int* pNumLayers); void release_enableLayer_list(char** pList); diff --git a/tools/glave/src/glvcommon/glv_common.h b/tools/glave/src/glvcommon/glv_common.h index afb7afe..781b8c3 100644 --- a/tools/glave/src/glvcommon/glv_common.h +++ b/tools/glave/src/glvcommon/glv_common.h @@ -36,6 +36,10 @@ #include "glv_memory.h" #include "glv_tracelog.h" +#ifndef STRINGIFY +#define STRINGIFY(x) #x +#endif + #if defined(WIN32) #define GLVTRACER_EXPORT __declspec(dllexport) -- 2.7.4