summaryrefslogtreecommitdiff
path: root/source/slang/slang-emit-cpp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-emit-cpp.cpp')
-rw-r--r--source/slang/slang-emit-cpp.cpp49
1 files changed, 27 insertions, 22 deletions
diff --git a/source/slang/slang-emit-cpp.cpp b/source/slang/slang-emit-cpp.cpp
index f71406261..7e70b73e2 100644
--- a/source/slang/slang-emit-cpp.cpp
+++ b/source/slang/slang-emit-cpp.cpp
@@ -2642,6 +2642,7 @@ void CPPSourceEmitter::emitModuleImpl(IRModule* module, DiagnosticSink* sink)
if (auto entryPointDecoration = func->findDecoration<IREntryPointDecoration>())
{
String entryPointName = entryPointDecoration->getName()->getStringSlice();
+ String moduleName = entryPointDecoration->getModuleName()->getStringSlice();
for (int index = 0; index < program->getEntryPointCount(); index++)
{
auto entryPoint = program->getEntryPoint(index);
@@ -2680,30 +2681,30 @@ void CPPSourceEmitter::emitModuleImpl(IRModule* module, DiagnosticSink* sink)
else
{
- auto ptr = (const unsigned char*)blob->getBufferPointer();
+ // auto ptr = (const unsigned char*)blob->getBufferPointer();
- m_writer->emit("size_t __");
- m_writer->emit(entryPointName);
- m_writer->emit("Size = ");
- m_writer->emitInt64(blob->getBufferSize());
- m_writer->emit(";\n");
+ // m_writer->emit("size_t __");
+ // m_writer->emit(entryPointName);
+ // m_writer->emit("Size = ");
+ // m_writer->emitInt64(blob->getBufferSize());
+ // m_writer->emit(";\n");
- m_writer->emit("unsigned char __");
- m_writer->emit(entryPointName);
- m_writer->emit("[] = {");
+ // m_writer->emit("unsigned char __");
+ // m_writer->emit(entryPointName);
+ // m_writer->emit("[] = {");
// every 20 bytes, emit a newline
- size_t j = 0;
- for (size_t i = 0; i < blob->getBufferSize(); i++) {
- m_writer->emitUInt64(ptr[i]);
- m_writer->emit(", ");
- if (j == 20)
- {
- m_writer->emit("\n");
- j = 0;
- }
- j++;
- }
- m_writer->emit("};\n");
+ // size_t j = 0;
+ // for (size_t i = 0; i < blob->getBufferSize(); i++) {
+ // m_writer->emitUInt64(ptr[i]);
+ // m_writer->emit(", ");
+ // if (j == 20)
+ // {
+ // m_writer->emit("\n");
+ // j = 0;
+ // }
+ // j++;
+ // }
+ // m_writer->emit("};\n");
}
}
}
@@ -2717,7 +2718,11 @@ void CPPSourceEmitter::emitModuleImpl(IRModule* module, DiagnosticSink* sink)
m_writer->emit(", __");
m_writer->emit(entryPointName);
m_writer->emit("Size);");*/
- m_writer->emit("\n\tgfx_ShaderProgram_0* shaderProgram = loadShaderProgram_0(device);");
+ m_writer->emit("\n\tgfx_ShaderProgram_0* shaderProgram = loadShaderProgram_0(device, \"");
+ m_writer->emit(entryPointName);
+ m_writer->emit("\", \"");
+ m_writer->emit(moduleName);
+ m_writer->emit("\");");
m_writer->emit("\n\tgfx_TransientResourceHeap_0* transientHeap = buildTransientHeap_0(device);");
m_writer->emit("\n\tgfx_PipelineState_0* pipelineState = ");
m_writer->emit("buildPipelineState_0(device, shaderProgram);");