summaryrefslogtreecommitdiffstats
path: root/source/slang
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang')
-rw-r--r--source/slang/slang-diagnostic-defs.h6
-rw-r--r--source/slang/slang-emit-spirv.cpp1
-rw-r--r--source/slang/slang-emit.cpp20
-rw-r--r--source/slang/slang-spirv-val.cpp41
-rw-r--r--source/slang/slang-spirv-val.h10
5 files changed, 8 insertions, 70 deletions
diff --git a/source/slang/slang-diagnostic-defs.h b/source/slang/slang-diagnostic-defs.h
index 9d08d5b73..821a895bc 100644
--- a/source/slang/slang-diagnostic-defs.h
+++ b/source/slang/slang-diagnostic-defs.h
@@ -2562,11 +2562,7 @@ DIAGNOSTIC(
Internal,
serialDebugVerificationFailed,
"Verification of serial debug information failed.")
-DIAGNOSTIC(
- 99999,
- Internal,
- spirvValidationFailed,
- "Validation of generated SPIR-V failed. SPIRV generated: \n$0")
+DIAGNOSTIC(99999, Internal, spirvValidationFailed, "Validation of generated SPIR-V failed.")
DIAGNOSTIC(
99999,
diff --git a/source/slang/slang-emit-spirv.cpp b/source/slang/slang-emit-spirv.cpp
index 676a16228..d8c479cd1 100644
--- a/source/slang/slang-emit-spirv.cpp
+++ b/source/slang/slang-emit-spirv.cpp
@@ -12,7 +12,6 @@
#include "slang-ir-util.h"
#include "slang-ir.h"
#include "slang-lookup-spirv.h"
-#include "slang-spirv-val.h"
#include "spirv/unified1/spirv.h"
#include <type_traits>
diff --git a/source/slang/slang-emit.cpp b/source/slang/slang-emit.cpp
index f9118bb45..7ea2fef88 100644
--- a/source/slang/slang-emit.cpp
+++ b/source/slang/slang-emit.cpp
@@ -104,7 +104,6 @@
#include "slang-legalize-types.h"
#include "slang-lower-to-ir.h"
#include "slang-mangle.h"
-#include "slang-spirv-val.h"
#include "slang-syntax.h"
#include "slang-type-layout.h"
#include "slang-visitor.h"
@@ -1942,18 +1941,16 @@ SlangResult emitSPIRVForEntryPointsDirectly(
ArtifactUtil::createArtifactForCompileTarget(asExternal(codeGenContext->getTargetFormat()));
artifact->addRepresentationUnknown(ListBlob::moveCreate(spirv));
-#if 0
- // Dump the unoptimized SPIRV after lowering from slang IR -> SPIRV
- String err; String dis;
- disassembleSPIRV(spirv, err, dis);
- printf("%s", dis.begin());
-#endif
-
IDownstreamCompiler* compiler = codeGenContext->getSession()->getOrLoadDownstreamCompiler(
PassThroughMode::SpirvOpt,
codeGenContext->getSink());
if (compiler)
{
+#if 0
+ // Dump the unoptimized SPIRV after lowering from slang IR -> SPIRV
+ compiler->disassemble((uint32_t*)spirv.getBuffer(), int(spirv.getCount() / 4));
+#endif
+
if (!codeGenContext->shouldSkipSPIRVValidation())
{
StringBuilder runSpirvValEnvVar;
@@ -1966,13 +1963,10 @@ SlangResult emitSPIRVForEntryPointsDirectly(
(uint32_t*)spirv.getBuffer(),
int(spirv.getCount() / 4))))
{
- String err;
- String dis;
- disassembleSPIRV(spirv, err, dis);
+ compiler->disassemble((uint32_t*)spirv.getBuffer(), int(spirv.getCount() / 4));
codeGenContext->getSink()->diagnoseWithoutSourceView(
SourceLoc{},
- Diagnostics::spirvValidationFailed,
- dis);
+ Diagnostics::spirvValidationFailed);
}
}
}
diff --git a/source/slang/slang-spirv-val.cpp b/source/slang/slang-spirv-val.cpp
deleted file mode 100644
index e2b4da46c..000000000
--- a/source/slang/slang-spirv-val.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#include "slang-spirv-val.h"
-
-namespace Slang
-{
-
-SlangResult disassembleSPIRV(const List<uint8_t>& spirv, String& outErr, String& outDis)
-{
- // Set up our process
- CommandLine commandLine;
- commandLine.m_executableLocation.setName("spirv-dis");
- commandLine.addArg("--comment");
- commandLine.addArg("--color");
- RefPtr<Process> p;
-
- // If we failed to even start the process, then validation isn't available
- SLANG_RETURN_ON_FAIL(Process::create(commandLine, 0, p));
- const auto in = p->getStream(StdStreamType::In);
- const auto out = p->getStream(StdStreamType::Out);
- const auto err = p->getStream(StdStreamType::ErrorOut);
-
- List<Byte> outData;
- List<Byte> outErrData;
- SLANG_RETURN_ON_FAIL(
- StreamUtil::readAndWrite(in, spirv.getArrayView(), out, outData, err, outErrData));
-
- SLANG_RETURN_ON_FAIL(p->waitForTermination(10));
-
- outDis = String(
- reinterpret_cast<const char*>(outData.begin()),
- reinterpret_cast<const char*>(outData.end()));
-
- outErr = String(
- reinterpret_cast<const char*>(outErrData.begin()),
- reinterpret_cast<const char*>(outErrData.end()));
-
- const auto ret = p->getReturnValue();
- return ret == 0 ? SLANG_OK : SLANG_FAIL;
-}
-
-
-} // namespace Slang
diff --git a/source/slang/slang-spirv-val.h b/source/slang/slang-spirv-val.h
deleted file mode 100644
index 01e111f91..000000000
--- a/source/slang/slang-spirv-val.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#pragma once
-
-#include "slang-compiler.h"
-
-#include <cstdint>
-
-namespace Slang
-{
-SlangResult disassembleSPIRV(const List<uint8_t>& spirv, String& outErr, String& outDis);
-}