зеркало из https://github.com/AvaloniaUI/angle.git
Roll vulkan-validation-layers. (2/2)
bcb80d06bb..f47c534fee
This CL re-enables Vulkan with the new build files.
In particular, this roll contains a fix for a vs2017 signed/unsigned
mismatch warning as error.
BUG=chromium:683729
Change-Id: Id38e10f97702cac5a51ee194c81972861f15db21
Reviewed-on: https://chromium-review.googlesource.com/457278
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
This commit is contained in:
Родитель
aa086d6802
Коммит
2feaa5e0ac
|
@ -15,8 +15,7 @@ if (is_win) {
|
|||
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) {
|
||||
|
|
|
@ -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',
|
||||
{
|
||||
|
|
|
@ -29,7 +29,6 @@ data_dir = "angledata"
|
|||
|
||||
vulkan_gen_json_files_outputs = [
|
||||
"$root_out_dir/$data_dir/VkLayer_core_validation.json",
|
||||
"$root_out_dir/$data_dir/VkLayer_image.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_swapchain.json",
|
||||
|
@ -37,30 +36,6 @@ vulkan_gen_json_files_outputs = [
|
|||
"$root_out_dir/$data_dir/VkLayer_unique_objects.json",
|
||||
]
|
||||
|
||||
# Vulkan loader
|
||||
# -------------
|
||||
|
||||
vulkan_gen_dir = "$target_gen_dir/angle/vulkan"
|
||||
raw_vulkan_gen_dir = rebase_path(vulkan_gen_dir)
|
||||
|
||||
config("vulkan_loader_config") {
|
||||
include_dirs = rebase_path(vulkan_gypi.vulkan_loader_include_dirs, ".", "src")
|
||||
defines = [
|
||||
"LAYERS_SOURCE_PATH=\"$data_dir\"",
|
||||
"DEFAULT_VK_LAYERS_PATH=\".\"",
|
||||
"API_NAME=\"Vulkan\"",
|
||||
]
|
||||
if (is_win) {
|
||||
defines += [ "VK_USE_PLATFORM_WIN32_KHR" ]
|
||||
}
|
||||
}
|
||||
|
||||
config("vulkan_loader_internal_config") {
|
||||
if (is_clang || !is_win) {
|
||||
cflags = [ "-Wno-unused-function" ]
|
||||
}
|
||||
}
|
||||
|
||||
vulkan_undefine_configs = []
|
||||
if (is_win) {
|
||||
vulkan_undefine_configs += [
|
||||
|
@ -69,42 +44,38 @@ if (is_win) {
|
|||
]
|
||||
}
|
||||
|
||||
static_library("vulkan_loader") {
|
||||
sources = rebase_path(vulkan_gypi.vulkan_loader_sources, ".", "src")
|
||||
if (is_win) {
|
||||
sources += rebase_path(vulkan_gypi.vulkan_loader_win_sources, ".", "src")
|
||||
if (!is_clang) {
|
||||
cflags = vulkan_gypi.vulkan_loader_cflags_win
|
||||
}
|
||||
}
|
||||
configs += [ ":vulkan_loader_internal_config" ]
|
||||
public_configs = [ ":vulkan_loader_config" ]
|
||||
configs -= vulkan_undefine_configs
|
||||
}
|
||||
vulkan_gen_dir = "$target_gen_dir/angle/vulkan"
|
||||
raw_vulkan_gen_dir = rebase_path(vulkan_gen_dir)
|
||||
|
||||
# Vulkan layer helpers
|
||||
# --------------------
|
||||
|
||||
source_set("vulkan_layer_utils") {
|
||||
sources = rebase_path(vulkan_gypi.vulkan_layer_utils_sources, ".", "src")
|
||||
public_configs = [
|
||||
":vulkan_loader_config",
|
||||
":vulkan_loader_internal_config",
|
||||
]
|
||||
configs -= vulkan_undefine_configs
|
||||
}
|
||||
# Vulkan helper scripts
|
||||
# ---------------------
|
||||
|
||||
helper_script_and_deps = [
|
||||
[
|
||||
"vulkan_gen_dispatch_table_helper",
|
||||
"vulkan_gen_dispatch_table_helper_h",
|
||||
"vk_dispatch_table_helper.h",
|
||||
"dispatch_table_generator.py",
|
||||
"dispatch_table_helper_generator.py",
|
||||
],
|
||||
[
|
||||
"vulkan_gen_enum_string_helper",
|
||||
"vk_enum_string_helper.h",
|
||||
"helper_file_generator.py",
|
||||
],
|
||||
[
|
||||
"vulkan_gen_layer_dispatch_table_h",
|
||||
"vk_layer_dispatch_table.h",
|
||||
"loader_extension_generator.py",
|
||||
],
|
||||
[
|
||||
"vulkan_gen_loader_extensions_c",
|
||||
"vk_loader_extensions.c",
|
||||
"loader_extension_generator.py",
|
||||
],
|
||||
[
|
||||
"vulkan_gen_loader_extensions_h",
|
||||
"vk_loader_extensions.h",
|
||||
"loader_extension_generator.py",
|
||||
],
|
||||
[
|
||||
"vulkan_gen_safe_struct_cpp",
|
||||
"vk_safe_struct.cpp",
|
||||
|
@ -168,53 +139,63 @@ foreach(script_and_dep, helper_script_and_deps) {
|
|||
}
|
||||
}
|
||||
|
||||
config("vulkan_layer_config") {
|
||||
config("vulkan_generate_helper_files_config") {
|
||||
include_dirs = [
|
||||
vulkan_gen_dir,
|
||||
"$vulkan_layers_dir/layers",
|
||||
"$vulkan_layers_dir/include",
|
||||
]
|
||||
}
|
||||
|
||||
source_set("vulkan_layer_table") {
|
||||
configs -= vulkan_undefine_configs
|
||||
public_deps = [
|
||||
":vulkan_layer_utils",
|
||||
]
|
||||
group("vulkan_generate_helper_files") {
|
||||
public_deps = []
|
||||
public_configs = [ ":vulkan_generate_helper_files_config" ]
|
||||
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",
|
||||
"$target_gen_dir/angle/vulkan/vk_enum_string_helper.h",
|
||||
"$vulkan_layers_dir/layers/vk_layer_table.cpp",
|
||||
"$vulkan_layers_dir/layers/vk_layer_table.h",
|
||||
]
|
||||
}
|
||||
|
||||
layer_names = [
|
||||
"core_validation",
|
||||
"image",
|
||||
"object_tracker",
|
||||
"swapchain",
|
||||
"threading",
|
||||
"unique_objects",
|
||||
"parameter_validation",
|
||||
]
|
||||
# Vulkan loader
|
||||
# -------------
|
||||
|
||||
action("vulkan_gen_json_files") {
|
||||
script = "$third_party_dir/angle/scripts/generate_vulkan_layers_json.py"
|
||||
sources =
|
||||
rebase_path(vulkan_gypi.vulkan_gen_json_files_sources_win, ".", "src")
|
||||
|
||||
# The layer JSON files are part of the necessary data deps.
|
||||
outputs = vulkan_gen_json_files_outputs
|
||||
data = vulkan_gen_json_files_outputs
|
||||
args = [
|
||||
"$raw_vulkan_layers_dir/layers/windows",
|
||||
rebase_path("$root_out_dir/$data_dir"),
|
||||
config("vulkan_loader_config") {
|
||||
include_dirs = rebase_path(vulkan_gypi.vulkan_loader_include_dirs, ".", "src")
|
||||
include_dirs += [ vulkan_gen_dir ]
|
||||
defines = [
|
||||
"LAYERS_SOURCE_PATH=\"$data_dir\"",
|
||||
"DEFAULT_VK_LAYERS_PATH=\".\"",
|
||||
"API_NAME=\"Vulkan\"",
|
||||
]
|
||||
if (is_win) {
|
||||
defines += [
|
||||
"VK_USE_PLATFORM_WIN32_KHR",
|
||||
"VK_USE_PLATFORM_WIN32_KHX",
|
||||
]
|
||||
cflags = [ "/wd4201" ]
|
||||
}
|
||||
}
|
||||
|
||||
config("vulkan_loader_internal_config") {
|
||||
defines = [ "VULKAN_NON_CMAKE_BUILD" ]
|
||||
if (is_clang || !is_win) {
|
||||
cflags = [ "-Wno-unused-function" ]
|
||||
}
|
||||
}
|
||||
|
||||
static_library("vulkan_loader") {
|
||||
sources = rebase_path(vulkan_gypi.vulkan_loader_sources, ".", "src")
|
||||
if (is_win) {
|
||||
sources += rebase_path(vulkan_gypi.vulkan_loader_win_sources, ".", "src")
|
||||
if (!is_clang) {
|
||||
cflags = vulkan_gypi.vulkan_loader_cflags_win
|
||||
}
|
||||
}
|
||||
deps = [
|
||||
":vulkan_generate_helper_files",
|
||||
]
|
||||
configs += [ ":vulkan_loader_internal_config" ]
|
||||
public_configs = [ ":vulkan_loader_config" ]
|
||||
configs -= vulkan_undefine_configs
|
||||
}
|
||||
|
||||
# SPIRV-tools
|
||||
|
@ -350,6 +331,80 @@ static_library("glslang") {
|
|||
# The validation layers
|
||||
# ---------------------
|
||||
|
||||
config("vulkan_layer_config") {
|
||||
include_dirs = [ "$vulkan_layers_dir/layers" ]
|
||||
}
|
||||
|
||||
source_set("vulkan_layer_table") {
|
||||
configs -= vulkan_undefine_configs
|
||||
public_deps = [
|
||||
":vulkan_generate_helper_files",
|
||||
]
|
||||
public_configs = [ ":vulkan_layer_config" ]
|
||||
sources = [
|
||||
"$target_gen_dir/angle/vulkan/vk_dispatch_table_helper.h",
|
||||
"$target_gen_dir/angle/vulkan/vk_enum_string_helper.h",
|
||||
"$vulkan_layers_dir/layers/vk_layer_table.cpp",
|
||||
"$vulkan_layers_dir/layers/vk_layer_table.h",
|
||||
]
|
||||
}
|
||||
|
||||
layers = [
|
||||
[
|
||||
"core_validation",
|
||||
vulkan_gypi.VkLayer_core_validation_sources,
|
||||
":vulkan_core_validation_glslang",
|
||||
],
|
||||
[
|
||||
"object_tracker",
|
||||
vulkan_gypi.VkLayer_object_tracker_sources,
|
||||
"",
|
||||
],
|
||||
[
|
||||
"unique_objects",
|
||||
vulkan_gypi.VkLayer_unique_objects_sources,
|
||||
":vulkan_gen_unique_objects_wrappers_helper",
|
||||
],
|
||||
[
|
||||
"parameter_validation",
|
||||
vulkan_gypi.VkLayer_parameter_validation_sources,
|
||||
":vulkan_gen_parameter_validation_helper",
|
||||
],
|
||||
[
|
||||
"swapchain",
|
||||
vulkan_gypi.VkLayer_swapchain_sources,
|
||||
"",
|
||||
],
|
||||
[
|
||||
"threading",
|
||||
vulkan_gypi.VkLayer_threading_sources,
|
||||
":vulkan_gen_thread_check_helper",
|
||||
],
|
||||
]
|
||||
|
||||
action("vulkan_gen_json_files") {
|
||||
script = "$third_party_dir/angle/scripts/generate_vulkan_layers_json.py"
|
||||
sources =
|
||||
rebase_path(vulkan_gypi.vulkan_gen_json_files_sources_win, ".", "src")
|
||||
|
||||
# The layer JSON files are part of the necessary data deps.
|
||||
outputs = vulkan_gen_json_files_outputs
|
||||
data = vulkan_gen_json_files_outputs
|
||||
args = [
|
||||
"$raw_vulkan_layers_dir/layers/windows",
|
||||
rebase_path("$root_out_dir/$data_dir"),
|
||||
]
|
||||
}
|
||||
|
||||
source_set("vulkan_layer_utils") {
|
||||
sources = rebase_path(vulkan_gypi.vulkan_layer_utils_sources, ".", "src")
|
||||
public_configs = [
|
||||
":vulkan_loader_config",
|
||||
":vulkan_loader_internal_config",
|
||||
]
|
||||
configs -= vulkan_undefine_configs
|
||||
}
|
||||
|
||||
config("vulkan_core_validation_config") {
|
||||
include_dirs = [ glslang_dir ]
|
||||
}
|
||||
|
@ -361,47 +416,20 @@ source_set("vulkan_core_validation_glslang") {
|
|||
public_configs = [ ":vulkan_core_validation_config" ]
|
||||
}
|
||||
|
||||
layer_indexes = [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
6,
|
||||
]
|
||||
|
||||
layer_sources = [
|
||||
vulkan_gypi.VkLayer_core_validation_sources,
|
||||
vulkan_gypi.VkLayer_image_sources,
|
||||
vulkan_gypi.VkLayer_swapchain_sources,
|
||||
vulkan_gypi.VkLayer_object_tracker_sources,
|
||||
vulkan_gypi.VkLayer_unique_objects_sources,
|
||||
vulkan_gypi.VkLayer_threading_sources,
|
||||
vulkan_gypi.VkLayer_parameter_validation_sources,
|
||||
]
|
||||
|
||||
layer_additional_deps = [
|
||||
[ ":vulkan_core_validation_glslang" ],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[ ":vulkan_gen_unique_objects_wrappers_helper" ],
|
||||
[ ":vulkan_gen_thread_check_helper" ],
|
||||
[ ":vulkan_gen_parameter_validation_helper" ],
|
||||
]
|
||||
|
||||
foreach(index, layer_indexes) {
|
||||
layer = layer_names[index]
|
||||
shared_library("VkLayer_$layer") {
|
||||
foreach(layer_info, layers) {
|
||||
name = layer_info[0]
|
||||
shared_library("VkLayer_$name") {
|
||||
configs -= vulkan_undefine_configs
|
||||
deps = [
|
||||
":vulkan_layer_table",
|
||||
":vulkan_layer_utils",
|
||||
]
|
||||
deps += layer_additional_deps[index]
|
||||
sources = rebase_path(layer_sources[index], ".", "src")
|
||||
if (layer_info[2] != "") {
|
||||
deps += [ layer_info[2] ]
|
||||
}
|
||||
sources = rebase_path(layer_info[1], ".", "src")
|
||||
if (is_win) {
|
||||
sources += [ "$vulkan_layers_dir/layers/VKLayer_$layer.def" ]
|
||||
sources += [ "$vulkan_layers_dir/layers/VKLayer_$name.def" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,14 +16,14 @@
|
|||
'<(vulkan_layers_path)/loader/debug_report.c',
|
||||
'<(vulkan_layers_path)/loader/debug_report.h',
|
||||
'<(vulkan_layers_path)/loader/dev_ext_trampoline.c',
|
||||
'<(vulkan_layers_path)/loader/extensions.c',
|
||||
'<(vulkan_layers_path)/loader/extensions.h',
|
||||
'<(vulkan_layers_path)/loader/extension_manual.c',
|
||||
'<(vulkan_layers_path)/loader/extension_manual.h',
|
||||
'<(vulkan_layers_path)/loader/gpa_helper.h',
|
||||
'<(vulkan_layers_path)/loader/loader.c',
|
||||
'<(vulkan_layers_path)/loader/loader.h',
|
||||
'<(vulkan_layers_path)/loader/murmurhash.c',
|
||||
'<(vulkan_layers_path)/loader/murmurhash.h',
|
||||
'<(vulkan_layers_path)/loader/table_ops.h',
|
||||
'<(vulkan_layers_path)/loader/phys_dev_ext.c',
|
||||
'<(vulkan_layers_path)/loader/trampoline.c',
|
||||
'<(vulkan_layers_path)/loader/vk_loader_platform.h',
|
||||
'<(vulkan_layers_path)/loader/wsi.c',
|
||||
|
@ -48,6 +48,7 @@
|
|||
'/wd4201', # Nonstandard extension used: nameless struct/union
|
||||
'/wd4214', # Nonstandard extension used: bit field types other than int
|
||||
'/wd4232', # Nonstandard extension used: address of dllimport is not static
|
||||
'/wd4305', # Type cast truncation
|
||||
'/wd4706', # Assignment within conditional expression
|
||||
'/wd4996', # Unsafe stdlib function
|
||||
],
|
||||
|
@ -247,16 +248,13 @@
|
|||
# This file is manually included in the layer
|
||||
# '<(angle_gen_path)/vulkan/vk_safe_struct.cpp',
|
||||
'<(angle_gen_path)/vulkan/vk_safe_struct.h',
|
||||
'<(vulkan_layers_path)/layers/buffer_validation.cpp',
|
||||
'<(vulkan_layers_path)/layers/buffer_validation.h',
|
||||
'<(vulkan_layers_path)/layers/core_validation.cpp',
|
||||
'<(vulkan_layers_path)/layers/core_validation.h',
|
||||
'<(vulkan_layers_path)/layers/descriptor_sets.cpp',
|
||||
'<(vulkan_layers_path)/layers/descriptor_sets.h',
|
||||
],
|
||||
'VkLayer_image_sources':
|
||||
[
|
||||
'<(vulkan_layers_path)/layers/image.cpp',
|
||||
'<(vulkan_layers_path)/layers/image.h',
|
||||
],
|
||||
'VkLayer_swapchain_sources':
|
||||
[
|
||||
'<(vulkan_layers_path)/layers/swapchain.cpp',
|
||||
|
@ -290,7 +288,6 @@
|
|||
'vulkan_gen_json_files_sources_win':
|
||||
[
|
||||
'<(vulkan_layers_path)/layers/windows/VkLayer_core_validation.json',
|
||||
'<(vulkan_layers_path)/layers/windows/VkLayer_image.json',
|
||||
'<(vulkan_layers_path)/layers/windows/VkLayer_object_tracker.json',
|
||||
'<(vulkan_layers_path)/layers/windows/VkLayer_parameter_validation.json',
|
||||
'<(vulkan_layers_path)/layers/windows/VkLayer_swapchain.json',
|
||||
|
@ -300,7 +297,6 @@
|
|||
'vulkan_gen_json_files_outputs':
|
||||
[
|
||||
'<(angle_gen_path)/vulkan/json/VkLayer_core_validation.json',
|
||||
'<(angle_gen_path)/vulkan/json/VkLayer_image.json',
|
||||
'<(angle_gen_path)/vulkan/json/VkLayer_object_tracker.json',
|
||||
'<(angle_gen_path)/vulkan/json/VkLayer_parameter_validation.json',
|
||||
'<(angle_gen_path)/vulkan/json/VkLayer_swapchain.json',
|
||||
|
@ -314,110 +310,6 @@
|
|||
{
|
||||
'targets':
|
||||
[
|
||||
{
|
||||
'target_name': 'vulkan_loader',
|
||||
'type': 'static_library',
|
||||
'sources':
|
||||
[
|
||||
'<@(vulkan_loader_sources)',
|
||||
],
|
||||
'include_dirs':
|
||||
[
|
||||
'<@(vulkan_loader_include_dirs)',
|
||||
'<(angle_gen_path)',
|
||||
],
|
||||
'defines':
|
||||
[
|
||||
'API_NAME="Vulkan"',
|
||||
],
|
||||
'msvs_settings':
|
||||
{
|
||||
'VCCLCompilerTool':
|
||||
{
|
||||
'AdditionalOptions':
|
||||
[
|
||||
# TODO(jmadill): Force include header on other platforms.
|
||||
'<@(vulkan_loader_cflags_win)',
|
||||
'/FIvulkan/angle_loader.h'
|
||||
],
|
||||
},
|
||||
'VCLinkerTool':
|
||||
{
|
||||
'AdditionalDependencies':
|
||||
[
|
||||
'shlwapi.lib',
|
||||
],
|
||||
},
|
||||
},
|
||||
'direct_dependent_settings':
|
||||
{
|
||||
'include_dirs':
|
||||
[
|
||||
'<@(vulkan_loader_include_dirs)',
|
||||
],
|
||||
'msvs_settings':
|
||||
{
|
||||
'VCLinkerTool':
|
||||
{
|
||||
'AdditionalDependencies':
|
||||
[
|
||||
'shlwapi.lib',
|
||||
],
|
||||
},
|
||||
},
|
||||
'conditions':
|
||||
[
|
||||
['OS=="win"',
|
||||
{
|
||||
'defines':
|
||||
[
|
||||
'VK_USE_PLATFORM_WIN32_KHR',
|
||||
],
|
||||
}],
|
||||
],
|
||||
},
|
||||
'conditions':
|
||||
[
|
||||
['OS=="win"',
|
||||
{
|
||||
'sources':
|
||||
[
|
||||
'<(angle_gen_path)/vulkan/angle_loader.h',
|
||||
'<@(vulkan_loader_win_sources)',
|
||||
],
|
||||
'defines':
|
||||
[
|
||||
'VK_USE_PLATFORM_WIN32_KHR',
|
||||
],
|
||||
}],
|
||||
],
|
||||
'actions':
|
||||
[
|
||||
{
|
||||
# The loader header is force included into the loader and layers. Because
|
||||
# of issues with GYP, we can't use a normal header file, we hav to force
|
||||
# inclue this using compiler-specific flags.
|
||||
'action_name': 'vulkan_loader_gen_angle_header',
|
||||
'message': 'generating Vulkan loader ANGLE header',
|
||||
'msvs_cygwin_shell': 0,
|
||||
'inputs':
|
||||
[
|
||||
'<(angle_path)/scripts/generate_vulkan_header.py',
|
||||
],
|
||||
'outputs':
|
||||
[
|
||||
'<(angle_gen_path)/vulkan/angle_loader.h',
|
||||
],
|
||||
'action':
|
||||
[
|
||||
# TODO(jmadill): Use correct platform path
|
||||
'python', '<(angle_path)/scripts/generate_vulkan_header.py', '<(angle_gen_path)/vulkan/json',
|
||||
'<(angle_gen_path)/vulkan/angle_loader.h', '<(PRODUCT_DIR)',
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
'target_name': 'glslang',
|
||||
'type': 'static_library',
|
||||
|
@ -589,12 +481,14 @@
|
|||
{
|
||||
'target_name': 'vulkan_layer_utils_static',
|
||||
'type': 'static_library',
|
||||
'msvs_cygwin_shell': 0,
|
||||
'sources':
|
||||
[
|
||||
'<@(vulkan_layer_utils_sources)',
|
||||
],
|
||||
'include_dirs':
|
||||
[
|
||||
'<(angle_gen_path)/vulkan',
|
||||
'<@(vulkan_loader_include_dirs)',
|
||||
],
|
||||
'msvs_settings':
|
||||
|
@ -623,6 +517,7 @@
|
|||
'WIN32',
|
||||
'WIN32_LEAN_AND_MEAN',
|
||||
'VK_USE_PLATFORM_WIN32_KHR',
|
||||
'VK_USE_PLATFORM_WIN32_KHX',
|
||||
],
|
||||
}],
|
||||
],
|
||||
|
@ -652,6 +547,7 @@
|
|||
'AdditionalOptions':
|
||||
[
|
||||
'/wd4100', # Unreferenced local parameter
|
||||
'/wd4201', # Nonstandard extension used: nameless struct/union
|
||||
'/wd4456', # declaration hides previous local declaration
|
||||
'/wd4505', # Unreferenced local function has been removed
|
||||
'/wd4996', # Unsafe stdlib function
|
||||
|
@ -666,6 +562,7 @@
|
|||
[
|
||||
'WIN32_LEAN_AND_MEAN',
|
||||
'VK_USE_PLATFORM_WIN32_KHR',
|
||||
'VK_USE_PLATFORM_WIN32_KHX',
|
||||
],
|
||||
'configurations':
|
||||
{
|
||||
|
@ -686,11 +583,6 @@
|
|||
}],
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
'target_name': 'vulkan_generate_layer_helpers',
|
||||
'type': 'none',
|
||||
'msvs_cygwin_shell': 0,
|
||||
|
||||
'actions':
|
||||
[
|
||||
|
@ -816,11 +708,33 @@
|
|||
},
|
||||
|
||||
{
|
||||
'action_name': 'vulkan_generate_dispatch_table_helper',
|
||||
'action_name': 'vulkan_run_vk_xml_generate_vk_layer_dispatch_table_h',
|
||||
'message': 'generating vk_layer_dispatch_table.h',
|
||||
'inputs':
|
||||
[
|
||||
'<(vulkan_layers_path)/scripts/loader_extension_generator.py',
|
||||
'<(vulkan_layers_path)/scripts/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_layer_dispatch_table.h',
|
||||
],
|
||||
'action':
|
||||
[
|
||||
'python', '<(vulkan_layers_path)/scripts/lvl_genvk.py', '-o', '<(angle_gen_path)/vulkan',
|
||||
'-registry', '<(vulkan_layers_path)/scripts/vk.xml', 'vk_layer_dispatch_table.h', '-quiet',
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
'action_name': 'vulkan_run_vk_xml_generate_vk_dispatch_table_helper_h',
|
||||
'message': 'generating vk_dispatch_table_helper.h',
|
||||
'inputs':
|
||||
[
|
||||
'<(vulkan_layers_path)/scripts/dispatch_table_generator.py',
|
||||
'<(vulkan_layers_path)/scripts/dispatch_table_helper_generator.py',
|
||||
'<(vulkan_layers_path)/scripts/generator.py',
|
||||
'<(vulkan_layers_path)/scripts/lvl_genvk.py',
|
||||
'<(vulkan_layers_path)/scripts/reg.py',
|
||||
|
@ -837,6 +751,50 @@
|
|||
],
|
||||
},
|
||||
|
||||
{
|
||||
'action_name': 'vulkan_run_vk_xml_generate_vk_loader_extensions_h',
|
||||
'message': 'generating vk_loader_extensions.h',
|
||||
'inputs':
|
||||
[
|
||||
'<(vulkan_layers_path)/scripts/loader_extension_generator.py',
|
||||
'<(vulkan_layers_path)/scripts/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_loader_extensions.h',
|
||||
],
|
||||
'action':
|
||||
[
|
||||
'python', '<(vulkan_layers_path)/scripts/lvl_genvk.py', '-o', '<(angle_gen_path)/vulkan',
|
||||
'-registry', '<(vulkan_layers_path)/scripts/vk.xml', 'vk_loader_extensions.h', '-quiet',
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
'action_name': 'vulkan_run_vk_xml_generate_vk_loader_extensions_c',
|
||||
'message': 'generating vk_loader_extensions.c',
|
||||
'inputs':
|
||||
[
|
||||
'<(vulkan_layers_path)/scripts/loader_extension_generator.py',
|
||||
'<(vulkan_layers_path)/scripts/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_loader_extensions.c',
|
||||
],
|
||||
'action':
|
||||
[
|
||||
'python', '<(vulkan_layers_path)/scripts/lvl_genvk.py', '-o', '<(angle_gen_path)/vulkan',
|
||||
'-registry', '<(vulkan_layers_path)/scripts/vk.xml', 'vk_loader_extensions.c', '-quiet',
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
'action_name': 'vulkan_generate_json_files',
|
||||
'message': 'generating Vulkan json files',
|
||||
|
@ -867,13 +825,120 @@
|
|||
],
|
||||
},
|
||||
|
||||
{
|
||||
'target_name': 'vulkan_loader',
|
||||
'type': 'static_library',
|
||||
'deps': 'vulkan_layer_utils_static',
|
||||
'sources':
|
||||
[
|
||||
'<@(vulkan_loader_sources)',
|
||||
],
|
||||
'include_dirs':
|
||||
[
|
||||
'<@(vulkan_loader_include_dirs)',
|
||||
'<(angle_gen_path)/vulkan',
|
||||
],
|
||||
'defines':
|
||||
[
|
||||
'API_NAME="Vulkan"',
|
||||
'VULKAN_NON_CMAKE_BUILD',
|
||||
],
|
||||
'msvs_settings':
|
||||
{
|
||||
'VCCLCompilerTool':
|
||||
{
|
||||
'AdditionalOptions':
|
||||
[
|
||||
# TODO(jmadill): Force include header on other platforms.
|
||||
'<@(vulkan_loader_cflags_win)',
|
||||
'/FIangle_loader.h'
|
||||
],
|
||||
},
|
||||
'VCLinkerTool':
|
||||
{
|
||||
'AdditionalDependencies':
|
||||
[
|
||||
'shlwapi.lib',
|
||||
],
|
||||
},
|
||||
},
|
||||
'direct_dependent_settings':
|
||||
{
|
||||
'include_dirs':
|
||||
[
|
||||
'<@(vulkan_loader_include_dirs)',
|
||||
],
|
||||
'msvs_settings':
|
||||
{
|
||||
'VCLinkerTool':
|
||||
{
|
||||
'AdditionalDependencies':
|
||||
[
|
||||
'shlwapi.lib',
|
||||
],
|
||||
},
|
||||
},
|
||||
'conditions':
|
||||
[
|
||||
['OS=="win"',
|
||||
{
|
||||
'defines':
|
||||
[
|
||||
'VK_USE_PLATFORM_WIN32_KHR',
|
||||
'VK_USE_PLATFORM_WIN32_KHX',
|
||||
],
|
||||
}],
|
||||
],
|
||||
},
|
||||
'conditions':
|
||||
[
|
||||
['OS=="win"',
|
||||
{
|
||||
'sources':
|
||||
[
|
||||
'<(angle_gen_path)/vulkan/angle_loader.h',
|
||||
'<@(vulkan_loader_win_sources)',
|
||||
],
|
||||
'defines':
|
||||
[
|
||||
'VK_USE_PLATFORM_WIN32_KHR',
|
||||
'VK_USE_PLATFORM_WIN32_KHX',
|
||||
],
|
||||
}],
|
||||
],
|
||||
'actions':
|
||||
[
|
||||
{
|
||||
# The loader header is force included into the loader and layers. Because
|
||||
# of issues with GYP, we can't use a normal header file, we hav to force
|
||||
# inclue this using compiler-specific flags.
|
||||
'action_name': 'vulkan_loader_gen_angle_header',
|
||||
'message': 'generating Vulkan loader ANGLE header',
|
||||
'msvs_cygwin_shell': 0,
|
||||
'inputs':
|
||||
[
|
||||
'<(angle_path)/scripts/generate_vulkan_header.py',
|
||||
],
|
||||
'outputs':
|
||||
[
|
||||
'<(angle_gen_path)/vulkan/angle_loader.h',
|
||||
],
|
||||
'action':
|
||||
[
|
||||
# TODO(jmadill): Use correct platform path
|
||||
'python', '<(angle_path)/scripts/generate_vulkan_header.py', '<(angle_gen_path)/vulkan/json',
|
||||
'<(angle_gen_path)/vulkan/angle_loader.h', '<(PRODUCT_DIR)',
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
'target_name': 'VkLayer_core_validation',
|
||||
'type': 'shared_library',
|
||||
'dependencies':
|
||||
[
|
||||
'spirv_tools',
|
||||
'vulkan_generate_layer_helpers',
|
||||
'vulkan_layer_utils_static',
|
||||
],
|
||||
'sources':
|
||||
|
@ -892,36 +957,11 @@
|
|||
],
|
||||
},
|
||||
|
||||
{
|
||||
'target_name': 'VkLayer_image',
|
||||
'type': 'shared_library',
|
||||
'dependencies':
|
||||
[
|
||||
'vulkan_generate_layer_helpers',
|
||||
'vulkan_layer_utils_static',
|
||||
],
|
||||
'sources':
|
||||
[
|
||||
'<@(VkLayer_image_sources)',
|
||||
],
|
||||
'conditions':
|
||||
[
|
||||
['OS=="win"',
|
||||
{
|
||||
'sources':
|
||||
[
|
||||
'<(vulkan_layers_path)/layers/VkLayer_image.def',
|
||||
]
|
||||
}],
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
'target_name': 'VkLayer_swapchain',
|
||||
'type': 'shared_library',
|
||||
'dependencies':
|
||||
[
|
||||
'vulkan_generate_layer_helpers',
|
||||
'vulkan_layer_utils_static',
|
||||
],
|
||||
'sources':
|
||||
|
@ -945,7 +985,6 @@
|
|||
'type': 'shared_library',
|
||||
'dependencies':
|
||||
[
|
||||
'vulkan_generate_layer_helpers',
|
||||
'vulkan_layer_utils_static',
|
||||
],
|
||||
'sources':
|
||||
|
@ -969,7 +1008,6 @@
|
|||
'type': 'shared_library',
|
||||
'dependencies':
|
||||
[
|
||||
'vulkan_generate_layer_helpers',
|
||||
'vulkan_layer_utils_static',
|
||||
],
|
||||
'sources':
|
||||
|
@ -1017,7 +1055,6 @@
|
|||
'type': 'shared_library',
|
||||
'dependencies':
|
||||
[
|
||||
'vulkan_generate_layer_helpers',
|
||||
'vulkan_layer_utils_static',
|
||||
],
|
||||
'sources':
|
||||
|
@ -1065,7 +1102,6 @@
|
|||
'type': 'shared_library',
|
||||
'dependencies':
|
||||
[
|
||||
'vulkan_generate_layer_helpers',
|
||||
'vulkan_layer_utils_static',
|
||||
],
|
||||
'sources':
|
||||
|
@ -1116,7 +1152,6 @@
|
|||
# Need to disable these to prevent multiply defined symbols with ninja.
|
||||
# TODO(jmadill): Figure out how to implement data_deps in gyp.
|
||||
# 'VkLayer_core_validation',
|
||||
# 'VkLayer_image',
|
||||
# 'VkLayer_object_tracker',
|
||||
# 'VkLayer_parameter_validation',
|
||||
# 'VkLayer_swapchain',
|
||||
|
|
Загрузка…
Ссылка в новой задаче