@@ -24,7 +24,7 @@ using namespace nbl;
24
24
using namespace nbl ::asset;
25
25
using Microsoft::WRL::ComPtr;
26
26
27
- static constexpr const wchar_t * SHADER_MODEL_PROFILE = L" XX_6_7 " ;
27
+ static constexpr const wchar_t * SHADER_MODEL_PROFILE = L" XX_6_8 " ;
28
28
static const wchar_t * ShaderStageToString (asset::IShader::E_SHADER_STAGE stage) {
29
29
switch (stage)
30
30
{
@@ -128,14 +128,15 @@ static void try_upgrade_hlsl_version(std::vector<std::wstring>& arguments, syste
128
128
129
129
static void try_upgrade_shader_stage (std::vector<std::wstring>& arguments, asset::IShader::E_SHADER_STAGE shaderStageOverrideFromPragma, system::logger_opt_ptr& logger) {
130
130
131
- constexpr int MajorReqVersion = 6 , MinorReqVersion = 7 ;
131
+ constexpr int MajorReqVersion = 6 , MinorReqVersion = 8 ;
132
132
auto overrideStageStr = ShaderStageToString (shaderStageOverrideFromPragma);
133
133
if (shaderStageOverrideFromPragma != IShader::E_SHADER_STAGE::ESS_UNKNOWN && !overrideStageStr)
134
134
{
135
135
logger.log (" Invalid shader stage with int value '%i'.\n This value does not have a known string representation." ,
136
136
system::ILogger::ELL_ERROR, shaderStageOverrideFromPragma);
137
137
return ;
138
138
}
139
+ // still unknown, then we take value from commandline arguments (precedence: pragma > DXC specific command line > compile option)
139
140
bool setDefaultValue = true ;
140
141
auto foundShaderStageArgument = std::find (arguments.begin (), arguments.end (), L" -T" );
141
142
if (foundShaderStageArgument != arguments.end () && foundShaderStageArgument +1 != arguments.end ()) {
@@ -202,6 +203,9 @@ static void try_upgrade_shader_stage(std::vector<std::wstring>& arguments, asset
202
203
}
203
204
if (setDefaultValue)
204
205
{
206
+ // if stage is still not known, lets go with library
207
+ if (shaderStageOverrideFromPragma==IShader::E_SHADER_STAGE::ESS_UNKNOWN)
208
+ overrideStageStr = ShaderStageToString (hlsl::ShaderStage::ESS_ALL_OR_LIBRARY);
205
209
// in case of no -T
206
210
// push back default values for -T argument
207
211
// can be safely pushed to the back of argument list as output files should be evicted from args before passing to this func
@@ -379,6 +383,7 @@ std::string CHLSLCompiler::preprocessShader(std::string&& code, IShader::E_SHADE
379
383
if (context.get_hooks ().m_dxc_compile_flags_override .size () != 0 )
380
384
dxc_compile_flags_override = context.get_hooks ().m_dxc_compile_flags_override ;
381
385
386
+ // pragma overrides what we passed in
382
387
if (context.get_hooks ().m_pragmaStage != IShader::E_SHADER_STAGE::ESS_UNKNOWN)
383
388
stage = context.get_hooks ().m_pragmaStage ;
384
389
0 commit comments