Commit 2b7e2acb by Jamie Madill Committed by Commit Bot

Vulkan: Move loader defines into BUILD.gn.

We shouldn't need the extra loader defines config variable. The defines we need should probably be able to be located in ANGLE entirely. Bug: angleproject:3320 Bug: angleproject:3876 Change-Id: I78f449f44c1709b6d683930f9b9ea3d80016272e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1775462Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent 2c5d48a6
......@@ -537,6 +537,10 @@ config("libANGLE_config") {
if (angle_enable_vulkan) {
config("vulkan_config") {
defines = [
"ANGLE_VK_LAYERS_DIR=\"$angle_data_dir\"",
"ANGLE_VK_MOCK_ICD_JSON=\"$angle_data_dir/VkICD_mock_icd.json\"",
]
if (is_android) {
libs = [ "vulkan" ]
}
......
......@@ -339,7 +339,7 @@ class ScopedVkLoaderEnvironment : angle::NonCopyable
: mEnableValidationLayers(enableValidationLayers),
mEnableMockICD(enableMockICD),
mChangedCWD(false),
mChangedICDPath(false)
mChangedICDEnv(false)
{
// Changing CWD and setting environment variables makes no sense on Android,
// since this code is a part of Java application there.
......@@ -349,9 +349,10 @@ class ScopedVkLoaderEnvironment : angle::NonCopyable
{
// Override environment variable to use built Mock ICD
// ANGLE_VK_ICD_JSON gets set to the built mock ICD in BUILD.gn
mPreviousICDPath = angle::GetEnvironmentVar(g_VkICDPathEnv);
mChangedICDPath = angle::SetEnvironmentVar(g_VkICDPathEnv, ANGLE_VK_ICD_JSON);
if (!mChangedICDPath)
mPreviousICDEnv = angle::GetEnvironmentVar(gVkLoaderICDFilenamesEnv);
mChangedICDEnv =
angle::SetEnvironmentVar(gVkLoaderICDFilenamesEnv, ANGLE_VK_MOCK_ICD_JSON);
if (!mChangedICDEnv)
{
ERR() << "Error setting Path for Mock/Null Driver.";
mEnableMockICD = false;
......@@ -383,7 +384,7 @@ class ScopedVkLoaderEnvironment : angle::NonCopyable
// Override environment variable to use the ANGLE layers.
if (mEnableValidationLayers)
{
if (!angle::PrependPathToEnvironmentVar(g_VkLoaderLayersPathEnv, ANGLE_VK_DATA_DIR))
if (!angle::PrependPathToEnvironmentVar(gVkLoaderLayersPathEnv, ANGLE_VK_LAYERS_DIR))
{
ERR() << "Error setting environment for Vulkan layers init.";
mEnableValidationLayers = false;
......@@ -401,15 +402,15 @@ class ScopedVkLoaderEnvironment : angle::NonCopyable
angle::SetCWD(mPreviousCWD.value().c_str());
#endif // !defined(ANGLE_PLATFORM_ANDROID)
}
if (mChangedICDPath)
if (mChangedICDEnv)
{
if (mPreviousICDPath.value().empty())
if (mPreviousICDEnv.value().empty())
{
angle::UnsetEnvironmentVar(g_VkICDPathEnv);
angle::UnsetEnvironmentVar(gVkLoaderICDFilenamesEnv);
}
else
{
angle::SetEnvironmentVar(g_VkICDPathEnv, mPreviousICDPath.value().c_str());
angle::SetEnvironmentVar(gVkLoaderICDFilenamesEnv, mPreviousICDEnv.value().c_str());
}
}
}
......@@ -423,8 +424,8 @@ class ScopedVkLoaderEnvironment : angle::NonCopyable
bool mEnableMockICD;
bool mChangedCWD;
Optional<std::string> mPreviousCWD;
bool mChangedICDPath;
Optional<std::string> mPreviousICDPath;
bool mChangedICDEnv;
Optional<std::string> mPreviousICDEnv;
};
void ChoosePhysicalDevice(const std::vector<VkPhysicalDevice> &physicalDevices,
......
......@@ -150,8 +150,8 @@ angle::Result AllocateBufferOrImageMemory(vk::Context *context,
return angle::Result::Continue;
}
const char *g_VkLoaderLayersPathEnv = "VK_LAYER_PATH";
const char *g_VkICDPathEnv = "VK_ICD_FILENAMES";
const char *gVkLoaderLayersPathEnv = "VK_LAYER_PATH";
const char *gVkLoaderICDFilenamesEnv = "VK_ICD_FILENAMES";
const char *VulkanResultString(VkResult result)
{
......
......@@ -87,8 +87,8 @@ bool GetAvailableValidationLayers(const std::vector<VkLayerProperties> &layerPro
bool mustHaveLayers,
VulkanLayerVector *enabledLayerNames);
extern const char *g_VkLoaderLayersPathEnv;
extern const char *g_VkICDPathEnv;
extern const char *gVkLoaderLayersPathEnv;
extern const char *gVkLoaderICDFilenamesEnv;
enum class TextureDimension
{
......
......@@ -166,11 +166,7 @@ config("vulkan_loader_config") {
"$angle_root/third_party/vulkan-headers/src/include",
"src/loader",
]
defines = [
"ANGLE_VK_DATA_DIR=\"$angle_data_dir\"",
"ANGLE_VK_ICD_JSON=\"$angle_data_dir/VkICD_mock_icd.json\"",
"API_NAME=\"Vulkan\"",
]
defines = [ "API_NAME=\"Vulkan\"" ]
if (is_win) {
cflags = [ "/wd4201" ]
......
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