mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-28 17:36:36 +00:00
Add identified support for slang (the language and the tool)
This commit is contained in:
@@ -724,6 +724,11 @@ rdcstr ShaderProcessingTool::DefaultArguments() const
|
||||
return "-T {hlsl_stage2}_6_0 -E {entry_point}";
|
||||
else if(tool == KnownShaderTool::fxc)
|
||||
return "/T {hlsl_stage2}_5_0 /E {entry_point}";
|
||||
else if(tool == KnownShaderTool::slangSPIRV)
|
||||
return "-lang slang -target spirv -emit-spirv-directly -g2 -entry {entry_point} -stage "
|
||||
"{full_stage}";
|
||||
else if(tool == KnownShaderTool::slangDXIL)
|
||||
return "-lang slang -target dxil -g2 -entry {entry_point} -stage {full_stage}";
|
||||
|
||||
return args;
|
||||
}
|
||||
@@ -747,6 +752,8 @@ rdcstr ShaderProcessingTool::IOArguments() const
|
||||
return "-Fo {output_file} {input_file}";
|
||||
else if(tool == KnownShaderTool::fxc)
|
||||
return "/Fo {output_file} {input_file}";
|
||||
else if(tool == KnownShaderTool::slangSPIRV || tool == KnownShaderTool::slangDXIL)
|
||||
return "-o {output_file} {input_file}";
|
||||
|
||||
return rdcstr();
|
||||
}
|
||||
|
||||
@@ -33,6 +33,11 @@ static const QString glsl_stage4[arraydim<ShaderStage>()] = {
|
||||
lit("frag"), lit("comp"), lit("task"), lit("mesh"),
|
||||
};
|
||||
|
||||
static const QString full_stage[arraydim<ShaderStage>()] = {
|
||||
lit("vertex"), lit("hull"), lit("domain"), lit("geometry"),
|
||||
lit("pixel"), lit("compute"), lit("amplification"), lit("mesh"),
|
||||
};
|
||||
|
||||
static const QString hlsl_stage2[arraydim<ShaderStage>()] = {
|
||||
lit("vs"), lit("hs"), lit("ds"), lit("gs"), lit("ps"), lit("cs"), lit("as"), lit("ms"),
|
||||
};
|
||||
@@ -284,6 +289,8 @@ ShaderToolOutput ShaderProcessingTool::DisassembleShader(QWidget *window,
|
||||
arg.replace(0, 13, glsl_stage4[int(shaderDetails->stage)]);
|
||||
if(arg.left(13) == lit("{hlsl_stage2}"))
|
||||
arg.replace(0, 13, hlsl_stage2[int(shaderDetails->stage)]);
|
||||
if(arg.left(12) == lit("{full_stage}"))
|
||||
arg.replace(0, 12, full_stage[int(stage)]);
|
||||
if(arg.left(11) == lit("{spirv_ver}"))
|
||||
arg.replace(0, 11, spirvVer);
|
||||
if(arg.left(12) == lit("{vulkan_ver}"))
|
||||
@@ -342,6 +349,8 @@ ShaderToolOutput ShaderProcessingTool::CompileShader(QWidget *window, rdcstr sou
|
||||
arg.replace(0, 13, glsl_stage4[int(stage)]);
|
||||
if(arg.left(13) == lit("{hlsl_stage2}"))
|
||||
arg.replace(0, 13, hlsl_stage2[int(stage)]);
|
||||
if(arg.left(12) == lit("{full_stage}"))
|
||||
arg.replace(0, 12, full_stage[int(stage)]);
|
||||
if(arg.left(11) == lit("{spirv_ver}"))
|
||||
arg.replace(0, 11, spirvVer);
|
||||
if(arg.left(12) == lit("{vulkan_ver}"))
|
||||
|
||||
Reference in New Issue
Block a user