summaryrefslogtreecommitdiff
path: root/source/slang/compiler.h
diff options
context:
space:
mode:
authorTim Foley <tfoley@nvidia.com>2017-07-13 12:10:08 -0700
committerTim Foley <tfoley@nvidia.com>2017-07-13 13:00:38 -0700
commit6d7be3694fbaae525b2f4463630c35bed487cd5b (patch)
treea9bac151f79bba23df11c90d5906a3009dad29bd /source/slang/compiler.h
parent4bc59f896c9df970ec27a57c397977fc4721d3cd (diff)
Add support for dumping intermediates for debugging.
Calling: spSetDumpIntermedites(compileRequest, true); will set up a mode where Slang tries to dump every intermediate HLSL, GLSL, DXBC, SPIR-V, etc. file it generates. If SPIR-V or DXBC is requested then we also dump assembly of those. Right now the files are all named as `slang-<counter>.<ext>`, and get dropped in whatever the working directory is, but I'm open to ideas on how to improve that. Note: this change introduces a new binary interface to `glslang`, so pulling it requires an updated `glslang.dll`.
Diffstat (limited to 'source/slang/compiler.h')
-rw-r--r--source/slang/compiler.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/source/slang/compiler.h b/source/slang/compiler.h
index 2b440ad85..a7d104b5f 100644
--- a/source/slang/compiler.h
+++ b/source/slang/compiler.h
@@ -207,6 +207,9 @@ namespace Slang
// Compile flags to be shared by all translation units
SlangCompileFlags compileFlags = 0;
+ // Should we dump intermediate results along the way, for debugging?
+ bool shouldDumpIntermediates = false;
+
// Output stuff
DiagnosticSink mSink;
String mDiagnosticOutput;
@@ -277,6 +280,17 @@ namespace Slang
void generateOutput(
CompileRequest* compileRequest);
+
+ // Helper to dump intermediate output when debugging
+ void maybeDumpIntermediate(
+ CompileRequest* compileRequest,
+ void const* data,
+ size_t size,
+ CodeGenTarget target);
+ void maybeDumpIntermediate(
+ CompileRequest* compileRequest,
+ char const* text,
+ CodeGenTarget target);
}
#endif \ No newline at end of file