diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2021-05-28 17:15:12 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-28 14:15:12 -0700 |
| commit | 67486ee516ddc33806003727682cbfc68ab1f726 (patch) | |
| tree | 21e44c4a01cae2bfa03de9ed35efe45f0ce1ac66 /source/slang/slang-emit.cpp | |
| parent | 89faa8a7d9b441b5dd92eec5fcf362eb3f38fa2b (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.cpp | 12 |
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; } |
