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 @@
"Vulkan format:src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp":
"ef0ea80cf33e60f76391bcfed10b3c0a",
"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":
"155f523ecd36bae6b6abec5a41379e68",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000001.inc":
......
......@@ -174,8 +174,9 @@ def get_output_path(name):
return os.path.join('shaders', 'gen', name + ".inc")
# Finds a path to GN's out directory
def find_build_path(path):
out = os.path.join(path, 'out')
def find_build_path():
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)):
# Prefer release directories.
for pattern in ['elease', '']:
......@@ -185,11 +186,9 @@ def find_build_path(path):
argsgn = os.path.join(subdir, "args.gn")
if os.path.isfile(argsgn):
return subdir
parent = os.path.join(path, "..")
if (os.path.isdir(parent)):
return find_build_path(parent)
else:
raise Exception("Could not find GN out directory")
# If we reached this point, there was no build directory in the angle repo
raise Exception("Could not find GN out directory")
# Generates the code for a shader blob array entry.
def gen_shader_blob_entry(shader):
......@@ -476,7 +475,7 @@ def main():
# a) Get the path to the glslang binary from the script directory.
glslang_path = None
if not print_outputs:
build_path = find_build_path(".")
build_path = find_build_path()
print("Using glslang_validator from '" + build_path + "'")
result = subprocess.call(['ninja', '-C', build_path, 'glslang_validator'])
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