Reflect multiple entry points & ray properties from DXIL shaders

This commit is contained in:
baldurk
2024-04-23 15:10:53 +01:00
parent 476fed06d6
commit 7e7bbf58a8
13 changed files with 268 additions and 20 deletions
@@ -279,7 +279,7 @@ ShaderToolOutput ShaderProcessingTool::DisassembleShader(QWidget *window,
arg = output_file = tmpPath(lit("shader_output"));
if(arg == lit("{entry_point}"))
{
arg = shaderDetails->entryPoint;
arg = shaderDetails->debugInfo.entrySourceName;
if(arg.isEmpty())
arg = lit("main");
}
@@ -1178,7 +1178,7 @@ void D3D12PipelineStateViewer::setShaderState(const D3D12Pipe::Shader &stage, RD
int entryFile = qMax(0, dbg.entryLocation.fileIndex);
shText += QFormatStr(": %1() - %2")
.arg(shaderDetails->entryPoint)
.arg(shaderDetails->debugInfo.entrySourceName)
.arg(QFileInfo(dbg.files[entryFile].filename).fileName());
}
shader->setText(shText);
@@ -2851,7 +2851,7 @@ void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const D3D12Pipe
int entryFile = qMax(0, dbg.entryLocation.fileIndex);
shadername = QFormatStr("%1() - %2")
.arg(shaderDetails->entryPoint)
.arg(shaderDetails->debugInfo.entrySourceName)
.arg(QFileInfo(dbg.files[entryFile].filename).fileName());
}
@@ -1021,8 +1021,8 @@ IShaderViewer *PipelineStateViewer::EditDecompiledSource(const ShaderProcessingT
if(flag.name == "@spirver")
flags.flags.push_back(flag);
IShaderViewer *sv = EditShader(id, shaderDetails->stage, shaderDetails->entryPoint, flags,
KnownShaderTool::Unknown, tool.output, files);
IShaderViewer *sv = EditShader(id, shaderDetails->stage, shaderDetails->debugInfo.entrySourceName,
flags, KnownShaderTool::Unknown, tool.output, files);
sv->ShowErrors(out.log);