Convert spvc build flag to a runtime toggle
Also moves some of the spirv_cross code into the main library that was feature guarded, since spvc requires it. BUG=dawn:281 Change-Id: I482d1d5a5c851956d3815bad90665c52a1ea15bb Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/13860 Reviewed-by: Corentin Wallez <cwallez@chromium.org>
This commit is contained in:
parent
127cd1f258
commit
1954436fe2
7
BUILD.gn
7
BUILD.gn
|
@ -124,15 +124,12 @@ source_set("libdawn_native_sources") {
|
||||||
":libdawn_native_headers",
|
":libdawn_native_headers",
|
||||||
":libdawn_native_utils_gen",
|
":libdawn_native_utils_gen",
|
||||||
"${dawn_root}/src/common",
|
"${dawn_root}/src/common",
|
||||||
|
"${dawn_shaderc_dir}:libshaderc_spvc",
|
||||||
"${dawn_spirv_tools_dir}:spvtools_val",
|
"${dawn_spirv_tools_dir}:spvtools_val",
|
||||||
"third_party:spirv_cross",
|
"third_party:spirv_cross",
|
||||||
]
|
]
|
||||||
defines = []
|
|
||||||
if (dawn_use_spvc) {
|
|
||||||
deps += [ "${dawn_shaderc_dir}:libshaderc_spvc" ]
|
|
||||||
defines += [ "DAWN_USE_SPVC" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
|
defines = []
|
||||||
configs += [ ":libdawn_native_internal" ]
|
configs += [ ":libdawn_native_internal" ]
|
||||||
libs = []
|
libs = []
|
||||||
|
|
||||||
|
|
2
DEPS
2
DEPS
|
@ -68,7 +68,7 @@ deps = {
|
||||||
'condition': 'dawn_standalone',
|
'condition': 'dawn_standalone',
|
||||||
},
|
},
|
||||||
'third_party/shaderc': {
|
'third_party/shaderc': {
|
||||||
'url': '{chromium_git}/external/github.com/google/shaderc@c7f5cfd07f41c997045d76fd09c934691ff8a6c6',
|
'url': '{chromium_git}/external/github.com/google/shaderc@eca11511a0c09dd599837862c96658a91e927a3a',
|
||||||
'condition': 'dawn_standalone',
|
'condition': 'dawn_standalone',
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -44,10 +44,6 @@ declare_args() {
|
||||||
# GLSL/HLSL/MSL compiler. This implicitly pulls in the GLSL
|
# GLSL/HLSL/MSL compiler. This implicitly pulls in the GLSL
|
||||||
# compiler, since it is a sub-class of if.
|
# compiler, since it is a sub-class of if.
|
||||||
dawn_enable_cross_reflection = false
|
dawn_enable_cross_reflection = false
|
||||||
|
|
||||||
# Enables using spvc for accessing SPIR-V toolchain, instead of
|
|
||||||
# directly accessing it in Dawn.
|
|
||||||
dawn_use_spvc = false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# GN does not allow reading a variable defined in the same declare_args().
|
# GN does not allow reading a variable defined in the same declare_args().
|
||||||
|
|
|
@ -82,7 +82,11 @@ namespace dawn_native {
|
||||||
"versions of Windows prior to build 1809, or when this toggle is turned off, Dawn "
|
"versions of Windows prior to build 1809, or when this toggle is turned off, Dawn "
|
||||||
"will emulate a render pass."}},
|
"will emulate a render pass."}},
|
||||||
{Toggle::SkipValidation,
|
{Toggle::SkipValidation,
|
||||||
{"skip_validation", "Skip expensive validation of Dawn commands."}}}};
|
{"skip_validation", "Skip expensive validation of Dawn commands."}},
|
||||||
|
{Toggle::UseSpvc,
|
||||||
|
{"use_spvc",
|
||||||
|
"Enable use of spvc for shader compilation, instead of accessing spirv_cross "
|
||||||
|
"directly."}}}};
|
||||||
} // anonymous namespace
|
} // anonymous namespace
|
||||||
|
|
||||||
void TogglesSet::SetToggle(Toggle toggle, bool enabled) {
|
void TogglesSet::SetToggle(Toggle toggle, bool enabled) {
|
||||||
|
|
|
@ -33,7 +33,7 @@ namespace dawn_native {
|
||||||
UseD3D12ResourceHeapTier2,
|
UseD3D12ResourceHeapTier2,
|
||||||
UseD3D12RenderPass,
|
UseD3D12RenderPass,
|
||||||
SkipValidation,
|
SkipValidation,
|
||||||
|
UseSpvc,
|
||||||
EnumCount,
|
EnumCount,
|
||||||
InvalidEnum = EnumCount,
|
InvalidEnum = EnumCount,
|
||||||
};
|
};
|
||||||
|
|
|
@ -50,61 +50,6 @@ static_library("spirv_cross") {
|
||||||
public_configs = [ ":spirv_cross_public" ]
|
public_configs = [ ":spirv_cross_public" ]
|
||||||
configs += [ ":spirv_cross_internal" ]
|
configs += [ ":spirv_cross_internal" ]
|
||||||
|
|
||||||
sources = [
|
|
||||||
"${spirv_cross_dir}/GLSL.std.450.h",
|
|
||||||
"${spirv_cross_dir}/spirv.hpp",
|
|
||||||
"${spirv_cross_dir}/spirv_cfg.cpp",
|
|
||||||
"${spirv_cross_dir}/spirv_cfg.hpp",
|
|
||||||
"${spirv_cross_dir}/spirv_common.hpp",
|
|
||||||
"${spirv_cross_dir}/spirv_cross.cpp",
|
|
||||||
"${spirv_cross_dir}/spirv_cross.hpp",
|
|
||||||
"${spirv_cross_dir}/spirv_cross_containers.hpp",
|
|
||||||
"${spirv_cross_dir}/spirv_cross_error_handling.hpp",
|
|
||||||
"${spirv_cross_dir}/spirv_cross_parsed_ir.cpp",
|
|
||||||
"${spirv_cross_dir}/spirv_cross_parsed_ir.hpp",
|
|
||||||
"${spirv_cross_dir}/spirv_parser.cpp",
|
|
||||||
"${spirv_cross_dir}/spirv_parser.hpp",
|
|
||||||
]
|
|
||||||
|
|
||||||
need_glsl_cross =
|
|
||||||
dawn_enable_opengl || dawn_enable_cross_reflection || dawn_use_spvc
|
|
||||||
need_reflection_cross = dawn_enable_cross_reflection || dawn_use_spvc
|
|
||||||
|
|
||||||
if (dawn_enable_d3d12) {
|
|
||||||
sources += [
|
|
||||||
"${spirv_cross_dir}/spirv_hlsl.cpp",
|
|
||||||
"${spirv_cross_dir}/spirv_hlsl.hpp",
|
|
||||||
]
|
|
||||||
need_glsl_cross = true
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dawn_enable_metal) {
|
|
||||||
sources += [
|
|
||||||
"${spirv_cross_dir}/spirv_msl.cpp",
|
|
||||||
"${spirv_cross_dir}/spirv_msl.hpp",
|
|
||||||
]
|
|
||||||
need_glsl_cross = true
|
|
||||||
}
|
|
||||||
|
|
||||||
if (need_glsl_cross) {
|
|
||||||
sources += [
|
|
||||||
"${spirv_cross_dir}/spirv_glsl.cpp",
|
|
||||||
"${spirv_cross_dir}/spirv_glsl.hpp",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
if (need_reflection_cross) {
|
|
||||||
sources += [
|
|
||||||
"${spirv_cross_dir}/spirv_reflect.cpp",
|
|
||||||
"${spirv_cross_dir}/spirv_reflect.hpp",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static_library("spirv_cross_full_for_fuzzers") {
|
|
||||||
public_configs = [ ":spirv_cross_public" ]
|
|
||||||
configs += [ ":spirv_cross_internal" ]
|
|
||||||
|
|
||||||
sources = [
|
sources = [
|
||||||
"${spirv_cross_dir}/GLSL.std.450.h",
|
"${spirv_cross_dir}/GLSL.std.450.h",
|
||||||
"${spirv_cross_dir}/spirv.hpp",
|
"${spirv_cross_dir}/spirv.hpp",
|
||||||
|
|
Loading…
Reference in New Issue