mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-19 06:24:51 +08:00
feature: Allow debug keys in release ocloc on windows
Requires NEOReadDebugKeys=1 Related-To: NEO-16997 Signed-off-by: Chodor, Jaroslaw <jaroslaw.chodor@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
8600a73eb6
commit
7b13028ac4
@@ -5621,8 +5621,12 @@ TEST(OclocApiSpecificConfigTests, givenOclocApiConfigThenOnlyOclocPrefixIsAllowe
|
||||
EXPECT_EQ(DebugVarPrefix::neoOcloc, prefixStringTypes[0]);
|
||||
}
|
||||
|
||||
TEST(OclocApiSpecificConfigTests, givenOclocThenDebugKeysAreAllowedOnlyInDebug) {
|
||||
TEST(OclocApiSpecificConfigTests, givenOclocThenDebugKeysAreAllowedInReleaseModeIfNeoReadDebugKeysIsSet) {
|
||||
EXPECT_FALSE(NEO::isDebugKeysReadEnabled());
|
||||
|
||||
std::unordered_map<std::string, std::string> mockableEnvs = {{"NEOReadDebugKeys", "1"}};
|
||||
VariableBackup<std::unordered_map<std::string, std::string> *> mockableEnvValuesBackup(&IoFunctions::mockableEnvValues, &mockableEnvs);
|
||||
EXPECT_TRUE(NEO::isDebugKeysReadEnabled());
|
||||
}
|
||||
|
||||
TEST_F(OfflineCompilerTests, GivenFclRedirectionEnvSetToForceIgcWhenInitializingOclocThenIgcIsBeingUsedAsFclFacade) {
|
||||
|
||||
@@ -87,6 +87,7 @@ set(CLOC_LIB_SRCS_LIB
|
||||
${NEO_SHARED_DIRECTORY}/utilities/logger.cpp
|
||||
${NEO_SHARED_DIRECTORY}/utilities/logger.h
|
||||
${OCLOC_DIRECTORY}/source/default_cache_config.cpp
|
||||
${OCLOC_DIRECTORY}/source/debug_variables_helper_ocloc.cpp
|
||||
${OCLOC_DIRECTORY}/source/decoder/binary_decoder.cpp
|
||||
${OCLOC_DIRECTORY}/source/decoder/binary_decoder.h
|
||||
${OCLOC_DIRECTORY}/source/decoder/binary_encoder.cpp
|
||||
@@ -153,7 +154,6 @@ if(WIN32)
|
||||
${NEO_SHARED_DIRECTORY}/ail/windows/ail_configuration_windows.cpp
|
||||
${NEO_SHARED_DIRECTORY}/compiler_interface/windows/compiler_cache_windows.cpp
|
||||
${NEO_SHARED_DIRECTORY}/compiler_interface/windows/os_compiler_cache_helper.cpp
|
||||
${NEO_SHARED_DIRECTORY}/debug_settings/windows/debug_variables_helper.cpp
|
||||
${NEO_SHARED_DIRECTORY}/dll/windows${BRANCH_DIR_SUFFIX}/options_windows.cpp
|
||||
${NEO_SHARED_DIRECTORY}/dll/windows/options_windows.inl
|
||||
${NEO_SHARED_DIRECTORY}/os_interface/windows/os_inc.h
|
||||
@@ -172,7 +172,6 @@ else()
|
||||
${NEO_SHARED_DIRECTORY}/ail/linux/ail_configuration_linux.cpp
|
||||
${NEO_SHARED_DIRECTORY}/compiler_interface/linux/compiler_cache_linux.cpp
|
||||
${NEO_SHARED_DIRECTORY}/compiler_interface/linux/os_compiler_cache_helper.cpp
|
||||
${NEO_SHARED_DIRECTORY}/debug_settings/linux/debug_variables_helper.cpp
|
||||
${NEO_SHARED_DIRECTORY}/dll/linux${BRANCH_DIR_SUFFIX}/options_linux.cpp
|
||||
${NEO_SHARED_DIRECTORY}/dll/linux/options_linux.inl
|
||||
${NEO_SHARED_DIRECTORY}/os_interface/linux/os_inc.h
|
||||
@@ -355,6 +354,8 @@ add_library(${OCLOC_NAME}_lib SHARED ${CLOC_LIB_SRCS}
|
||||
${NEO_SOURCE_DIR}/shared/source/utilities/debug_settings_reader_creator.cpp
|
||||
${NEO_SHARED_DIRECTORY}/utilities/io_functions.cpp
|
||||
)
|
||||
remove_definitions(-DPURGE_DEBUG_KEY_NAMES=0 -DPURGE_DEBUG_KEY_NAMES=1)
|
||||
add_definitions(-DPURGE_DEBUG_KEY_NAMES=0 -DOCLOC_ALLOW_REGKEYS=1)
|
||||
add_subdirectories()
|
||||
|
||||
create_project_source_tree(${OCLOC_NAME}_lib)
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Copyright (C) 2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "shared/source/debug_settings/debug_variables_helper.h"
|
||||
#include "shared/source/os_interface/debug_env_reader.h"
|
||||
|
||||
namespace NEO {
|
||||
|
||||
bool isDebugKeysReadEnabled() {
|
||||
EnvironmentVariableReader envReader;
|
||||
return envReader.getSetting("NEOReadDebugKeys", false);
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
@@ -109,9 +109,14 @@ void DebugSettingsManager<debugLevel>::getStringWithFlags(std::string &allFlags,
|
||||
allFlagsStream << neoKey.c_str() << " = " << flags.variableName.get() << '\n'; \
|
||||
dumpNonDefaultFlag<dataType>(neoKey.c_str(), flags.variableName.get(), defaultValue, changedFlagsStream); \
|
||||
}
|
||||
#define DECLARE_DEBUG_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) \
|
||||
if constexpr (enabled) { \
|
||||
DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description) \
|
||||
}
|
||||
if (registryReadAvailable() || isDebugKeysReadEnabled()) {
|
||||
#include "debug_variables.inl"
|
||||
}
|
||||
#undef DECLARE_DEBUG_VARIABLE_OPT
|
||||
#undef DECLARE_DEBUG_VARIABLE
|
||||
#define DECLARE_RELEASE_VARIABLE(dataType, variableName, defaultValue, description) \
|
||||
{ \
|
||||
@@ -163,10 +168,15 @@ void DebugSettingsManager<debugLevel>::injectSettingsFromReader() {
|
||||
flags.variableName.set(tempData); \
|
||||
} \
|
||||
}
|
||||
#define DECLARE_DEBUG_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) \
|
||||
if constexpr (enabled) { \
|
||||
DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description) \
|
||||
}
|
||||
|
||||
if (registryReadAvailable() || isDebugKeysReadEnabled()) {
|
||||
#include "debug_variables.inl"
|
||||
}
|
||||
#undef DECLARE_DEBUG_VARIABLE_OPT
|
||||
#undef DECLARE_DEBUG_VARIABLE
|
||||
#define DECLARE_RELEASE_VARIABLE(dataType, variableName, defaultValue, description) \
|
||||
{ \
|
||||
|
||||
@@ -34,7 +34,7 @@ enum class DebugFunctionalityLevel {
|
||||
|
||||
#if defined(_DEBUG)
|
||||
constexpr DebugFunctionalityLevel globalDebugFunctionalityLevel = DebugFunctionalityLevel::full;
|
||||
#elif defined(_RELEASE_INTERNAL) || defined(_RELEASE_BUILD_WITH_REGKEYS)
|
||||
#elif defined(_RELEASE_INTERNAL) || defined(_RELEASE_BUILD_WITH_REGKEYS) || defined(OCLOC_ALLOW_REGKEYS)
|
||||
constexpr DebugFunctionalityLevel globalDebugFunctionalityLevel = DebugFunctionalityLevel::regKeys;
|
||||
#else
|
||||
constexpr DebugFunctionalityLevel globalDebugFunctionalityLevel = DebugFunctionalityLevel::none;
|
||||
@@ -150,6 +150,7 @@ struct DebugVariables { // NOLINT(clang-analyzer
|
||||
#define S_OCLOC getDebugVarScopeMaskFor(DebugVarPrefix::neoOcloc)
|
||||
#define DECLARE_DEBUG_SCOPED_V(dataType, variableName, defaultValue, scope, description) \
|
||||
DebugVarBase<dataType> variableName{defaultValue, scope};
|
||||
#define DECLARE_DEBUG_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#include "debug_variables.inl"
|
||||
#define DECLARE_RELEASE_VARIABLE(dataType, variableName, defaultValue, description) DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#define DECLARE_RELEASE_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) DECLARE_RELEASE_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
@@ -162,6 +163,7 @@ struct DebugVariables { // NOLINT(clang-analyzer
|
||||
#undef S_OCL
|
||||
#undef S_NEO
|
||||
#undef S_NONE
|
||||
#undef DECLARE_DEBUG_VARIABLE_OPT
|
||||
#undef DECLARE_DEBUG_SCOPED_V
|
||||
#undef DECLARE_DEBUG_VARIABLE
|
||||
};
|
||||
|
||||
@@ -51,12 +51,14 @@ void BaseUltConfigListener::OnTestEnd(const ::testing::TestInfo &) {
|
||||
EXPECT_EQ(debugVarSnapshot.variableName.getRef(), debugManager.flags.variableName.getRef());
|
||||
#define DECLARE_DEBUG_SCOPED_V(dataType, variableName, defaultValue, description, ...) \
|
||||
DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#define DECLARE_DEBUG_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#include "debug_variables.inl"
|
||||
#define DECLARE_RELEASE_VARIABLE(dataType, variableName, defaultValue, description) DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#define DECLARE_RELEASE_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) DECLARE_RELEASE_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#include "release_variables.inl"
|
||||
#undef DECLARE_RELEASE_VARIABLE_OPT
|
||||
#undef DECLARE_RELEASE_VARIABLE
|
||||
#undef DECLARE_DEBUG_VARIABLE_OPT
|
||||
#undef DECLARE_DEBUG_SCOPED_V
|
||||
#undef DECLARE_DEBUG_VARIABLE
|
||||
|
||||
|
||||
@@ -23,12 +23,14 @@ class DebugManagerStateRestore {
|
||||
#define DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description) shrink(debugManager.flags.variableName.getRef());
|
||||
#define DECLARE_DEBUG_SCOPED_V(dataType, variableName, defaultValue, description, ...) \
|
||||
DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#define DECLARE_DEBUG_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#include "debug_variables.inl"
|
||||
#define DECLARE_RELEASE_VARIABLE(dataType, variableName, defaultValue, description) DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#define DECLARE_RELEASE_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) DECLARE_RELEASE_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#include "release_variables.inl"
|
||||
#undef DECLARE_RELEASE_VARIABLE_OPT
|
||||
#undef DECLARE_RELEASE_VARIABLE
|
||||
#undef DECLARE_DEBUG_VARIABLE_OPT
|
||||
#undef DECLARE_DEBUG_SCOPED_V
|
||||
#undef DECLARE_DEBUG_VARIABLE
|
||||
}
|
||||
|
||||
@@ -61,12 +61,14 @@ TEST(DebugSettingsManager, WhenDebugManagerIsDisabledThenDebugFunctionalityIsNot
|
||||
}
|
||||
#define DECLARE_DEBUG_SCOPED_V(dataType, variableName, defaultValue, description, ...) \
|
||||
DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#define DECLARE_DEBUG_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#include "debug_variables.inl"
|
||||
#define DECLARE_RELEASE_VARIABLE(dataType, variableName, defaultValue, description) DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#define DECLARE_RELEASE_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) DECLARE_RELEASE_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#include "release_variables.inl"
|
||||
#undef DECLARE_RELEASE_VARIABLE_OPT
|
||||
#undef DECLARE_RELEASE_VARIABLE
|
||||
#undef DECLARE_DEBUG_VARIABLE_OPT
|
||||
#undef DECLARE_DEBUG_SCOPED_V
|
||||
#undef DECLARE_DEBUG_VARIABLE
|
||||
}
|
||||
@@ -160,7 +162,9 @@ TEST(DebugSettingsManager, givenPrintDebugSettingsEnabledWithNoPrefixWhenCalling
|
||||
}
|
||||
#define DECLARE_DEBUG_SCOPED_V(dataType, variableName, defaultValue, description, ...) \
|
||||
DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#define DECLARE_DEBUG_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#include "debug_variables.inl"
|
||||
#undef DECLARE_DEBUG_VARIABLE_OPT
|
||||
#undef DECLARE_DEBUG_SCOPED_V
|
||||
#undef DECLARE_DEBUG_VARIABLE
|
||||
|
||||
@@ -202,7 +206,9 @@ TEST(DebugSettingsManager, DISABLED_givenPrintDebugSettingsEnabledWithNeoPrefixW
|
||||
}
|
||||
#define DECLARE_DEBUG_SCOPED_V(dataType, variableName, defaultValue, description, ...) \
|
||||
DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#define DECLARE_DEBUG_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#include "debug_variables.inl"
|
||||
#undef DECLARE_DEBUG_VARIABLE_OPT
|
||||
#undef DECLARE_DEBUG_SCOPED_V
|
||||
#undef DECLARE_DEBUG_VARIABLE
|
||||
|
||||
@@ -244,7 +250,9 @@ TEST(DebugSettingsManager, givenPrintDebugSettingsEnabledWithLevelZeroPrefixWhen
|
||||
}
|
||||
#define DECLARE_DEBUG_SCOPED_V(dataType, variableName, defaultValue, description, ...) \
|
||||
DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#define DECLARE_DEBUG_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#include "debug_variables.inl"
|
||||
#undef DECLARE_DEBUG_VARIABLE_OPT
|
||||
#undef DECLARE_DEBUG_SCOPED_V
|
||||
#undef DECLARE_DEBUG_VARIABLE
|
||||
|
||||
@@ -286,7 +294,9 @@ TEST(DebugSettingsManager, givenPrintDebugSettingsEnabledWithOclPrefixWhenCallin
|
||||
}
|
||||
#define DECLARE_DEBUG_SCOPED_V(dataType, variableName, defaultValue, description, ...) \
|
||||
DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#define DECLARE_DEBUG_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#include "debug_variables.inl"
|
||||
#undef DECLARE_DEBUG_VARIABLE_OPT
|
||||
#undef DECLARE_DEBUG_SCOPED_V
|
||||
#undef DECLARE_DEBUG_VARIABLE
|
||||
|
||||
@@ -328,7 +338,9 @@ TEST(DebugSettingsManager, givenPrintDebugSettingsEnabledWithMixedPrefixWhenCall
|
||||
}
|
||||
#define DECLARE_DEBUG_SCOPED_V(dataType, variableName, defaultValue, description, ...) \
|
||||
DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#define DECLARE_DEBUG_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#include "debug_variables.inl"
|
||||
#undef DECLARE_DEBUG_VARIABLE_OPT
|
||||
#undef DECLARE_DEBUG_SCOPED_V
|
||||
#undef DECLARE_DEBUG_VARIABLE
|
||||
|
||||
|
||||
@@ -64,7 +64,9 @@ TEST(DebugSettingsManager, givenPrintDebugSettingsAndDebugKeysReadEnabledOnDisab
|
||||
EXPECT_EQ(debugManager.flags.varName.get(), allSettingsReader.getSetting(#varName, defaultValue));
|
||||
#define DECLARE_DEBUG_SCOPED_V(dataType, varName, defaultValue, description, ...) \
|
||||
DECLARE_DEBUG_VARIABLE(dataType, varName, defaultValue, description)
|
||||
#define DECLARE_DEBUG_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#include "debug_variables.inl"
|
||||
#undef DECLARE_DEBUG_VARIABLE_OPT
|
||||
#undef DECLARE_DEBUG_SCOPED_V
|
||||
#undef DECLARE_DEBUG_VARIABLE
|
||||
std::remove(FullyDisabledTestDebugManager::settingsDumpFileName);
|
||||
|
||||
@@ -365,12 +365,14 @@ TEST(ExecutionEnvironment, givenNeoCalEnabledWhenCreateExecutionEnvironmentThenS
|
||||
EXPECT_EQ(defaultValue, debugManager.flags.variableName.getRef());
|
||||
#define DECLARE_DEBUG_SCOPED_V(dataType, variableName, defaultValue, description, ...) \
|
||||
DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#define DECLARE_DEBUG_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#include "debug_variables.inl"
|
||||
#define DECLARE_RELEASE_VARIABLE(dataType, variableName, defaultValue, description) DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#define DECLARE_RELEASE_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) DECLARE_RELEASE_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#include "release_variables.inl"
|
||||
#undef DECLARE_RELEASE_VARIABLE_OPT
|
||||
#undef DECLARE_RELEASE_VARIABLE
|
||||
#undef DECLARE_DEBUG_VARIABLE_OPT
|
||||
#undef DECLARE_DEBUG_SCOPED_V
|
||||
#undef DECLARE_DEBUG_VARIABLE
|
||||
|
||||
@@ -402,13 +404,14 @@ TEST(ExecutionEnvironment, givenNeoCalEnabledWhenCreateExecutionEnvironmentThenS
|
||||
}
|
||||
#define DECLARE_DEBUG_SCOPED_V(dataType, variableName, defaultValue, description, ...) \
|
||||
DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
|
||||
#define DECLARE_DEBUG_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#include "debug_variables.inl"
|
||||
#define DECLARE_RELEASE_VARIABLE(dataType, variableName, defaultValue, description) DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#define DECLARE_RELEASE_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) DECLARE_RELEASE_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#include "release_variables.inl"
|
||||
#undef DECLARE_RELEASE_VARIABLE_OPT
|
||||
#undef DECLARE_RELEASE_VARIABLE
|
||||
#undef DECLARE_DEBUG_VARIABLE_OPT
|
||||
#undef DECLARE_DEBUG_SCOPED_V
|
||||
#undef DECLARE_DEBUG_VARIABLE
|
||||
}
|
||||
|
||||
@@ -28,12 +28,14 @@ TEST(SettingsFileReader, givenTestFileWithDefaultValuesWhenTheyAreQueriedThenDef
|
||||
debugVariableCount++;
|
||||
#define DECLARE_DEBUG_SCOPED_V(dataType, variableName, defaultValue, description, ...) \
|
||||
DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#define DECLARE_DEBUG_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#include "debug_variables.inl"
|
||||
#define DECLARE_RELEASE_VARIABLE(dataType, variableName, defaultValue, description) DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#define DECLARE_RELEASE_VARIABLE_OPT(enabled, dataType, variableName, defaultValue, description) DECLARE_RELEASE_VARIABLE(dataType, variableName, defaultValue, description)
|
||||
#include "release_variables.inl"
|
||||
#undef DECLARE_RELEASE_VARIABLE_OPT
|
||||
#undef DECLARE_RELEASE_VARIABLE
|
||||
#undef DECLARE_DEBUG_VARIABLE_OPT
|
||||
#undef DECLARE_DEBUG_SCOPED_V
|
||||
#undef DECLARE_DEBUG_VARIABLE
|
||||
|
||||
|
||||
Reference in New Issue
Block a user