D3D12: Improve dump_translated_shaders debugging
If enabled:
* Don't enable the renamer transform. Helps with readability.
* Emit the produced WGSL when combined with --force_wgsl_step
Change-Id: I336de6e6a4eee08805eee82847bd97cd5a942306
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/57040
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
diff --git a/src/dawn_native/ShaderModule.cpp b/src/dawn_native/ShaderModule.cpp
index 014c13e..5f8336a 100644
--- a/src/dawn_native/ShaderModule.cpp
+++ b/src/dawn_native/ShaderModule.cpp
@@ -1124,6 +1124,12 @@
newWgslCode = generator.result();
newWgslDesc.source = newWgslCode.c_str();
+ if (device->IsToggleEnabled(Toggle::DumpTranslatedShaders)) {
+ std::ostringstream dumpedMsg;
+ dumpedMsg << "// Dumped generated WGSL" << std::endl << newWgslCode;
+ device->EmitLog(WGPULoggingType_Info, dumpedMsg.str().c_str());
+ }
+
spirvDesc = nullptr;
wgslDesc = &newWgslDesc;
}
diff --git a/src/dawn_native/d3d12/ShaderModuleD3D12.cpp b/src/dawn_native/d3d12/ShaderModuleD3D12.cpp
index ddf4cac..7e9b3ed 100644
--- a/src/dawn_native/d3d12/ShaderModuleD3D12.cpp
+++ b/src/dawn_native/d3d12/ShaderModuleD3D12.cpp
@@ -258,9 +258,12 @@
layout->GetFirstIndexOffsetRegisterSpace());
}
transformManager.Add<tint::transform::BindingRemapper>();
- transformManager.Add<tint::transform::Renamer>();
transformManager.Add<tint::transform::Hlsl>();
+ if (!GetDevice()->IsToggleEnabled(Toggle::DumpTranslatedShaders)) {
+ transformManager.Add<tint::transform::Renamer>();
+ }
+
// D3D12 registers like `t3` and `c3` have the same bindingOffset number in the
// remapping but should not be considered a collision because they have different types.
const bool mayCollide = true;
@@ -290,7 +293,11 @@
}
*remappedEntryPointName = it->second;
} else {
- return DAWN_VALIDATION_ERROR("Transform output missing renamer data.");
+ if (GetDevice()->IsToggleEnabled(Toggle::DumpTranslatedShaders)) {
+ *remappedEntryPointName = entryPointName;
+ } else {
+ return DAWN_VALIDATION_ERROR("Transform output missing renamer data.");
+ }
}
tint::writer::hlsl::Generator generator(&program);