From 67486ee516ddc33806003727682cbfc68ab1f726 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Fri, 28 May 2021 17:15:12 -0400 Subject: 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. --- source/slang/slang-emit.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'source/slang/slang-emit.cpp') 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& 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(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; } -- cgit v1.2.3