Vulkan: Update build files after roll.
They have consolidated to one helper script generator. Simplifies the
GN build. This also re-enables the Vulkan back-end after the roll.
BUG=angleproject:1319
Change-Id: Ie98568ae5d1dc46932ea8d698809561da7591836
Reviewed-on: https://chromium-review.googlesource.com/427307
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/gni/angle.gni b/gni/angle.gni
index 7650778..a5fa07a 100644
--- a/gni/angle.gni
+++ b/gni/angle.gni
@@ -15,8 +15,7 @@
angle_enable_d3d9 = true
angle_enable_d3d11 = true
angle_enable_gl = true
- # TODO(jmadill): Re-enable Vulkan after roll.
- angle_enable_vulkan = false
+ angle_enable_vulkan = true
import("//build/config/win/visual_studio_version.gni")
} else if (is_linux && use_x11 && !is_chromeos) {
diff --git a/src/angle.gyp b/src/angle.gyp
index e57c6d0..95b0062 100644
--- a/src/angle.gyp
+++ b/src/angle.gyp
@@ -30,8 +30,7 @@
'angle_enable_d3d9%': 1,
'angle_enable_d3d11%': 1,
'angle_enable_hlsl%': 1,
- # TODO(jmadill): Re-enable Vulkan after roll.
- 'angle_enable_vulkan%': 0,
+ 'angle_enable_vulkan%': 1,
}],
['OS=="linux" and use_x11==1 and chromeos==0',
{
diff --git a/src/vulkan_support/BUILD.gn b/src/vulkan_support/BUILD.gn
index 2b41f68..2e6281b 100644
--- a/src/vulkan_support/BUILD.gn
+++ b/src/vulkan_support/BUILD.gn
@@ -81,58 +81,78 @@
configs -= vulkan_undefine_configs
}
-action("vulkan_gen_dispatch_table_helper") {
- script = "$vulkan_layers_dir/scripts/lvl_genvk.py"
- inputs = [
- "$vulkan_layers_dir/scripts/dispatch_table_generator.py",
- "$vulkan_layers_dir/scripts/generator.py",
- "$vulkan_layers_dir/scripts/reg.py",
- "$vulkan_layers_dir/scripts/vk.xml",
- "$vulkan_layers_dir/scripts/vulkan.py",
- ]
- outputs = [
- "$vulkan_gen_dir/vk_dispatch_table_helper.h",
- ]
- args = [
- "-o",
- raw_vulkan_gen_dir,
- "-registry",
- "$raw_vulkan_layers_dir/scripts/vk.xml",
+helper_script_and_deps = [
+ [
+ "vulkan_gen_dispatch_table_helper",
"vk_dispatch_table_helper.h",
- "-quiet",
- ]
-}
+ "dispatch_table_generator.py",
+ ],
+ [
+ "vulkan_gen_enum_string_helper",
+ "vk_enum_string_helper.h",
+ "helper_file_generator.py",
+ ],
+ [
+ "vulkan_gen_safe_struct_cpp",
+ "vk_safe_struct.cpp",
+ "helper_file_generator.py",
+ ],
+ [
+ "vulkan_gen_safe_struct_h",
+ "vk_safe_struct.h",
+ "helper_file_generator.py",
+ ],
+ [
+ "vulkan_gen_struct_size_helper_c",
+ "vk_struct_size_helper.c",
+ "helper_file_generator.py",
+ ],
+ [
+ "vulkan_gen_struct_size_helper_h",
+ "vk_struct_size_helper.h",
+ "helper_file_generator.py",
+ ],
+ [
+ "vulkan_gen_thread_check_helper",
+ "thread_check.h",
+ "threading_generator.py",
+ ],
+ [
+ "vulkan_gen_parameter_validation_helper",
+ "parameter_validation.h",
+ "parameter_validation_generator.py",
+ ],
+ [
+ "vulkan_gen_unique_objects_wrappers_helper",
+ "unique_objects_wrappers.h",
+ "unique_objects_generator.py",
+ ],
+]
-action("vulkan_gen_struct_wrappers") {
- script = "$vulkan_layers_dir/scripts/vk_helper.py"
- inputs = [
- "$vulkan_layers_dir/include/vulkan/vulkan.h",
- ]
- outputs = vulkan_gypi.vulkan_struct_wrappers_outputs
- args = [
- "--gen_struct_wrappers",
- rebase_path(vulkan_layers_dir) + "/include/vulkan/vulkan.h",
- "--abs_out_dir",
- raw_vulkan_gen_dir,
- "--quiet",
- ]
-}
-
-action("vulkan_gen_enum_string_helper") {
- script = "$vulkan_layers_dir/scripts/vk_helper.py"
- inputs = [
- "$vulkan_layers_dir/include/vulkan/vulkan.h",
- ]
- outputs = [
- "$vulkan_gen_dir/vk_enum_string_helper.h",
- ]
- args = [
- "--gen_enum_string_helper",
- rebase_path(vulkan_layers_dir) + "/include/vulkan/vulkan.h",
- "--abs_out_dir",
- raw_vulkan_gen_dir,
- "--quiet",
- ]
+foreach(script_and_dep, helper_script_and_deps) {
+ target_name = script_and_dep[0]
+ file = script_and_dep[1]
+ dep = script_and_dep[2]
+ target("action", target_name) {
+ script = "$vulkan_layers_dir/scripts/lvl_genvk.py"
+ inputs = [
+ "$vulkan_layers_dir/scripts/$dep",
+ "$vulkan_layers_dir/scripts/generator.py",
+ "$vulkan_layers_dir/scripts/reg.py",
+ "$vulkan_layers_dir/scripts/vk.xml",
+ ]
+ outputs = [
+ "$vulkan_gen_dir/$file",
+ ]
+ args = [
+ "-o",
+ raw_vulkan_gen_dir,
+ "-registry",
+ "$raw_vulkan_layers_dir/scripts/vk.xml",
+ "$file",
+ "-quiet",
+ ]
+ }
}
config("vulkan_layer_config") {
@@ -145,11 +165,12 @@
source_set("vulkan_layer_table") {
configs -= vulkan_undefine_configs
public_deps = [
- ":vulkan_gen_dispatch_table_helper",
- ":vulkan_gen_enum_string_helper",
- ":vulkan_gen_struct_wrappers",
":vulkan_layer_utils",
]
+ foreach(script_and_dep, helper_script_and_deps) {
+ target_name = script_and_dep[0]
+ public_deps += [ ":$target_name" ]
+ }
public_configs = [ ":vulkan_layer_config" ]
sources = [
"$target_gen_dir/angle/vulkan/vk_dispatch_table_helper.h",
@@ -290,51 +311,6 @@
public_configs = [ ":vulkan_core_validation_config" ]
}
-vk_gen_layers = [
- [
- "threading",
- "thread_check.h",
- "threading_generator.py",
- ],
- [
- "parameter_validation",
- "parameter_validation.h",
- "parameter_validation_generator.py",
- ],
- [
- "unique_objects",
- "unique_objects_wrappers.h",
- "unique_objects_generator.py",
- ],
-]
-
-foreach(info, vk_gen_layers) {
- layer = info[0]
- header = info[1]
- dep = info[2]
- action("vulkan_gen_$layer") {
- script = "$vulkan_layers_dir/scripts/lvl_genvk.py"
- inputs = [
- "$vulkan_layers_dir/scripts/generator.py",
- "$vulkan_layers_dir/scripts/lvl_genvk.py",
- "$vulkan_layers_dir/scripts/reg.py",
- "$vulkan_layers_dir/scripts/vk.xml",
- "$vulkan_layers_dir/scripts/$dep",
- ]
- outputs = [
- "$vulkan_gen_dir/$header",
- ]
- args = [
- "-o",
- raw_vulkan_gen_dir,
- "-registry",
- "$raw_vulkan_layers_dir/scripts/vk.xml",
- "$header",
- "-quiet",
- ]
- }
-}
-
layer_indexes = [
0,
1,
@@ -360,9 +336,9 @@
[],
[],
[],
- [ ":vulkan_gen_unique_objects" ],
- [ ":vulkan_gen_threading" ],
- [ ":vulkan_gen_parameter_validation" ],
+ [ ":vulkan_gen_unique_objects_wrappers_helper" ],
+ [ ":vulkan_gen_thread_check_helper" ],
+ [ ":vulkan_gen_parameter_validation_helper" ],
]
foreach(index, layer_indexes) {
diff --git a/src/vulkan_support/vulkan.gypi b/src/vulkan_support/vulkan.gypi
index ca3fca0..321bc40 100644
--- a/src/vulkan_support/vulkan.gypi
+++ b/src/vulkan_support/vulkan.gypi
@@ -532,11 +532,133 @@
'target_name': 'vulkan_generate_layer_helpers',
'type': 'none',
'msvs_cygwin_shell': 0,
+
'actions':
[
+ # Duplicate everything because of GYP limitations.
+ {
+ 'action_name': 'vulkan_run_vk_xml_generate_vk_enum_string_helper_h',
+ 'message': 'generating vk_enum_string_helper.h',
+ 'inputs':
+ [
+ '<(vulkan_layers_path)/scripts/generator.py',
+ '<(vulkan_layers_path)/scripts/helper_file_generator.py',
+ '<(vulkan_layers_path)/scripts/lvl_genvk.py',
+ '<(vulkan_layers_path)/scripts/reg.py',
+ '<(vulkan_layers_path)/scripts/vk.xml',
+ ],
+ 'outputs':
+ [
+ '<(angle_gen_path)/vulkan/vk_enum_string_helper.h'
+ ],
+ 'action':
+ [
+ 'python', '<(vulkan_layers_path)/scripts/lvl_genvk.py',
+ '-o', '<(angle_gen_path)/vulkan',
+ '-registry', '<(vulkan_layers_path)/scripts/vk.xml',
+ 'vk_enum_string_helper.h', '-quiet',
+ ],
+ },
+
+ {
+ 'action_name': 'vulkan_run_vk_xml_generate_vk_struct_size_helper_h',
+ 'message': 'generating vk_struct_size_helper.h',
+ 'inputs':
+ [
+ '<(vulkan_layers_path)/scripts/generator.py',
+ '<(vulkan_layers_path)/scripts/helper_file_generator.py',
+ '<(vulkan_layers_path)/scripts/lvl_genvk.py',
+ '<(vulkan_layers_path)/scripts/reg.py',
+ '<(vulkan_layers_path)/scripts/vk.xml',
+ ],
+ 'outputs':
+ [
+ '<(angle_gen_path)/vulkan/vk_struct_size_helper.h'
+ ],
+ 'action':
+ [
+ 'python', '<(vulkan_layers_path)/scripts/lvl_genvk.py',
+ '-o', '<(angle_gen_path)/vulkan',
+ '-registry', '<(vulkan_layers_path)/scripts/vk.xml',
+ 'vk_struct_size_helper.h', '-quiet',
+ ],
+ },
+
+ {
+ 'action_name': 'vulkan_run_vk_xml_generate_vk_struct_size_helper_c',
+ 'message': 'generating vk_struct_size_helper.c',
+ 'inputs':
+ [
+ '<(vulkan_layers_path)/scripts/generator.py',
+ '<(vulkan_layers_path)/scripts/helper_file_generator.py',
+ '<(vulkan_layers_path)/scripts/lvl_genvk.py',
+ '<(vulkan_layers_path)/scripts/reg.py',
+ '<(vulkan_layers_path)/scripts/vk.xml',
+ ],
+ 'outputs':
+ [
+ '<(angle_gen_path)/vulkan/vk_struct_size_helper.c'
+ ],
+ 'action':
+ [
+ 'python', '<(vulkan_layers_path)/scripts/lvl_genvk.py',
+ '-o', '<(angle_gen_path)/vulkan',
+ '-registry', '<(vulkan_layers_path)/scripts/vk.xml',
+ 'vk_struct_size_helper.c', '-quiet',
+ ],
+ },
+
+ {
+ 'action_name': 'vulkan_run_vk_xml_generate_vk_safe_struct_h',
+ 'message': 'generating vk_safe_struct.h',
+ 'inputs':
+ [
+ '<(vulkan_layers_path)/scripts/generator.py',
+ '<(vulkan_layers_path)/scripts/helper_file_generator.py',
+ '<(vulkan_layers_path)/scripts/lvl_genvk.py',
+ '<(vulkan_layers_path)/scripts/reg.py',
+ '<(vulkan_layers_path)/scripts/vk.xml',
+ ],
+ 'outputs':
+ [
+ '<(angle_gen_path)/vulkan/vk_safe_struct.h'
+ ],
+ 'action':
+ [
+ 'python', '<(vulkan_layers_path)/scripts/lvl_genvk.py',
+ '-o', '<(angle_gen_path)/vulkan',
+ '-registry', '<(vulkan_layers_path)/scripts/vk.xml',
+ 'vk_safe_struct.h', '-quiet',
+ ],
+ },
+
+ {
+ 'action_name': 'vulkan_run_vk_xml_generate_vk_safe_struct_cpp',
+ 'message': 'generating vk_safe_struct.cpp',
+ 'inputs':
+ [
+ '<(vulkan_layers_path)/scripts/generator.py',
+ '<(vulkan_layers_path)/scripts/helper_file_generator.py',
+ '<(vulkan_layers_path)/scripts/lvl_genvk.py',
+ '<(vulkan_layers_path)/scripts/reg.py',
+ '<(vulkan_layers_path)/scripts/vk.xml',
+ ],
+ 'outputs':
+ [
+ '<(angle_gen_path)/vulkan/vk_safe_struct.cpp'
+ ],
+ 'action':
+ [
+ 'python', '<(vulkan_layers_path)/scripts/lvl_genvk.py',
+ '-o', '<(angle_gen_path)/vulkan',
+ '-registry', '<(vulkan_layers_path)/scripts/vk.xml',
+ 'vk_safe_struct.cpp', '-quiet',
+ ],
+ },
+
{
'action_name': 'vulkan_generate_dispatch_table_helper',
- 'message': 'generating Vulkan dispatch table helpers',
+ 'message': 'generating vk_dispatch_table_helper.h',
'inputs':
[
'<(vulkan_layers_path)/scripts/dispatch_table_generator.py',
@@ -555,53 +677,6 @@
'-registry', '<(vulkan_layers_path)/scripts/vk.xml', 'vk_dispatch_table_helper.h', '-quiet',
],
},
- {
- 'action_name': 'vulkan_generate_enum_string_helper',
- 'message': 'generating Vulkan enum string helper',
- 'inputs':
- [
- '<(vulkan_layers_path)/scripts/vk_helper.py',
- '<(vulkan_layers_path)/include/vulkan/vulkan.h'
- ],
- 'outputs':
- [
- '<(angle_gen_path)/vulkan/vk_enum_string_helper.h',
- ],
- 'action':
- [
- 'python',
- '<(vulkan_layers_path)/scripts/vk_helper.py',
- '--gen_enum_string_helper',
- '<(vulkan_layers_path)/include/vulkan/vulkan.h',
- '--abs_out_dir',
- '<(angle_gen_path)/vulkan',
- '--quiet',
- ],
- },
-
- {
- 'action_name': 'vulkan_generate_struct_wrappers',
- 'message': 'generating Vulkan struct wrappers',
- 'inputs':
- [
- '<(vulkan_layers_path)/scripts/vk_helper.py',
- '<(vulkan_layers_path)/include/vulkan/vulkan.h'
- ],
- 'outputs':
- [
- '<@(vulkan_struct_wrappers_outputs)',
- ],
- 'action':
- [
- 'python',
- '<(vulkan_layers_path)/scripts/vk_helper.py',
- '--gen_struct_wrappers',
- '<(vulkan_layers_path)/include/vulkan/vulkan.h',
- '--abs_out_dir',
- '<(angle_gen_path)/vulkan',
- '--quiet',
- ],
- },
{
'action_name': 'vulkan_generate_json_files',