summaryrefslogtreecommitdiff
path: root/source/slang/slang-emit.cpp
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2021-05-28 17:15:12 -0400
committerGitHub <noreply@github.com>2021-05-28 14:15:12 -0700
commit67486ee516ddc33806003727682cbfc68ab1f726 (patch)
tree21e44c4a01cae2bfa03de9ed35efe45f0ce1ac66 /source/slang/slang-emit.cpp
parent89faa8a7d9b441b5dd92eec5fcf362eb3f38fa2b (diff)
Glslang refactor bugfix (#1863)
* #include an absolute path didn't work - because paths were taken to always be relative. * Fix issue with with SLANG_ENABLE_GLSLANG_SUPPORT * Update expected output from glslang-error.glsl * Fix bug in glsl dissassembly. * Make ExtensionTracker available even if source is not emitted. * Only explicitly set extension tracker based on capability bits, if we are in pass through. * Small simplification of invoke sourceEmit.
Diffstat (limited to 'source/slang/slang-emit.cpp')
-rw-r--r--source/slang/slang-emit.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/source/slang/slang-emit.cpp b/source/slang/slang-emit.cpp
index 16164b957..623b79a1f 100644
--- a/source/slang/slang-emit.cpp
+++ b/source/slang/slang-emit.cpp
@@ -721,9 +721,10 @@ SlangResult emitEntryPointsSourceFromIR(
const List<Int>& entryPointIndices,
CodeGenTarget target,
TargetRequest* targetRequest,
- SourceResult& outSource)
+ ExtensionTracker* extensionTracker,
+ String& outSource)
{
- outSource.reset();
+ outSource = String();
auto sink = compileRequest->getSink();
auto program = compileRequest->getProgram();
@@ -760,6 +761,7 @@ SlangResult emitEntryPointsSourceFromIR(
}
desc.targetCaps = targetRequest->getTargetCaps();
desc.sourceWriter = &sourceWriter;
+ desc.extensionTracker = extensionTracker;
// Define here, because must be in scope longer than the sourceEmitter, as sourceEmitter might reference
// items in the linkedIR module
@@ -866,8 +868,6 @@ SlangResult emitEntryPointsSourceFromIR(
sourceEmitter->emitPreprocessorDirectives();
sourceWriter.resumeLineDirective();
- RefObject* extensionTracker = sourceEmitter->getExtensionTracker();
-
if (auto glslExtensionTracker = as<GLSLExtensionTracker>(extensionTracker))
{
trackGLSLTargetCaps(glslExtensionTracker, targetRequest->getTargetCaps());
@@ -887,9 +887,7 @@ SlangResult emitEntryPointsSourceFromIR(
finalResultBuilder << code;
// Write out the result
- outSource.source = finalResultBuilder.ProduceString();
- outSource.extensionTracker = extensionTracker;
-
+ outSource = finalResultBuilder.ProduceString();
return SLANG_OK;
}