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") { ...@@ -537,6 +537,10 @@ config("libANGLE_config") {
if (angle_enable_vulkan) { if (angle_enable_vulkan) {
config("vulkan_config") { 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) { if (is_android) {
libs = [ "vulkan" ] libs = [ "vulkan" ]
} }
......
...@@ -339,7 +339,7 @@ class ScopedVkLoaderEnvironment : angle::NonCopyable ...@@ -339,7 +339,7 @@ class ScopedVkLoaderEnvironment : angle::NonCopyable
: mEnableValidationLayers(enableValidationLayers), : mEnableValidationLayers(enableValidationLayers),
mEnableMockICD(enableMockICD), mEnableMockICD(enableMockICD),
mChangedCWD(false), mChangedCWD(false),
mChangedICDPath(false) mChangedICDEnv(false)
{ {
// Changing CWD and setting environment variables makes no sense on Android, // Changing CWD and setting environment variables makes no sense on Android,
// since this code is a part of Java application there. // since this code is a part of Java application there.
...@@ -349,9 +349,10 @@ class ScopedVkLoaderEnvironment : angle::NonCopyable ...@@ -349,9 +349,10 @@ class ScopedVkLoaderEnvironment : angle::NonCopyable
{ {
// Override environment variable to use built Mock ICD // Override environment variable to use built Mock ICD
// ANGLE_VK_ICD_JSON gets set to the built mock ICD in BUILD.gn // ANGLE_VK_ICD_JSON gets set to the built mock ICD in BUILD.gn
mPreviousICDPath = angle::GetEnvironmentVar(g_VkICDPathEnv); mPreviousICDEnv = angle::GetEnvironmentVar(gVkLoaderICDFilenamesEnv);
mChangedICDPath = angle::SetEnvironmentVar(g_VkICDPathEnv, ANGLE_VK_ICD_JSON); mChangedICDEnv =
if (!mChangedICDPath) angle::SetEnvironmentVar(gVkLoaderICDFilenamesEnv, ANGLE_VK_MOCK_ICD_JSON);
if (!mChangedICDEnv)
{ {
ERR() << "Error setting Path for Mock/Null Driver."; ERR() << "Error setting Path for Mock/Null Driver.";
mEnableMockICD = false; mEnableMockICD = false;
...@@ -383,7 +384,7 @@ class ScopedVkLoaderEnvironment : angle::NonCopyable ...@@ -383,7 +384,7 @@ class ScopedVkLoaderEnvironment : angle::NonCopyable
// Override environment variable to use the ANGLE layers. // Override environment variable to use the ANGLE layers.
if (mEnableValidationLayers) 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."; ERR() << "Error setting environment for Vulkan layers init.";
mEnableValidationLayers = false; mEnableValidationLayers = false;
...@@ -401,15 +402,15 @@ class ScopedVkLoaderEnvironment : angle::NonCopyable ...@@ -401,15 +402,15 @@ class ScopedVkLoaderEnvironment : angle::NonCopyable
angle::SetCWD(mPreviousCWD.value().c_str()); angle::SetCWD(mPreviousCWD.value().c_str());
#endif // !defined(ANGLE_PLATFORM_ANDROID) #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 else
{ {
angle::SetEnvironmentVar(g_VkICDPathEnv, mPreviousICDPath.value().c_str()); angle::SetEnvironmentVar(gVkLoaderICDFilenamesEnv, mPreviousICDEnv.value().c_str());
} }
} }
} }
...@@ -423,8 +424,8 @@ class ScopedVkLoaderEnvironment : angle::NonCopyable ...@@ -423,8 +424,8 @@ class ScopedVkLoaderEnvironment : angle::NonCopyable
bool mEnableMockICD; bool mEnableMockICD;
bool mChangedCWD; bool mChangedCWD;
Optional<std::string> mPreviousCWD; Optional<std::string> mPreviousCWD;
bool mChangedICDPath; bool mChangedICDEnv;
Optional<std::string> mPreviousICDPath; Optional<std::string> mPreviousICDEnv;
}; };
void ChoosePhysicalDevice(const std::vector<VkPhysicalDevice> &physicalDevices, void ChoosePhysicalDevice(const std::vector<VkPhysicalDevice> &physicalDevices,
......
...@@ -150,8 +150,8 @@ angle::Result AllocateBufferOrImageMemory(vk::Context *context, ...@@ -150,8 +150,8 @@ angle::Result AllocateBufferOrImageMemory(vk::Context *context,
return angle::Result::Continue; return angle::Result::Continue;
} }
const char *g_VkLoaderLayersPathEnv = "VK_LAYER_PATH"; const char *gVkLoaderLayersPathEnv = "VK_LAYER_PATH";
const char *g_VkICDPathEnv = "VK_ICD_FILENAMES"; const char *gVkLoaderICDFilenamesEnv = "VK_ICD_FILENAMES";
const char *VulkanResultString(VkResult result) const char *VulkanResultString(VkResult result)
{ {
......
...@@ -87,8 +87,8 @@ bool GetAvailableValidationLayers(const std::vector<VkLayerProperties> &layerPro ...@@ -87,8 +87,8 @@ bool GetAvailableValidationLayers(const std::vector<VkLayerProperties> &layerPro
bool mustHaveLayers, bool mustHaveLayers,
VulkanLayerVector *enabledLayerNames); VulkanLayerVector *enabledLayerNames);
extern const char *g_VkLoaderLayersPathEnv; extern const char *gVkLoaderLayersPathEnv;
extern const char *g_VkICDPathEnv; extern const char *gVkLoaderICDFilenamesEnv;
enum class TextureDimension enum class TextureDimension
{ {
......
...@@ -166,11 +166,7 @@ config("vulkan_loader_config") { ...@@ -166,11 +166,7 @@ config("vulkan_loader_config") {
"$angle_root/third_party/vulkan-headers/src/include", "$angle_root/third_party/vulkan-headers/src/include",
"src/loader", "src/loader",
] ]
defines = [ defines = [ "API_NAME=\"Vulkan\"" ]
"ANGLE_VK_DATA_DIR=\"$angle_data_dir\"",
"ANGLE_VK_ICD_JSON=\"$angle_data_dir/VkICD_mock_icd.json\"",
"API_NAME=\"Vulkan\"",
]
if (is_win) { if (is_win) {
cflags = [ "/wd4201" ] 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