Commit 55ea947c by Shahbaz Youssefi Committed by Commit Bot

Roll Vulkan repos

Bug: angleproject:3095 Change-Id: I6ae9d61304981223f9e2f1869ed32612aa38952c Reviewed-on: https://chromium-review.googlesource.com/c/1405714 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
parent d8506c7e
......@@ -12,25 +12,25 @@ vars = {
'deqp_revision': '66a49e0a43f7af654ee1de8a3b1bcaf6c0d14aa4',
# Current revision of glslang, the Khronos SPIRV compiler.
'glslang_revision': 'de3b8e3bf3893a40a1d9c3b0ed4de750e436e30f',
'glslang_revision': 'f6e7c4d2de0d59724ea07739df70c466d169a2cd',
# Current revision fo the SPIRV-Headers Vulkan support library.
'spirv_headers_revision': '79b6681aadcb53c27d1052e5f8a0e82a981dbf2f',
'spirv_headers_revision': '8bea0a266ac9b718aa0818d9e3a47c0b77c2cb23',
# Current revision of SPIRV-Tools for Vulkan.
'spirv_tools_revision': 'd14db341b834cfb3c574a258c331b3a6b1c2cbc5',
'spirv_tools_revision': 'e2279da7148d19bd21c6d47ffc96ee4176f43dba',
# Current revision of Khronos Vulkan-Headers.
'vulkan_headers_revision': 'b65941cc4b2b43b74de00534d110b581c52c394b',
'vulkan_headers_revision': 'c200cb25db0f47364d3318d92c1d8e9dfff2fef1',
# Current revision of Khronos Vulkan-Loader.
'vulkan_loader_revision': '2aa6dcc10189f7700824bc5e21120beeff013c3a',
'vulkan_loader_revision': 'e1eafa18e17d00374253bcd37d015befa89fcc43',
# Current revision of Khronos Vulkan-Tools.
'vulkan_tools_revision': '2e8d601de618eddf2bab8597fd140b2824a060b2',
'vulkan_tools_revision': '91b17fd866b2e9cfb875bf516b05536d059416b1',
# Current revision of Khronos Vulkan-ValidationLayers.
'vulkan_validation_revision': '0fa2823fa693cc22afaa6e6c6d34aadb97104a2d',
'vulkan_validation_revision': '4eee269ae976567ef78db9c9feaafc3364578c87',
}
deps = {
......
......@@ -7,9 +7,9 @@ import("//third_party/angle/gni/angle.gni")
vulkan_validation_layers = [
"VkLayer_core_validation",
"VkLayer_object_tracker",
"VkLayer_parameter_validation",
"VkLayer_threading",
"VkLayer_object_lifetimes",
"VkLayer_stateless_validation",
"VkLayer_thread_safety",
"VkLayer_unique_objects",
]
......@@ -77,9 +77,10 @@ template("angle_apk") {
}
if (angle_enable_vulkan_validation_layers) {
foreach(_layer, vulkan_validation_layers) {
secondary_abi_shared_libraries +=
[ "${angle_root}/third_party/vulkan-validation-layers:${_layer}" +
"($android_secondary_abi_toolchain)" ]
secondary_abi_shared_libraries += [
"${angle_root}/third_party/vulkan-validation-layers:${_layer}" +
"($android_secondary_abi_toolchain)",
]
}
}
} else {
......@@ -88,8 +89,7 @@ template("angle_apk") {
"root_out_dir")
secondary_abi_loadable_modules = []
foreach(_library, angle_libraries) {
secondary_abi_loadable_modules +=
[ "${_secondary_out_dir}/lib.compressed/lib${_library}${angle_libs_suffix}.so" ]
secondary_abi_loadable_modules += [ "${_secondary_out_dir}/lib.compressed/lib${_library}${angle_libs_suffix}.so" ]
}
if (angle_enable_vulkan_validation_layers) {
foreach(_layer, vulkan_validation_layers) {
......@@ -115,9 +115,7 @@ template("angle_apk") {
} else {
loadable_modules = []
foreach(_library, angle_libraries) {
loadable_modules += [
"${root_out_dir}/lib.compressed/lib${_library}${angle_libs_suffix}.so",
]
loadable_modules += [ "${root_out_dir}/lib.compressed/lib${_library}${angle_libs_suffix}.so" ]
}
if (angle_enable_vulkan_validation_layers) {
foreach(_layer, vulkan_validation_layers) {
......
#!/usr/bin/python2
#
# Copyright 2017 The ANGLE Project Authors. All rights reserved.
# Copyright 2019 The ANGLE Project Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# remove_file_if_exists.py:
# This special action is needed to remove generated headers.
# Otherwise ANGLE will pick up the old file(s) and the build will fail.
# remove_files.py:
# This special action is used to cleanup old files from the build directory.
# Otherwise ANGLE will pick up the old file(s), causing build or runtime errors.
#
import sys
import glob
import os
import sys
if len(sys.argv) < 3:
print("Usage: " + sys.argv[0] + " <remove_file> <stamp_file>")
print("Usage: " + sys.argv[0] + " <stamp_file> <remove_patterns>")
stamp_file = sys.argv[1]
remove_file = sys.argv[1]
if os.path.isfile(remove_file):
os.remove(remove_file)
for i in range(2, len(sys.argv)):
remove_pattern = sys.argv[i]
remove_files = glob.glob(remove_pattern)
for f in remove_files:
if os.path.isfile(f):
os.remove(f)
# touch a dummy file to keep a timestamp
with open(sys.argv[2], "w") as f:
with open(stamp_file, "w") as f:
f.write("blah")
f.close()
......@@ -110,7 +110,7 @@
"Vulkan mandatory format support table:src/libANGLE/renderer/vulkan/vk_mandatory_format_support_data.json":
"fa2bd54c1bb0ab2cf1d386061a4bc5c5",
"Vulkan mandatory format support table:third_party/vulkan-headers/src/registry/vk.xml":
"8d46c04ce50d9866c934a6c4d175ab71",
"f5c8c9b8e521644ded34d44b1016c25e",
"packed enum:src/common/gen_packed_gl_enums.py":
"a9b1c38b4e4d8a1038e743be323f1a51",
"packed enum:src/common/packed_egl_enums.json":
......
......@@ -212,7 +212,7 @@ const char *GetVkObjectTypeName(VkObjectType type)
return "Debug Utils Messenger";
case VK_OBJECT_TYPE_VALIDATION_CACHE_EXT:
return "Validation Cache";
case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NVX:
case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV:
return "Acceleration Structure";
default:
return "<Unrecognized>";
......
......@@ -22,6 +22,9 @@ if (is_win) {
]
}
raw_root_out_dir = rebase_path(root_out_dir, root_build_dir)
raw_data_dir = rebase_path("$root_out_dir/$data_dir", root_build_dir)
raw_vulkan_headers_dir =
rebase_path("$angle_root/third_party/vulkan-headers/src", root_build_dir)
......@@ -50,7 +53,7 @@ helper_script_and_deps = [
[
"vulkan_gen_layer_dispatch_table_h",
"vk_layer_dispatch_table.h",
"loader_extension_generator.py",
"layer_dispatch_table_generator.py",
],
[
"vulkan_gen_object_types_h",
......@@ -68,9 +71,14 @@ helper_script_and_deps = [
"helper_file_generator.py",
],
[
"vulkan_gen_thread_check_helper",
"thread_check.h",
"threading_generator.py",
"vulkan_gen_thread_safety_h",
"thread_safety.h",
"thread_safety_generator.py",
],
[
"vulkan_gen_thread_safety_cpp",
"thread_safety.cpp",
"thread_safety_generator.py",
],
[
"vulkan_gen_typemap_helper",
......@@ -78,6 +86,11 @@ helper_script_and_deps = [
"helper_file_generator.py",
],
[
"vulkan_gen_object_tracker_h",
"object_tracker.h",
"object_tracker_generator.py",
],
[
"vulkan_gen_object_tracker_cpp",
"object_tracker.cpp",
"object_tracker_generator.py",
......@@ -88,9 +101,29 @@ helper_script_and_deps = [
"parameter_validation_generator.py",
],
[
"vulkan_gen_unique_objects_wrappers_helper",
"unique_objects_wrappers.h",
"unique_objects_generator.py",
"vulkan_gen_parameter_validation_h",
"parameter_validation.h",
"parameter_validation_generator.py",
],
[
"vulkan_gen_layer_chassis_h",
"chassis.h",
"layer_chassis_generator.py",
],
[
"vulkan_gen_layer_chassis_cpp",
"chassis.cpp",
"layer_chassis_generator.py",
],
[
"vulkan_gen_layer_chassis_dispatch_h",
"layer_chassis_dispatch.h",
"layer_chassis_dispatch_generator.py",
],
[
"vulkan_gen_layer_chassis_dispatch_cpp",
"layer_chassis_dispatch.cpp",
"layer_chassis_dispatch_generator.py",
],
]
......@@ -98,22 +131,58 @@ helper_script_and_deps = [
# so that all dependencies are together
copy("python_gen_deps") {
sources = vulkan_registry_script_files + [
"src/layers/vk_validation_error_messages.h",
"src/scripts/common_codegen.py",
"src/scripts/dispatch_table_helper_generator.py",
"src/scripts/helper_file_generator.py",
"src/scripts/loader_extension_generator.py",
"src/scripts/layer_dispatch_table_generator.py",
"src/scripts/lvl_genvk.py",
"src/scripts/object_tracker_generator.py",
"src/scripts/parameter_validation_generator.py",
"src/scripts/threading_generator.py",
"src/scripts/unique_objects_generator.py",
"src/scripts/thread_safety_generator.py",
"src/scripts/layer_chassis_generator.py",
"src/scripts/layer_chassis_dispatch_generator.py",
]
outputs = [
"$vulkan_gen_dir/{{source_file_part}}",
]
}
# This special action is needed to remove previously-generated header files.
# Otherwise the cpp files can pick up the old header files and cause build
# failures.
action("vulkan_clean_gen_headers") {
script = "$angle_root/scripts/remove_files.py"
deps = [
":python_gen_deps",
]
outputs = [
"$vulkan_gen_dir/vk_validation_error_messages_h_is_removed",
]
args = [
"$raw_vulkan_gen_dir/vk_validation_error_messages_h_is_removed",
"$raw_vulkan_gen_dir/vk_validation_error_messages.h",
]
}
# This special action is needed to remove old VVL objects that are now renamed.
action("vulkan_clean_old_validation_layer_objects") {
script = "$angle_root/scripts/remove_files.py"
# inputs is a (random) new file since the vvl roll, used to ensure the cleanup is done only once
inputs = [
"src/layers/gpu_validation.cpp",
]
outputs = [
"$vulkan_gen_dir/old_vvl_files_are_removed",
]
args = [
"$raw_vulkan_gen_dir/old_vvl_files_are_removed",
"$raw_root_out_dir/libVkLayer*",
"$raw_root_out_dir/VkLayer*",
"$raw_data_dir/VkLayer*.json",
]
}
foreach(script_and_dep, helper_script_and_deps) {
target_name = script_and_dep[0]
file = script_and_dep[1]
......@@ -121,12 +190,14 @@ foreach(script_and_dep, helper_script_and_deps) {
target("action", target_name) {
public_deps = [
":python_gen_deps",
":vulkan_clean_gen_headers",
":vulkan_clean_old_validation_layer_objects",
]
script = "$vulkan_gen_dir/lvl_genvk.py"
inputs = [
"$vulkan_gen_dir/$dep",
"$vulkan_gen_dir/common_codegen.py",
"$vulkan_gen_dir/vk_validation_error_messages.h",
"src/layers/vk_validation_error_messages.h",
]
outputs = [
"$vulkan_gen_dir/$file",
......@@ -231,70 +302,99 @@ core_validation_sources = [
"$vulkan_gen_dir/vk_safe_struct.h",
"src/layers/buffer_validation.cpp",
"src/layers/buffer_validation.h",
"src/layers/core_dispatch.cpp",
"src/layers/core_validation.cpp",
"src/layers/core_validation.h",
"src/layers/convert_to_renderpass2.cpp",
"src/layers/descriptor_sets.cpp",
"src/layers/descriptor_sets.h",
"src/layers/gpu_validation.cpp",
"src/layers/gpu_validation.h",
"src/layers/shader_validation.cpp",
"src/layers/shader_validation.h",
"src/layers/xxhash.c",
"src/layers/xxhash.h",
]
object_tracker_sources = [
object_lifetimes_sources = [
"$vulkan_gen_dir/object_tracker.cpp",
"src/layers/object_tracker.h",
"$vulkan_gen_dir/object_tracker.h",
"src/layers/object_tracker_utils.cpp",
]
parameter_validation_sources = [
stateless_validation_sources = [
"$vulkan_gen_dir/parameter_validation.cpp",
"src/layers/parameter_validation.h",
"$vulkan_gen_dir/parameter_validation.h",
"src/layers/parameter_validation_utils.cpp",
]
threading_sources = [
"$vulkan_gen_dir/thread_check.h",
"src/layers/threading.cpp",
"src/layers/threading.h",
thread_safety_sources = [
"$vulkan_gen_dir/thread_safety.cpp",
"$vulkan_gen_dir/thread_safety.h",
]
unique_objects_sources = [
"$vulkan_gen_dir/unique_objects_wrappers.h",
unique_objects_sources = []
# This file is manually included in the layer
# "$vulkan_gen_dir/vk_safe_struct.cpp",
"$vulkan_gen_dir/vk_safe_struct.h",
"src/layers/unique_objects.cpp",
"src/layers/unique_objects.h",
chassis_sources = [
"$vulkan_gen_dir/chassis.cpp",
"$vulkan_gen_dir/chassis.h",
"$vulkan_gen_dir/layer_chassis_dispatch.cpp",
"$vulkan_gen_dir/layer_chassis_dispatch.h",
]
core_validation_deps = [ ":vulkan_core_validation_glslang" ]
object_lifetimes_deps = [
":vulkan_gen_object_tracker_cpp",
":vulkan_gen_object_tracker_h",
]
stateless_validation_deps = [ ":vulkan_gen_stateless_validation" ]
thread_safety_deps = [
":vulkan_gen_thread_safety_cpp",
":vulkan_gen_thread_safety_h",
]
unique_objects_deps = []
chassis_deps = [
":vulkan_gen_layer_chassis_cpp",
":vulkan_gen_layer_chassis_h",
":vulkan_gen_layer_chassis_dispatch_cpp",
":vulkan_gen_layer_chassis_dispatch_h",
]
layers = [
[
"core_validation",
core_validation_sources,
":vulkan_core_validation_glslang",
core_validation_deps,
[],
],
[
"object_tracker",
object_tracker_sources,
":vulkan_gen_object_tracker",
"object_lifetimes",
object_lifetimes_sources + chassis_sources,
object_lifetimes_deps + chassis_deps,
[ "BUILD_OBJECT_TRACKER" ],
],
[
"parameter_validation",
parameter_validation_sources,
":vulkan_gen_parameter_validation",
"stateless_validation",
stateless_validation_sources + chassis_sources,
stateless_validation_deps + chassis_deps,
[ "BUILD_PARAMETER_VALIDATION" ],
],
[
"threading",
threading_sources,
":vulkan_gen_thread_check_helper",
"thread_safety",
thread_safety_sources + chassis_sources,
thread_safety_deps + chassis_deps,
[ "BUILD_THREAD_SAFETY" ],
],
[
"unique_objects",
unique_objects_sources,
":vulkan_gen_unique_objects_wrappers_helper",
unique_objects_sources + chassis_sources,
unique_objects_deps + chassis_deps,
[ "LAYER_CHASSIS_CAN_WRAP_HANDLES" ],
],
]
......@@ -303,12 +403,15 @@ if (!is_android) {
action("vulkan_gen_json_files") {
script = "$angle_root/scripts/generate_vulkan_layers_json.py"
public_deps = [
":vulkan_clean_old_validation_layer_objects",
]
json_names = [
"VkLayer_core_validation.json",
"VkLayer_object_tracker.json",
"VkLayer_parameter_validation.json",
"VkLayer_object_lifetimes.json",
"VkLayer_stateless_validation.json",
"VkLayer_standard_validation.json",
"VkLayer_threading.json",
"VkLayer_thread_safety.json",
"VkLayer_unique_objects.json",
]
sources = [
......@@ -359,63 +462,24 @@ config("vulkan_core_validation_config") {
source_set("vulkan_core_validation_glslang") {
public_deps = [
"${angle_spirv_tools_dir}:spvtools",
"${angle_spirv_tools_dir}:spvtools_opt",
"${angle_spirv_tools_dir}:spvtools_val",
]
public_configs = [ ":vulkan_core_validation_config" ]
}
config("vulkan_parameter_validation_config") {
config("vulkan_stateless_validation_config") {
if (is_clang) {
cflags_cc = [ "-Wno-unused-const-variable" ]
}
}
# These special "clean" actions are needed to remove generated headers.
# Otherwise the cpp files will pick up the old generated files
# and the build will fail. It's a bit unfortunate but necessary.
action("vulkan_clean_parameter_gen_header") {
script = "$angle_root/scripts/remove_file_if_exists.py"
inputs = parameter_validation_sources
source_set("vulkan_gen_stateless_validation") {
deps = [
":vulkan_gen_parameter_validation_cpp",
":vulkan_gen_parameter_validation_h",
]
outputs = [
"$vulkan_gen_dir/parameter_validation_h_is_removed",
]
args = [
"$raw_vulkan_gen_dir/parameter_validation.h",
"$raw_vulkan_gen_dir/parameter_validation_h_is_removed",
]
}
action("vulkan_clean_tracker_gen_header") {
script = "$angle_root/scripts/remove_file_if_exists.py"
inputs = object_tracker_sources
deps = [
":vulkan_gen_object_tracker_cpp",
]
outputs = [
"$vulkan_gen_dir/object_tracker_h_is_removed",
]
args = [
"$raw_vulkan_gen_dir/object_tracker.h",
"$raw_vulkan_gen_dir/object_tracker_h_is_removed",
]
}
source_set("vulkan_gen_parameter_validation") {
deps = [
":vulkan_clean_parameter_gen_header",
":vulkan_gen_parameter_validation_cpp",
]
public_configs = [ ":vulkan_parameter_validation_config" ]
}
source_set("vulkan_gen_object_tracker") {
deps = [
":vulkan_clean_tracker_gen_header",
":vulkan_gen_object_tracker_cpp",
]
public_configs = [ ":vulkan_stateless_validation_config" ]
}
foreach(layer_info, layers) {
......@@ -429,7 +493,7 @@ foreach(layer_info, layers) {
":vulkan_layer_utils",
]
if (layer_info[2] != "") {
deps += [ layer_info[2] ]
deps += layer_info[2]
}
sources = layer_info[1]
if (is_win) {
......@@ -439,9 +503,13 @@ foreach(layer_info, layers) {
ldflags = [ "-Wl,-Bsymbolic,--exclude-libs,ALL" ]
}
if (is_android) {
libs = [ "log" ]
libs = [
"log",
"nativewindow",
]
configs -= [ "//build/config/android:hide_all_but_jni_onload" ]
}
defines = layer_info[3]
}
}
......
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