Add ifdefs for Tint API usage that may not be available
Fixed Kokoro failures when building Tint with all readers and writers
disabled.
Change-Id: I9bd041339236488dd563bbe687da883035f2a4b7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/86181
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
diff --git a/src/dawn/native/ShaderModule.cpp b/src/dawn/native/ShaderModule.cpp
index 779e6ae..136158b 100644
--- a/src/dawn/native/ShaderModule.cpp
+++ b/src/dawn/native/ShaderModule.cpp
@@ -380,6 +380,7 @@
ResultOrError<tint::Program> ParseWGSL(const tint::Source::File* file,
OwnedCompilationMessages* outMessages) {
+#if TINT_BUILD_WGSL_READER
tint::Program program = tint::reader::wgsl::Parse(file);
if (outMessages != nullptr) {
outMessages->AddMessages(program.Diagnostics());
@@ -391,10 +392,14 @@
}
return std::move(program);
+#else
+ return DAWN_FORMAT_VALIDATION_ERROR("TINT_BUILD_WGSL_READER is not defined.");
+#endif
}
ResultOrError<tint::Program> ParseSPIRV(const std::vector<uint32_t>& spirv,
OwnedCompilationMessages* outMessages) {
+#if TINT_BUILD_SPV_READER
tint::Program program = tint::reader::spirv::Parse(spirv);
if (outMessages != nullptr) {
outMessages->AddMessages(program.Diagnostics());
@@ -405,6 +410,10 @@
}
return std::move(program);
+#else
+ return DAWN_FORMAT_VALIDATION_ERROR("TINT_BUILD_SPV_READER is not defined.");
+
+#endif
}
std::vector<uint64_t> GetBindGroupMinBufferSizes(const BindingGroupInfoMap& shaderBindings,
@@ -997,6 +1006,7 @@
ShaderModuleWGSLDescriptor newWgslDesc;
std::string newWgslCode;
if (spirvDesc && device->IsToggleEnabled(Toggle::ForceWGSLStep)) {
+#if TINT_BUILD_WGSL_WRITER
std::vector<uint32_t> spirv(spirvDesc->code, spirvDesc->code + spirvDesc->codeSize);
tint::Program program;
DAWN_TRY_ASSIGN(program, ParseSPIRV(spirv, outMessages));
@@ -1010,6 +1020,11 @@
spirvDesc = nullptr;
wgslDesc = &newWgslDesc;
+#else
+ device->EmitLog(
+ WGPULoggingType_Info,
+ "Toggle::ForceWGSLStep skipped because TINT_BUILD_WGSL_WRITER is not defined\n");
+#endif
}
if (spirvDesc) {
diff --git a/src/dawn/native/vulkan/ShaderModuleVk.cpp b/src/dawn/native/vulkan/ShaderModuleVk.cpp
index d56e599..da9ca3d 100644
--- a/src/dawn/native/vulkan/ShaderModuleVk.cpp
+++ b/src/dawn/native/vulkan/ShaderModuleVk.cpp
@@ -203,6 +203,7 @@
transformInputs, nullptr, nullptr));
}
+#if TINT_BUILD_SPV_WRITER
tint::writer::spirv::Options options;
options.emit_vertex_point_size = true;
options.disable_workgroup_init = GetDevice()->IsToggleEnabled(Toggle::DisableWorkgroupInit);
@@ -249,6 +250,9 @@
GetLabel());
return std::move(moduleAndSpirv);
+#else
+ return DAWN_INTERNAL_ERROR("TINT_BUILD_SPV_WRITER is not defined.");
+#endif
}
} // namespace dawn::native::vulkan