Add runtime toggle for using SPVC
This will be used in the future to choose between Dawn directly
accessing spirv-cross, and using spvc to mediate that interation.
This also adds in the spvc library as a dependency. This is what cause
the rollback last time, but that issue should be resolved.
BUG=dawn:281
Change-Id: Ic0b02d136ca05e2fa71844ebc85586b8866d5712
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14122
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/BUILD.gn b/BUILD.gn
index 5081a4c..e0ee168 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -134,6 +134,7 @@
":libdawn_native_headers",
":libdawn_native_utils_gen",
"${dawn_root}/src/common",
+ "${dawn_shaderc_dir}:libshaderc_spvc",
"${dawn_shaderc_dir}:spirv_cross",
"${dawn_spirv_tools_dir}:spvtools_val",
]
diff --git a/src/dawn_native/Toggles.cpp b/src/dawn_native/Toggles.cpp
index cfe8253..0995499 100644
--- a/src/dawn_native/Toggles.cpp
+++ b/src/dawn_native/Toggles.cpp
@@ -82,7 +82,11 @@
"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 0d5aa7f..0b8ed31 100644
--- a/src/dawn_native/Toggles.h
+++ b/src/dawn_native/Toggles.h
@@ -33,6 +33,7 @@
UseD3D12ResourceHeapTier2,
UseD3D12RenderPass,
SkipValidation,
+ UseSpvc,
EnumCount,
InvalidEnum = EnumCount,