diff --git a/BUILD.gn b/BUILD.gn index 0fd9cf4001..4647e4c31b 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -124,15 +124,12 @@ source_set("libdawn_native_sources") { ":libdawn_native_headers", ":libdawn_native_utils_gen", "${dawn_root}/src/common", + "${dawn_shaderc_dir}:libshaderc_spvc", "${dawn_spirv_tools_dir}:spvtools_val", "third_party:spirv_cross", ] - defines = [] - if (dawn_use_spvc) { - deps += [ "${dawn_shaderc_dir}:libshaderc_spvc" ] - defines += [ "DAWN_USE_SPVC" ] - } + defines = [] configs += [ ":libdawn_native_internal" ] libs = [] diff --git a/DEPS b/DEPS index e88299569e..6eab355004 100644 --- a/DEPS +++ b/DEPS @@ -68,7 +68,7 @@ deps = { 'condition': 'dawn_standalone', }, 'third_party/shaderc': { - 'url': '{chromium_git}/external/github.com/google/shaderc@c7f5cfd07f41c997045d76fd09c934691ff8a6c6', + 'url': '{chromium_git}/external/github.com/google/shaderc@eca11511a0c09dd599837862c96658a91e927a3a', 'condition': 'dawn_standalone', }, diff --git a/scripts/dawn_features.gni b/scripts/dawn_features.gni index cc1eb678a4..84ac2bb19c 100644 --- a/scripts/dawn_features.gni +++ b/scripts/dawn_features.gni @@ -44,10 +44,6 @@ declare_args() { # GLSL/HLSL/MSL compiler. This implicitly pulls in the GLSL # compiler, since it is a sub-class of if. 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(). diff --git a/src/dawn_native/Toggles.cpp b/src/dawn_native/Toggles.cpp index cfe825340a..0995499d89 100644 --- a/src/dawn_native/Toggles.cpp +++ b/src/dawn_native/Toggles.cpp @@ -82,7 +82,11 @@ namespace dawn_native { "versions of Windows prior to build 1809, or when this toggle is turned off, Dawn " "will emulate a render pass."}}, {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 void TogglesSet::SetToggle(Toggle toggle, bool enabled) { diff --git a/src/dawn_native/Toggles.h b/src/dawn_native/Toggles.h index 0d5aa7fbac..218b5d8d80 100644 --- a/src/dawn_native/Toggles.h +++ b/src/dawn_native/Toggles.h @@ -33,7 +33,7 @@ namespace dawn_native { UseD3D12ResourceHeapTier2, UseD3D12RenderPass, SkipValidation, - + UseSpvc, EnumCount, InvalidEnum = EnumCount, }; diff --git a/third_party/BUILD.gn b/third_party/BUILD.gn index d78eacfcd3..4830d9d09c 100644 --- a/third_party/BUILD.gn +++ b/third_party/BUILD.gn @@ -50,61 +50,6 @@ static_library("spirv_cross") { public_configs = [ ":spirv_cross_public" ] 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 = [ "${spirv_cross_dir}/GLSL.std.450.h", "${spirv_cross_dir}/spirv.hpp",