Commit 8a57b468 by Jamie Madill Committed by Commit Bot

Re-land "Vulkan: Roll loader/validation layers SDK. (2/2)"

Second re-land fixes git.bat access on developer machines. Re-landing with upstream fixes to the layers so they no longer need to copy the parameter validation errors to the current working directory of the layer generation. Also includes fixes for the GCC build. This hasn't been updated in a while, so there are many changes. It should also include better validation for memory barriers. Also includes updated builds for SPIRV Tools and glslang. A few pull requests need to land before landing this in ANGLE. This second step re-enables Vulkan and includes the updated build. Includes a workaround for parameter_validation.h no longer being auto-generated, and the stale file clobbering the build. Also includes a fix for an incorrect memory barrier. Bug: angleproject:2237 Change-Id: Ic1a3ad7458bb743d7279a1af9334693ab6cb59d6 Reviewed-on: https://chromium-review.googlesource.com/845859Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent 007530ea
...@@ -37,7 +37,7 @@ deps = { ...@@ -37,7 +37,7 @@ deps = {
Var('android_git') + '/platform/external/shaderc/spirv-tools' + '@' + '9996173f363729b3a97309685dbd4d78547a63a7', Var('android_git') + '/platform/external/shaderc/spirv-tools' + '@' + '9996173f363729b3a97309685dbd4d78547a63a7',
'third_party/vulkan-validation-layers/src': 'third_party/vulkan-validation-layers/src':
Var('android_git') + '/platform/external/vulkan-validation-layers' + '@' + 'b699ba8cfbb6c97dbc590bf15a84fcb4b41d35a6', Var('android_git') + '/platform/external/vulkan-validation-layers' + '@' + 'd5c8ed406ab2399a80e2847c03aa80b09b269b53',
'third_party/zlib': 'third_party/zlib':
Var('chromium_git') + '/chromium/src/third_party/zlib' + '@' + '24ab14872e8e068ba08cc31cc3d43bcc6d5cb832', Var('chromium_git') + '/chromium/src/third_party/zlib' + '@' + '24ab14872e8e068ba08cc31cc3d43bcc6d5cb832',
......
...@@ -25,7 +25,7 @@ vars = { ...@@ -25,7 +25,7 @@ vars = {
'spirv_tools_revision': '9996173f363729b3a97309685dbd4d78547a63a7', 'spirv_tools_revision': '9996173f363729b3a97309685dbd4d78547a63a7',
# Current revision of the Vulkan Validation Layers SDK. # Current revision of the Vulkan Validation Layers SDK.
'vulkan_revision': 'b699ba8cfbb6c97dbc590bf15a84fcb4b41d35a6', 'vulkan_revision': 'd5c8ed406ab2399a80e2847c03aa80b09b269b53',
} }
deps = { deps = {
......
...@@ -29,17 +29,13 @@ if (is_win) { ...@@ -29,17 +29,13 @@ if (is_win) {
angle_enable_d3d11 = true angle_enable_d3d11 = true
angle_enable_gl = true angle_enable_gl = true
angle_enable_gl_null = true angle_enable_gl_null = true
angle_enable_vulkan = true
# TODO(jmadill): Re-enable after roll.
# angle_enable_vulkan = true
import("//build/config/win/visual_studio_version.gni") import("//build/config/win/visual_studio_version.gni")
} else if (is_linux && use_x11 && !is_chromeos) { } else if (is_linux && use_x11 && !is_chromeos) {
angle_enable_gl = true angle_enable_gl = true
angle_enable_gl_null = true angle_enable_gl_null = true
angle_enable_vulkan = true
# TODO(jmadill): Re-enable after roll.
# angle_enable_vulkan = true
} else if (is_mac || ozone_platform_gbm) { } else if (is_mac || ozone_platform_gbm) {
angle_enable_gl = true angle_enable_gl = true
angle_enable_gl_null = true angle_enable_gl_null = true
......
...@@ -29,6 +29,11 @@ for json_fname in glob.glob(os.path.join(source_dir, "*.json")): ...@@ -29,6 +29,11 @@ for json_fname in glob.glob(os.path.join(source_dir, "*.json")):
data = json.load(infile) data = json.load(infile)
# update the path # update the path
if not 'layer' in data:
raise Exception("Could not find a layer key in " + json_fname)
# The standard validation layer has no library path.
if 'library_path' in data['layer']:
prev_name = os.path.basename(data['layer']['library_path']) prev_name = os.path.basename(data['layer']['library_path'])
data['layer']['library_path'] = prev_name data['layer']['library_path'] = prev_name
......
#!/usr/bin/python2
#
# Copyright 2017 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.
#
import sys
import os
if len(sys.argv) < 3:
print("Usage: " + sys.argv[0] + " <remove_file> <stamp_file>")
remove_file = sys.argv[1]
if os.path.isfile(remove_file):
os.remove(remove_file)
# touch a dummy file to keep a timestamp
with open(sys.argv[2], "w") as f:
f.write("blah")
f.close()
...@@ -211,7 +211,7 @@ vk::Error BufferVk::setDataImpl(ContextVk *contextVk, ...@@ -211,7 +211,7 @@ vk::Error BufferVk::setDataImpl(ContextVk *contextVk,
bufferBarrier.size = static_cast<VkDeviceSize>(size); bufferBarrier.size = static_cast<VkDeviceSize>(size);
commandBuffer->singleBufferBarrier(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, commandBuffer->singleBufferBarrier(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, 0, bufferBarrier); VK_PIPELINE_STAGE_TRANSFER_BIT, 0, bufferBarrier);
VkBufferCopy copyRegion = {offset, 0, size}; VkBufferCopy copyRegion = {offset, 0, size};
commandBuffer->copyBuffer(stagingBuffer.getBuffer(), mBuffer, 1, &copyRegion); commandBuffer->copyBuffer(stagingBuffer.getBuffer(), mBuffer, 1, &copyRegion);
......
...@@ -31,6 +31,7 @@ if (is_win) { ...@@ -31,6 +31,7 @@ if (is_win) {
vulkan_gen_dir = "$target_gen_dir/angle/vulkan" vulkan_gen_dir = "$target_gen_dir/angle/vulkan"
raw_vulkan_gen_dir = rebase_path(vulkan_gen_dir, root_build_dir) raw_vulkan_gen_dir = rebase_path(vulkan_gen_dir, root_build_dir)
raw_spirv_tools_dir = rebase_path(spirv_tools_dir, root_build_dir)
# Vulkan helper scripts # Vulkan helper scripts
# --------------------- # ---------------------
...@@ -47,6 +48,11 @@ helper_script_and_deps = [ ...@@ -47,6 +48,11 @@ helper_script_and_deps = [
"helper_file_generator.py", "helper_file_generator.py",
], ],
[ [
"vulkan_gen_extension_helper",
"vk_extension_helper.h",
"helper_file_generator.py",
],
[
"vulkan_gen_layer_dispatch_table_h", "vulkan_gen_layer_dispatch_table_h",
"vk_layer_dispatch_table.h", "vk_layer_dispatch_table.h",
"loader_extension_generator.py", "loader_extension_generator.py",
...@@ -62,6 +68,11 @@ helper_script_and_deps = [ ...@@ -62,6 +68,11 @@ helper_script_and_deps = [
"loader_extension_generator.py", "loader_extension_generator.py",
], ],
[ [
"vulkan_gen_object_types_h",
"vk_object_types.h",
"helper_file_generator.py",
],
[
"vulkan_gen_safe_struct_cpp", "vulkan_gen_safe_struct_cpp",
"vk_safe_struct.cpp", "vk_safe_struct.cpp",
"helper_file_generator.py", "helper_file_generator.py",
...@@ -87,8 +98,18 @@ helper_script_and_deps = [ ...@@ -87,8 +98,18 @@ helper_script_and_deps = [
"threading_generator.py", "threading_generator.py",
], ],
[ [
"vulkan_gen_parameter_validation_helper", "vulkan_gen_typemap_helper",
"parameter_validation.h", "vk_typemap_helper.h",
"helper_file_generator.py",
],
[
"vulkan_gen_object_tracker_cpp",
"object_tracker.cpp",
"object_tracker_generator.py",
],
[
"vulkan_gen_parameter_validation_cpp",
"parameter_validation.cpp",
"parameter_validation_generator.py", "parameter_validation_generator.py",
], ],
[ [
...@@ -124,6 +145,23 @@ foreach(script_and_dep, helper_script_and_deps) { ...@@ -124,6 +145,23 @@ foreach(script_and_dep, helper_script_and_deps) {
} }
} }
# This could be generalized to a foreach if other revisions are added.
action("spirv_tools_external_revision_generate") {
script = "$vulkan_layers_dir/scripts/external_revision_generator.py"
inputs = [
"$spirv_tools_dir/.git/HEAD",
"$spirv_tools_dir/.git/index",
]
outputs = [
"$vulkan_gen_dir/spirv_tools_commit_id.h",
]
args = [
"$raw_spirv_tools_dir",
"SPIRV_TOOLS_COMMIT_ID",
"$raw_vulkan_gen_dir/spirv_tools_commit_id.h",
]
}
config("vulkan_generate_helper_files_config") { config("vulkan_generate_helper_files_config") {
include_dirs = [ include_dirs = [
vulkan_gen_dir, vulkan_gen_dir,
...@@ -132,7 +170,9 @@ config("vulkan_generate_helper_files_config") { ...@@ -132,7 +170,9 @@ config("vulkan_generate_helper_files_config") {
} }
group("vulkan_generate_helper_files") { group("vulkan_generate_helper_files") {
public_deps = [] public_deps = [
":spirv_tools_external_revision_generate",
]
public_configs = [ ":vulkan_generate_helper_files_config" ] public_configs = [ ":vulkan_generate_helper_files_config" ]
foreach(script_and_dep, helper_script_and_deps) { foreach(script_and_dep, helper_script_and_deps) {
target_name = script_and_dep[0] target_name = script_and_dep[0]
...@@ -212,6 +252,9 @@ static_library("vulkan_loader") { ...@@ -212,6 +252,9 @@ static_library("vulkan_loader") {
"$vulkan_layers_dir/loader/murmurhash.h", "$vulkan_layers_dir/loader/murmurhash.h",
"$vulkan_layers_dir/loader/phys_dev_ext.c", "$vulkan_layers_dir/loader/phys_dev_ext.c",
"$vulkan_layers_dir/loader/trampoline.c", "$vulkan_layers_dir/loader/trampoline.c",
# TODO(jmadill): Use assembler where available.
"$vulkan_layers_dir/loader/unknown_ext_chain.c",
"$vulkan_layers_dir/loader/vk_loader_platform.h", "$vulkan_layers_dir/loader/vk_loader_platform.h",
"$vulkan_layers_dir/loader/wsi.c", "$vulkan_layers_dir/loader/wsi.c",
"$vulkan_layers_dir/loader/wsi.h", "$vulkan_layers_dir/loader/wsi.h",
...@@ -256,43 +299,77 @@ raw_spirv_source_dir = rebase_path(spirv_source_dir, root_build_dir) ...@@ -256,43 +299,77 @@ raw_spirv_source_dir = rebase_path(spirv_source_dir, root_build_dir)
raw_spirv_include_dir = rebase_path(spirv_include_dir, root_build_dir) raw_spirv_include_dir = rebase_path(spirv_include_dir, root_build_dir)
raw_spirv_headers_dir = rebase_path(spirv_headers_dir, root_build_dir) raw_spirv_headers_dir = rebase_path(spirv_headers_dir, root_build_dir)
action("spirv_tools_gen_tables_1_0") { grammar_processing_script = "$spirv_tools_dir/utils/generate_grammar_tables.py"
script = "$spirv_tools_dir/utils/generate_grammar_tables.py"
action("spirv_tools_gen_enum_string_mapping") {
script = grammar_processing_script
sources = [
"$spirv_include_dir/1.2/spirv.core.grammar.json",
]
outputs = [
"$vulkan_gen_dir/extension_enum.inc",
"$vulkan_gen_dir/enum_string_mapping.inc",
]
args = [
"--spirv-core-grammar=$raw_spirv_include_dir/1.2/spirv.core.grammar.json",
"--extension-enum-output=$raw_vulkan_gen_dir/extension_enum.inc",
"--enum-string-mapping-output=$raw_vulkan_gen_dir/enum_string_mapping.inc",
]
}
spvtools_core_tables = [
"1.0",
"1.1",
"1.2",
]
foreach(version, spvtools_core_tables) {
action("spirv_tools_gen_core_tables_" + version) {
script = grammar_processing_script
sources = [
"$spirv_include_dir/$version/spirv.core.grammar.json",
]
outputs = [
"$vulkan_gen_dir/core.insts-$version.inc",
"$vulkan_gen_dir/operand.kinds-$version.inc",
]
args = [
"--spirv-core-grammar=$raw_spirv_include_dir/$version/spirv.core.grammar.json",
"--core-insts-output=$raw_vulkan_gen_dir/core.insts-$version.inc",
"--operand-kinds-output=$raw_vulkan_gen_dir/operand.kinds-$version.inc",
]
}
}
action("spirv_tools_gen_glsl_tables") {
script = grammar_processing_script
sources = [ sources = [
"$spirv_include_dir/1.0/extinst.glsl.std.450.grammar.json", "$spirv_include_dir/1.0/extinst.glsl.std.450.grammar.json",
"$spirv_include_dir/1.0/spirv.core.grammar.json", "$spirv_include_dir/1.0/spirv.core.grammar.json",
"$spirv_source_dir/extinst-1.0.opencl.std.grammar.json",
] ]
outputs = [ outputs = [
"$vulkan_gen_dir/core.insts-1.0.inc",
"$vulkan_gen_dir/glsl.std.450.insts-1.0.inc", "$vulkan_gen_dir/glsl.std.450.insts-1.0.inc",
"$vulkan_gen_dir/opencl.std.insts-1.0.inc",
"$vulkan_gen_dir/operand.kinds-1.0.inc",
] ]
args = [ args = [
"--spirv-core-grammar=$raw_spirv_include_dir/1.0/spirv.core.grammar.json", "--spirv-core-grammar=$raw_spirv_include_dir/1.0/spirv.core.grammar.json",
"--extinst-glsl-grammar=$raw_spirv_include_dir/1.0/extinst.glsl.std.450.grammar.json", "--extinst-glsl-grammar=$raw_spirv_include_dir/1.0/extinst.glsl.std.450.grammar.json",
"--extinst-opencl-grammar=$raw_spirv_source_dir/extinst-1.0.opencl.std.grammar.json",
"--core-insts-output=$raw_vulkan_gen_dir/core.insts-1.0.inc",
"--glsl-insts-output=$raw_vulkan_gen_dir/glsl.std.450.insts-1.0.inc", "--glsl-insts-output=$raw_vulkan_gen_dir/glsl.std.450.insts-1.0.inc",
"--opencl-insts-output=$raw_vulkan_gen_dir/opencl.std.insts-1.0.inc",
"--operand-kinds-output=$raw_vulkan_gen_dir/operand.kinds-1.0.inc",
] ]
} }
action("spirv_tools_gen_tables_1_1") { action("spirv_tools_gen_opencl_tables") {
script = "$spirv_tools_dir/utils/generate_grammar_tables.py" script = grammar_processing_script
sources = [ sources = [
"$spirv_include_dir/1.1/spirv.core.grammar.json", "$spirv_include_dir/1.0/extinst.opencl.std.100.grammar.json",
"$spirv_include_dir/1.0/spirv.core.grammar.json",
] ]
outputs = [ outputs = [
"$vulkan_gen_dir/core.insts-1.1.inc", "$vulkan_gen_dir/opencl.std.insts-1.0.inc",
"$vulkan_gen_dir/operand.kinds-1.1.inc",
] ]
args = [ args = [
"--spirv-core-grammar=$raw_spirv_include_dir/1.1/spirv.core.grammar.json", "--spirv-core-grammar=$raw_spirv_include_dir/1.0/spirv.core.grammar.json",
"--core-insts-output=$raw_vulkan_gen_dir/core.insts-1.1.inc", "--extinst-opencl-grammar=$raw_spirv_include_dir/1.0/extinst.opencl.std.100.grammar.json",
"--operand-kinds-output=$raw_vulkan_gen_dir/operand.kinds-1.1.inc", "--opencl-insts-output=$raw_vulkan_gen_dir/opencl.std.insts-1.0.inc",
] ]
} }
...@@ -310,6 +387,35 @@ action("spirv_tools_gen_generators_inc") { ...@@ -310,6 +387,35 @@ action("spirv_tools_gen_generators_inc") {
] ]
} }
spvtools_vendor_tables = [
"spv-amd-shader-explicit-vertex-parameter",
"spv-amd-shader-trinary-minmax",
"spv-amd-gcn-shader",
"spv-amd-shader-ballot",
]
foreach(target_name, spvtools_vendor_tables) {
insts_file = "$target_name.insts.inc"
grammar_file = "extinst.$target_name.grammar.json"
action(target_name) {
script = grammar_processing_script
sources = [
"$spirv_source_dir/$grammar_file",
]
outputs = [
"$vulkan_gen_dir/$insts_file",
]
args = [
"--extinst-vendor-grammar=$raw_spirv_source_dir/$grammar_file",
"--vendor-insts-output=$raw_vulkan_gen_dir/$insts_file",
]
}
}
config("spirv_tools_config") { config("spirv_tools_config") {
include_dirs = [ "$spirv_tools_dir/include" ] include_dirs = [ "$spirv_tools_dir/include" ]
if (is_win) { if (is_win) {
...@@ -326,9 +432,13 @@ config("spirv_tools_config") { ...@@ -326,9 +432,13 @@ config("spirv_tools_config") {
static_library("spirv_tools") { static_library("spirv_tools") {
deps = [ deps = [
":spirv_tools_gen_core_tables_1.0",
":spirv_tools_gen_core_tables_1.1",
":spirv_tools_gen_core_tables_1.2",
":spirv_tools_gen_enum_string_mapping",
":spirv_tools_gen_generators_inc", ":spirv_tools_gen_generators_inc",
":spirv_tools_gen_tables_1_0", ":spirv_tools_gen_glsl_tables",
":spirv_tools_gen_tables_1_1", ":spirv_tools_gen_opencl_tables",
] ]
include_dirs = [ include_dirs = [
vulkan_gen_dir, vulkan_gen_dir,
...@@ -363,12 +473,17 @@ static_library("spirv_tools") { ...@@ -363,12 +473,17 @@ static_library("spirv_tools") {
# TODO(jmadill): Determine if this is ever needed. # TODO(jmadill): Determine if this is ever needed.
#"$spirv_tools_dir/source/software_version.cpp", #"$spirv_tools_dir/source/software_version.cpp",
"$spirv_tools_dir/source/enum_string_mapping.cpp",
"$spirv_tools_dir/source/extensions.cpp",
"$spirv_tools_dir/source/extensions.h",
"$spirv_tools_dir/source/spirv_constant.h", "$spirv_tools_dir/source/spirv_constant.h",
"$spirv_tools_dir/source/spirv_definition.h", "$spirv_tools_dir/source/spirv_definition.h",
"$spirv_tools_dir/source/spirv_endian.cpp", "$spirv_tools_dir/source/spirv_endian.cpp",
"$spirv_tools_dir/source/spirv_endian.h", "$spirv_tools_dir/source/spirv_endian.h",
"$spirv_tools_dir/source/spirv_target_env.cpp", "$spirv_tools_dir/source/spirv_target_env.cpp",
"$spirv_tools_dir/source/spirv_target_env.h", "$spirv_tools_dir/source/spirv_target_env.h",
"$spirv_tools_dir/source/spirv_validator_options.cpp",
"$spirv_tools_dir/source/spirv_validator_options.h",
"$spirv_tools_dir/source/table.cpp", "$spirv_tools_dir/source/table.cpp",
"$spirv_tools_dir/source/table.h", "$spirv_tools_dir/source/table.h",
"$spirv_tools_dir/source/text.cpp", "$spirv_tools_dir/source/text.cpp",
...@@ -379,6 +494,8 @@ static_library("spirv_tools") { ...@@ -379,6 +494,8 @@ static_library("spirv_tools") {
"$spirv_tools_dir/source/util/hex_float.h", "$spirv_tools_dir/source/util/hex_float.h",
"$spirv_tools_dir/source/util/parse_number.cpp", "$spirv_tools_dir/source/util/parse_number.cpp",
"$spirv_tools_dir/source/util/parse_number.h", "$spirv_tools_dir/source/util/parse_number.h",
"$spirv_tools_dir/source/util/string_utils.cpp",
"$spirv_tools_dir/source/util/string_utils.h",
"$spirv_tools_dir/source/val/basic_block.cpp", "$spirv_tools_dir/source/val/basic_block.cpp",
"$spirv_tools_dir/source/val/construct.cpp", "$spirv_tools_dir/source/val/construct.cpp",
"$spirv_tools_dir/source/val/function.cpp", "$spirv_tools_dir/source/val/function.cpp",
...@@ -386,13 +503,26 @@ static_library("spirv_tools") { ...@@ -386,13 +503,26 @@ static_library("spirv_tools") {
"$spirv_tools_dir/source/val/validation_state.cpp", "$spirv_tools_dir/source/val/validation_state.cpp",
"$spirv_tools_dir/source/validate.cpp", "$spirv_tools_dir/source/validate.cpp",
"$spirv_tools_dir/source/validate.h", "$spirv_tools_dir/source/validate.h",
"$spirv_tools_dir/source/validate_arithmetics.cpp",
"$spirv_tools_dir/source/validate_bitwise.cpp",
"$spirv_tools_dir/source/validate_capability.cpp",
"$spirv_tools_dir/source/validate_cfg.cpp", "$spirv_tools_dir/source/validate_cfg.cpp",
"$spirv_tools_dir/source/validate_conversion.cpp",
"$spirv_tools_dir/source/validate_datarules.cpp", "$spirv_tools_dir/source/validate_datarules.cpp",
"$spirv_tools_dir/source/validate_decorations.cpp",
"$spirv_tools_dir/source/validate_derivatives.cpp",
"$spirv_tools_dir/source/validate_id.cpp", "$spirv_tools_dir/source/validate_id.cpp",
"$spirv_tools_dir/source/validate_image.cpp",
"$spirv_tools_dir/source/validate_instruction.cpp", "$spirv_tools_dir/source/validate_instruction.cpp",
"$spirv_tools_dir/source/validate_layout.cpp", "$spirv_tools_dir/source/validate_layout.cpp",
"$spirv_tools_dir/source/validate_logicals.cpp",
"$spirv_tools_dir/source/validate_type_unique.cpp",
] ]
public_configs = [ ":spirv_tools_config" ] public_configs = [ ":spirv_tools_config" ]
foreach(target_name, spvtools_vendor_tables) {
deps += [ ":$target_name" ]
}
} }
# glslang # glslang
...@@ -488,9 +618,7 @@ static_library("glslang") { ...@@ -488,9 +618,7 @@ static_library("glslang") {
"$glslang_dir/glslang/MachineIndependent/preprocessor/PpAtom.cpp", "$glslang_dir/glslang/MachineIndependent/preprocessor/PpAtom.cpp",
"$glslang_dir/glslang/MachineIndependent/preprocessor/PpContext.cpp", "$glslang_dir/glslang/MachineIndependent/preprocessor/PpContext.cpp",
"$glslang_dir/glslang/MachineIndependent/preprocessor/PpContext.h", "$glslang_dir/glslang/MachineIndependent/preprocessor/PpContext.h",
"$glslang_dir/glslang/MachineIndependent/preprocessor/PpMemory.cpp",
"$glslang_dir/glslang/MachineIndependent/preprocessor/PpScanner.cpp", "$glslang_dir/glslang/MachineIndependent/preprocessor/PpScanner.cpp",
"$glslang_dir/glslang/MachineIndependent/preprocessor/PpSymbols.cpp",
"$glslang_dir/glslang/MachineIndependent/preprocessor/PpTokens.cpp", "$glslang_dir/glslang/MachineIndependent/preprocessor/PpTokens.cpp",
"$glslang_dir/glslang/MachineIndependent/preprocessor/PpTokens.h", "$glslang_dir/glslang/MachineIndependent/preprocessor/PpTokens.h",
"$glslang_dir/glslang/MachineIndependent/propagateNoContraction.cpp", "$glslang_dir/glslang/MachineIndependent/propagateNoContraction.cpp",
...@@ -499,21 +627,6 @@ static_library("glslang") { ...@@ -499,21 +627,6 @@ static_library("glslang") {
"$glslang_dir/glslang/MachineIndependent/reflection.h", "$glslang_dir/glslang/MachineIndependent/reflection.h",
"$glslang_dir/glslang/OSDependent/osinclude.h", "$glslang_dir/glslang/OSDependent/osinclude.h",
"$glslang_dir/glslang/Public/ShaderLang.h", "$glslang_dir/glslang/Public/ShaderLang.h",
"$glslang_dir/hlsl/hlslAttributes.cpp",
"$glslang_dir/hlsl/hlslAttributes.h",
"$glslang_dir/hlsl/hlslGrammar.cpp",
"$glslang_dir/hlsl/hlslGrammar.h",
"$glslang_dir/hlsl/hlslOpMap.cpp",
"$glslang_dir/hlsl/hlslOpMap.h",
"$glslang_dir/hlsl/hlslParseHelper.cpp",
"$glslang_dir/hlsl/hlslParseHelper.h",
"$glslang_dir/hlsl/hlslParseables.cpp",
"$glslang_dir/hlsl/hlslParseables.h",
"$glslang_dir/hlsl/hlslScanContext.cpp",
"$glslang_dir/hlsl/hlslScanContext.h",
"$glslang_dir/hlsl/hlslTokenStream.cpp",
"$glslang_dir/hlsl/hlslTokenStream.h",
"$glslang_dir/hlsl/hlslTokens.h",
] ]
public_configs = [ ":glslang_config" ] public_configs = [ ":glslang_config" ]
configs += [ ":glslang_internal_config" ] configs += [ ":glslang_internal_config" ]
...@@ -561,6 +674,8 @@ source_set("vulkan_layer_table") { ...@@ -561,6 +674,8 @@ source_set("vulkan_layer_table") {
} }
core_validation_sources = [ core_validation_sources = [
# This file is manually included in the layer
# "$vulkan_gen_dir/vk_safe_struct.cpp",
"$vulkan_gen_dir/vk_safe_struct.h", "$vulkan_gen_dir/vk_safe_struct.h",
"$vulkan_layers_dir/layers/buffer_validation.cpp", "$vulkan_layers_dir/layers/buffer_validation.cpp",
"$vulkan_layers_dir/layers/buffer_validation.h", "$vulkan_layers_dir/layers/buffer_validation.h",
...@@ -568,24 +683,30 @@ core_validation_sources = [ ...@@ -568,24 +683,30 @@ core_validation_sources = [
"$vulkan_layers_dir/layers/core_validation.h", "$vulkan_layers_dir/layers/core_validation.h",
"$vulkan_layers_dir/layers/descriptor_sets.cpp", "$vulkan_layers_dir/layers/descriptor_sets.cpp",
"$vulkan_layers_dir/layers/descriptor_sets.h", "$vulkan_layers_dir/layers/descriptor_sets.h",
"$vulkan_layers_dir/layers/shader_validation.cpp",
"$vulkan_layers_dir/layers/shader_validation.h",
"$vulkan_layers_dir/layers/xxhash.c",
"$vulkan_layers_dir/layers/xxhash.h",
] ]
object_tracker_sources = [ object_tracker_sources = [
"$vulkan_layers_dir/layers/object_tracker.cpp", "$vulkan_gen_dir/object_tracker.cpp",
"$vulkan_layers_dir/layers/object_tracker.h", "$vulkan_layers_dir/layers/object_tracker.h",
"$vulkan_layers_dir/layers/object_tracker_utils.cpp",
] ]
parameter_validation_sources = [ parameter_validation_sources = [
"$vulkan_gen_dir/parameter_validation.h", "$vulkan_gen_dir/parameter_validation.cpp",
"$vulkan_layers_dir/layers/parameter_validation.cpp", "$vulkan_layers_dir/layers/parameter_validation.h",
] "$vulkan_layers_dir/layers/parameter_validation_utils.cpp",
swapchain_sources = [
"$vulkan_layers_dir/layers/swapchain.cpp",
"$vulkan_layers_dir/layers/swapchain.h",
] ]
threading_sources = [ threading_sources = [
"$vulkan_gen_dir/thread_check.h", "$vulkan_gen_dir/thread_check.h",
"$vulkan_layers_dir/layers/threading.cpp", "$vulkan_layers_dir/layers/threading.cpp",
"$vulkan_layers_dir/layers/threading.h", "$vulkan_layers_dir/layers/threading.h",
] ]
unique_objects_sources = [ unique_objects_sources = [
"$vulkan_gen_dir/unique_objects_wrappers.h", "$vulkan_gen_dir/unique_objects_wrappers.h",
...@@ -605,17 +726,12 @@ layers = [ ...@@ -605,17 +726,12 @@ layers = [
[ [
"object_tracker", "object_tracker",
object_tracker_sources, object_tracker_sources,
"", ":vulkan_gen_object_tracker_cpp",
], ],
[ [
"parameter_validation", "parameter_validation",
parameter_validation_sources, parameter_validation_sources,
":vulkan_gen_parameter_validation_helper", ":vulkan_gen_parameter_validation",
],
[
"swapchain",
swapchain_sources,
"",
], ],
[ [
"threading", "threading",
...@@ -633,7 +749,6 @@ vulkan_gen_json_files_outputs = [ ...@@ -633,7 +749,6 @@ vulkan_gen_json_files_outputs = [
"$root_out_dir/$data_dir/VkLayer_core_validation.json", "$root_out_dir/$data_dir/VkLayer_core_validation.json",
"$root_out_dir/$data_dir/VkLayer_object_tracker.json", "$root_out_dir/$data_dir/VkLayer_object_tracker.json",
"$root_out_dir/$data_dir/VkLayer_parameter_validation.json", "$root_out_dir/$data_dir/VkLayer_parameter_validation.json",
"$root_out_dir/$data_dir/VkLayer_swapchain.json",
"$root_out_dir/$data_dir/VkLayer_threading.json", "$root_out_dir/$data_dir/VkLayer_threading.json",
"$root_out_dir/$data_dir/VkLayer_unique_objects.json", "$root_out_dir/$data_dir/VkLayer_unique_objects.json",
] ]
...@@ -645,7 +760,6 @@ action("vulkan_gen_json_files") { ...@@ -645,7 +760,6 @@ action("vulkan_gen_json_files") {
"$vulkan_layers_dir/layers/windows/VkLayer_core_validation.json", "$vulkan_layers_dir/layers/windows/VkLayer_core_validation.json",
"$vulkan_layers_dir/layers/windows/VkLayer_object_tracker.json", "$vulkan_layers_dir/layers/windows/VkLayer_object_tracker.json",
"$vulkan_layers_dir/layers/windows/VkLayer_parameter_validation.json", "$vulkan_layers_dir/layers/windows/VkLayer_parameter_validation.json",
"$vulkan_layers_dir/layers/windows/VkLayer_swapchain.json",
"$vulkan_layers_dir/layers/windows/VkLayer_threading.json", "$vulkan_layers_dir/layers/windows/VkLayer_threading.json",
"$vulkan_layers_dir/layers/windows/VkLayer_unique_objects.json", "$vulkan_layers_dir/layers/windows/VkLayer_unique_objects.json",
] ]
...@@ -656,7 +770,6 @@ action("vulkan_gen_json_files") { ...@@ -656,7 +770,6 @@ action("vulkan_gen_json_files") {
"$vulkan_layers_dir/layers/linux/VkLayer_core_validation.json", "$vulkan_layers_dir/layers/linux/VkLayer_core_validation.json",
"$vulkan_layers_dir/layers/linux/VkLayer_object_tracker.json", "$vulkan_layers_dir/layers/linux/VkLayer_object_tracker.json",
"$vulkan_layers_dir/layers/linux/VkLayer_parameter_validation.json", "$vulkan_layers_dir/layers/linux/VkLayer_parameter_validation.json",
"$vulkan_layers_dir/layers/linux/VkLayer_swapchain.json",
"$vulkan_layers_dir/layers/linux/VkLayer_threading.json", "$vulkan_layers_dir/layers/linux/VkLayer_threading.json",
"$vulkan_layers_dir/layers/linux/VkLayer_unique_objects.json", "$vulkan_layers_dir/layers/linux/VkLayer_unique_objects.json",
] ]
...@@ -671,6 +784,8 @@ action("vulkan_gen_json_files") { ...@@ -671,6 +784,8 @@ action("vulkan_gen_json_files") {
source_set("vulkan_layer_utils") { source_set("vulkan_layer_utils") {
sources = [ sources = [
"$vulkan_layers_dir/layers/vk_format_utils.cpp",
"$vulkan_layers_dir/layers/vk_format_utils.h",
"$vulkan_layers_dir/layers/vk_layer_config.cpp", "$vulkan_layers_dir/layers/vk_layer_config.cpp",
"$vulkan_layers_dir/layers/vk_layer_config.h", "$vulkan_layers_dir/layers/vk_layer_config.h",
"$vulkan_layers_dir/layers/vk_layer_extension_utils.cpp", "$vulkan_layers_dir/layers/vk_layer_extension_utils.cpp",
...@@ -700,6 +815,38 @@ source_set("vulkan_core_validation_glslang") { ...@@ -700,6 +815,38 @@ source_set("vulkan_core_validation_glslang") {
public_configs = [ ":vulkan_core_validation_config" ] public_configs = [ ":vulkan_core_validation_config" ]
} }
config("vulkan_parameter_validation_config") {
if (is_clang) {
cflags_cc = [ "-Wno-unused-const-variable" ]
}
}
# This special action is needed to remove the generated param header.
# Otherwise the param gen cpp file will pick up the old file 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
deps = [
":vulkan_gen_parameter_validation_cpp",
]
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",
]
}
source_set("vulkan_gen_parameter_validation") {
deps = [
":vulkan_clean_parameter_gen_header",
":vulkan_gen_parameter_validation_cpp",
]
public_configs = [ ":vulkan_parameter_validation_config" ]
}
foreach(layer_info, layers) { foreach(layer_info, layers) {
name = layer_info[0] name = layer_info[0]
shared_library("VkLayer_$name") { shared_library("VkLayer_$name") {
......
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