Commit 9e586a0f by Jonah Ryan-Davis Committed by Commit Bot

Prevent vk shader generator from using anything but ANGLE's out.

If ANGLE is inside some other repo but hasn't been built yet, the shader generator will continue to look for out dirs inside parent repos. Should only look within the ANGLE repo. Bug: angleproject:3227 Change-Id: I084414f99eb3db71fe2c7ee4e59206b59f077a5a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1534462Reviewed-by: 's avatarJonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
parent 2219b18c
...@@ -192,7 +192,7 @@ ...@@ -192,7 +192,7 @@
"Vulkan format:src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp": "Vulkan format:src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp":
"ef0ea80cf33e60f76391bcfed10b3c0a", "ef0ea80cf33e60f76391bcfed10b3c0a",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/gen_vk_internal_shaders.py": "Vulkan internal shader programs:src/libANGLE/renderer/vulkan/gen_vk_internal_shaders.py":
"2919fe20f762acb6811e3576e320daa0", "01cad44301be0022141dbe6516a48c3e",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000000.inc": "Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000000.inc":
"155f523ecd36bae6b6abec5a41379e68", "155f523ecd36bae6b6abec5a41379e68",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000001.inc": "Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000001.inc":
......
...@@ -174,8 +174,9 @@ def get_output_path(name): ...@@ -174,8 +174,9 @@ def get_output_path(name):
return os.path.join('shaders', 'gen', name + ".inc") return os.path.join('shaders', 'gen', name + ".inc")
# Finds a path to GN's out directory # Finds a path to GN's out directory
def find_build_path(path): def find_build_path():
out = os.path.join(path, 'out') path = sys.path[0] # Directory of this script
out = os.path.join(path, "../../../../out") # Out is in angle base dir
if (os.path.isdir(out)): if (os.path.isdir(out)):
# Prefer release directories. # Prefer release directories.
for pattern in ['elease', '']: for pattern in ['elease', '']:
...@@ -185,10 +186,8 @@ def find_build_path(path): ...@@ -185,10 +186,8 @@ def find_build_path(path):
argsgn = os.path.join(subdir, "args.gn") argsgn = os.path.join(subdir, "args.gn")
if os.path.isfile(argsgn): if os.path.isfile(argsgn):
return subdir return subdir
parent = os.path.join(path, "..")
if (os.path.isdir(parent)): # If we reached this point, there was no build directory in the angle repo
return find_build_path(parent)
else:
raise Exception("Could not find GN out directory") raise Exception("Could not find GN out directory")
# Generates the code for a shader blob array entry. # Generates the code for a shader blob array entry.
...@@ -476,7 +475,7 @@ def main(): ...@@ -476,7 +475,7 @@ def main():
# a) Get the path to the glslang binary from the script directory. # a) Get the path to the glslang binary from the script directory.
glslang_path = None glslang_path = None
if not print_outputs: if not print_outputs:
build_path = find_build_path(".") build_path = find_build_path()
print("Using glslang_validator from '" + build_path + "'") print("Using glslang_validator from '" + build_path + "'")
result = subprocess.call(['ninja', '-C', build_path, 'glslang_validator']) result = subprocess.call(['ninja', '-C', build_path, 'glslang_validator'])
if result != 0: if result != 0:
......
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