@@ -1103,6 +1103,8 @@ void ShaderProgramBase::init(const IShaderProgram::Desc& inDesc)
1103
1103
1104
1104
Result ShaderProgramBase::compileShaders (RendererBase* device)
1105
1105
{
1106
+ // Check target type from RenderBase device
1107
+ auto compileTarget = device->slangContext .compileTarget ;
1106
1108
// For a fully specialized program, read and store its kernel code in `shaderProgram`.
1107
1109
auto compileShader = [&](slang::EntryPointReflection* entryPointInfo,
1108
1110
slang::IComponentType* entryPointComponent,
@@ -1111,13 +1113,13 @@ Result ShaderProgramBase::compileShaders(RendererBase* device)
1111
1113
auto stage = entryPointInfo->getStage ();
1112
1114
List<ComPtr<ISlangBlob>> kernelCodes;
1113
1115
{
1114
- ComPtr<ISlangBlob> spirv ;
1116
+ ComPtr<ISlangBlob> downstreamIR ;
1115
1117
ComPtr<ISlangBlob> diagnostics;
1116
1118
auto compileResult = device->getEntryPointCodeFromShaderCache (
1117
1119
entryPointComponent,
1118
1120
entryPointIndex,
1119
1121
0 ,
1120
- spirv .writeRef (),
1122
+ downstreamIR .writeRef (),
1121
1123
diagnostics.writeRef ());
1122
1124
if (diagnostics)
1123
1125
{
@@ -1129,7 +1131,7 @@ Result ShaderProgramBase::compileShaders(RendererBase* device)
1129
1131
DebugMessageSource::Slang,
1130
1132
(char *)diagnostics->getBufferPointer ());
1131
1133
}
1132
- kernelCodes.add (spirv );
1134
+ kernelCodes.add (downstreamIR );
1133
1135
}
1134
1136
1135
1137
// If target precompilation was used, kernelCode may only represent the
@@ -1141,17 +1143,22 @@ Result ShaderProgramBase::compileShaders(RendererBase* device)
1141
1143
(void **)componentPrecompileService.writeRef ()) == SLANG_OK)
1142
1144
{
1143
1145
SlangInt dependencyCount = componentPrecompileService->getModuleDependencyCount ();
1146
+ printf (" There are %d dependencies\n " , dependencyCount);
1144
1147
if (dependencyCount > 0 )
1145
1148
{
1146
1149
for (int dependencyIndex = 0 ; dependencyIndex < dependencyCount; dependencyIndex++)
1147
1150
{
1148
1151
ComPtr<slang::IModule> dependencyModule;
1149
1152
{
1150
1153
ComPtr<slang::IBlob> diagnosticsBlob;
1154
+ printf (" dependency %d\n " , dependencyIndex);
1155
+ fflush (stdout);
1151
1156
auto result = componentPrecompileService->getModuleDependency (
1152
1157
dependencyIndex,
1153
1158
dependencyModule.writeRef (),
1154
1159
diagnosticsBlob.writeRef ());
1160
+ printf (" not skippt get. did nto crash yet\n " );
1161
+ fflush (stdout);
1155
1162
if (diagnosticsBlob)
1156
1163
{
1157
1164
DebugMessageType msgType = DebugMessageType::Warning;
@@ -1165,7 +1172,7 @@ Result ShaderProgramBase::compileShaders(RendererBase* device)
1165
1172
SLANG_RETURN_ON_FAIL (result);
1166
1173
}
1167
1174
1168
- ComPtr<slang::IBlob> spirv ;
1175
+ ComPtr<slang::IBlob> downstreamIR ;
1169
1176
{
1170
1177
ComPtr<slang::IBlob> diagnosticsBlob;
1171
1178
SlangResult result = SLANG_OK;
@@ -1177,12 +1184,12 @@ Result ShaderProgramBase::compileShaders(RendererBase* device)
1177
1184
{
1178
1185
ComPtr<slang::IBlob> diagnosticsBlob;
1179
1186
auto result = precompileService->getPrecompiledTargetCode (
1180
- SLANG_SPIRV ,
1181
- spirv .writeRef (),
1187
+ compileTarget ,
1188
+ downstreamIR .writeRef (),
1182
1189
diagnosticsBlob.writeRef ());
1183
1190
if (result == SLANG_OK)
1184
1191
{
1185
- kernelCodes.add (spirv );
1192
+ kernelCodes.add (downstreamIR );
1186
1193
}
1187
1194
if (diagnosticsBlob)
1188
1195
{
0 commit comments