Commit 80d4ef10 by Omar El Sheikh Committed by Commit Bot

Vulkan: Fixed improperly set env variable

After the first test using the Mock ICD runs, an environment variable VK_ICD_FILENAMES is set when previously it did not exists. The cleanup of that test, rather than deleting the environment variable, set it to an empty string, which the Vulkan loader would use for subsequent Vulkan tests, causing issues with Vulkan not finding the correct extensions. Had to disable two more tests since they started failing once those backends were enabled. Bug: angleproject:2604 Change-Id: Ie103756eed60d255d1dd92d7ef3b726183feeb1e Reviewed-on: https://chromium-review.googlesource.com/1137342Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Commit-Queue: Omar El Sheikh <theoking@google.com>
parent e076a232
...@@ -21,6 +21,7 @@ const char *GetSharedLibraryExtension(); ...@@ -21,6 +21,7 @@ const char *GetSharedLibraryExtension();
Optional<std::string> GetCWD(); Optional<std::string> GetCWD();
bool SetCWD(const char *dirName); bool SetCWD(const char *dirName);
bool SetEnvironmentVar(const char *variableName, const char *value); bool SetEnvironmentVar(const char *variableName, const char *value);
bool UnsetEnvironmentVar(const char *variableName);
std::string GetEnvironmentVar(const char *variableName); std::string GetEnvironmentVar(const char *variableName);
const char *GetPathSeparator(); const char *GetPathSeparator();
bool PrependPathToEnvironmentVar(const char *variableName, const char *path); bool PrependPathToEnvironmentVar(const char *variableName, const char *path);
......
...@@ -81,6 +81,11 @@ bool SetCWD(const char *dirName) ...@@ -81,6 +81,11 @@ bool SetCWD(const char *dirName)
return (chdir(dirName) == 0); return (chdir(dirName) == 0);
} }
bool UnsetEnvironmentVar(const char *variableName)
{
return (unsetenv(variableName) == 0);
}
bool SetEnvironmentVar(const char *variableName, const char *value) bool SetEnvironmentVar(const char *variableName, const char *value)
{ {
return (setenv(variableName, value, 1) == 0); return (setenv(variableName, value, 1) == 0);
......
...@@ -86,6 +86,11 @@ bool SetCWD(const char *dirName) ...@@ -86,6 +86,11 @@ bool SetCWD(const char *dirName)
return (chdir(dirName) == 0); return (chdir(dirName) == 0);
} }
bool UnsetEnvironmentVar(const char *variableName)
{
return (unsetenv(variableName) == 0);
}
bool SetEnvironmentVar(const char *variableName, const char *value) bool SetEnvironmentVar(const char *variableName, const char *value)
{ {
return (setenv(variableName, value, 1) == 0); return (setenv(variableName, value, 1) == 0);
......
...@@ -71,6 +71,11 @@ bool SetCWD(const char *dirName) ...@@ -71,6 +71,11 @@ bool SetCWD(const char *dirName)
return (SetCurrentDirectoryA(dirName) == TRUE); return (SetCurrentDirectoryA(dirName) == TRUE);
} }
bool UnsetEnvironmentVar(const char *variableName)
{
return (SetEnvironmentVariableA(variableName, nullptr) == TRUE);
}
bool SetEnvironmentVar(const char *variableName, const char *value) bool SetEnvironmentVar(const char *variableName, const char *value)
{ {
return (SetEnvironmentVariableA(variableName, value) == TRUE); return (SetEnvironmentVariableA(variableName, value) == TRUE);
......
...@@ -179,7 +179,14 @@ class ScopedVkLoaderEnvironment : angle::NonCopyable ...@@ -179,7 +179,14 @@ class ScopedVkLoaderEnvironment : angle::NonCopyable
} }
if (mChangedICDPath) if (mChangedICDPath)
{ {
angle::SetEnvironmentVar(g_VkICDPathEnv, mPreviousICDPath.value().c_str()); if (mPreviousICDPath.value().empty())
{
angle::UnsetEnvironmentVar(g_VkICDPathEnv);
}
else
{
angle::SetEnvironmentVar(g_VkICDPathEnv, mPreviousICDPath.value().c_str());
}
} }
} }
......
...@@ -189,10 +189,5 @@ ANGLE_INSTANTIATE_TEST(DrawCallPerfBenchmark, ...@@ -189,10 +189,5 @@ ANGLE_INSTANTIATE_TEST(DrawCallPerfBenchmark,
DrawArrays(DrawCallPerfOpenGLOrGLESParams(true, false), false), DrawArrays(DrawCallPerfOpenGLOrGLESParams(true, false), false),
DrawArrays(DrawCallPerfOpenGLOrGLESParams(true, true), false), DrawArrays(DrawCallPerfOpenGLOrGLESParams(true, true), false),
DrawArrays(DrawCallPerfOpenGLOrGLESParams(true, false), true), DrawArrays(DrawCallPerfOpenGLOrGLESParams(true, false), true),
DrawArrays(DrawCallPerfValidationOnly(), false), DrawArrays(DrawCallPerfValidationOnly(), false));
DrawArrays(DrawCallPerfVulkanParams(true, false), true),
DrawArrays(DrawCallPerfVulkanParams(true, false), false),
DrawArrays(DrawCallPerfVulkanParams(false, false), false),
DrawArrays(DrawCallPerfVulkanParams(false, false), true));
} // namespace } // namespace
...@@ -177,13 +177,6 @@ DynamicPromotionParams DynamicPromotionD3D9Params() ...@@ -177,13 +177,6 @@ DynamicPromotionParams DynamicPromotionD3D9Params()
return params; return params;
} }
DynamicPromotionParams DynamicPromotionVulkanParams()
{
DynamicPromotionParams params;
params.eglParameters = egl_platform::VULKAN();
return params;
}
TEST_P(DynamicPromotionPerfTest, Run) TEST_P(DynamicPromotionPerfTest, Run)
{ {
run(); run();
...@@ -191,7 +184,5 @@ TEST_P(DynamicPromotionPerfTest, Run) ...@@ -191,7 +184,5 @@ TEST_P(DynamicPromotionPerfTest, Run)
ANGLE_INSTANTIATE_TEST(DynamicPromotionPerfTest, ANGLE_INSTANTIATE_TEST(DynamicPromotionPerfTest,
DynamicPromotionD3D11Params(), DynamicPromotionD3D11Params(),
DynamicPromotionD3D9Params(), DynamicPromotionD3D9Params());
DynamicPromotionVulkanParams());
} // anonymous namespace } // anonymous namespace
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment