Merge commit '42a14079f2dd41f01048e9169daac282802b98c1' into daimini/gitflow_211027_o3de
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
This commit is contained in:
@@ -23,8 +23,8 @@
|
||||
"DrawList" : "forward",
|
||||
|
||||
"CompilerHints" : {
|
||||
"DxcDisableOptimizations" : false,
|
||||
"DxcGenerateDebugInfo" : false
|
||||
"DisableOptimizations" : false,
|
||||
"GenerateDebugInfo" : false
|
||||
},
|
||||
|
||||
"ProgramSettings":
|
||||
|
||||
@@ -57,12 +57,19 @@ namespace AZ
|
||||
AZStd::string m_azslcAdditionalFreeArguments;
|
||||
// note: if you add new sort of arguments here, don't forget to update HasDifferentAzslcArguments()
|
||||
|
||||
//! DXC
|
||||
bool m_dxcDisableWarnings = false;
|
||||
bool m_dxcWarningAsError = false;
|
||||
bool m_dxcDisableOptimizations = false;
|
||||
bool m_dxcGenerateDebugInfo = false;
|
||||
uint8_t m_dxcOptimizationLevel = LevelUnset;
|
||||
//! Remark: To the user, the following parameters are exposed without the
|
||||
//! "Dxc" prefix because these are common options for the "main" compiler
|
||||
//! for the given RHI. At the moment the only "main" compiler is Dxc, but in
|
||||
//! the future AZSLc may transpile from AZSL to some other proprietary language
|
||||
//! and in that case the "main" compiler won't be DXC
|
||||
bool m_disableWarnings = false;
|
||||
bool m_warningAsError = false;
|
||||
bool m_disableOptimizations = false;
|
||||
bool m_generateDebugInfo = false;
|
||||
uint8_t m_optimizationLevel = LevelUnset;
|
||||
//! "DxcAdditionalFreeArguments" keeps the "Dxc" prefix because these arguments
|
||||
//! are specific to DXC, and it will be relevant only if DXC is the "main" compiler
|
||||
//! for a given RHI, otherwise this parameter won't matter.
|
||||
AZStd::string m_dxcAdditionalFreeArguments;
|
||||
|
||||
//! both
|
||||
|
||||
@@ -33,17 +33,17 @@ namespace AZ
|
||||
RegisterEnumerators<MatrixOrder>(serializeContext);
|
||||
|
||||
serializeContext->Class<ShaderCompilerArguments>()
|
||||
->Version(2)
|
||||
->Version(3)
|
||||
->Field("AzslcWarningLevel", &ShaderCompilerArguments::m_azslcWarningLevel)
|
||||
->Field("AzslcWarningAsError", &ShaderCompilerArguments::m_azslcWarningAsError)
|
||||
->Field("AzslcAdditionalFreeArguments", &ShaderCompilerArguments::m_azslcAdditionalFreeArguments)
|
||||
->Field("DxcDisableWarnings", &ShaderCompilerArguments::m_dxcDisableWarnings)
|
||||
->Field("DxcWarningAsError", &ShaderCompilerArguments::m_dxcWarningAsError)
|
||||
->Field("DxcDisableOptimizations", &ShaderCompilerArguments::m_dxcDisableOptimizations)
|
||||
->Field("DxcGenerateDebugInfo", &ShaderCompilerArguments::m_dxcGenerateDebugInfo)
|
||||
->Field("DxcOptimizationLevel", &ShaderCompilerArguments::m_dxcOptimizationLevel)
|
||||
->Field("DxcAdditionalFreeArguments", &ShaderCompilerArguments::m_dxcAdditionalFreeArguments)
|
||||
->Field("DisableWarnings", &ShaderCompilerArguments::m_disableWarnings)
|
||||
->Field("WarningAsError", &ShaderCompilerArguments::m_warningAsError)
|
||||
->Field("DisableOptimizations", &ShaderCompilerArguments::m_disableOptimizations)
|
||||
->Field("GenerateDebugInfo", &ShaderCompilerArguments::m_generateDebugInfo)
|
||||
->Field("OptimizationLevel", &ShaderCompilerArguments::m_optimizationLevel)
|
||||
->Field("DefaultMatrixOrder", &ShaderCompilerArguments::m_defaultMatrixOrder)
|
||||
->Field("DxcAdditionalFreeArguments", &ShaderCompilerArguments::m_dxcAdditionalFreeArguments)
|
||||
;
|
||||
}
|
||||
}
|
||||
@@ -62,13 +62,13 @@ namespace AZ
|
||||
}
|
||||
m_azslcWarningAsError = m_azslcWarningAsError || right.m_azslcWarningAsError;
|
||||
m_azslcAdditionalFreeArguments = CommandLineArgumentUtils::MergeCommandLineArguments(m_azslcAdditionalFreeArguments, right.m_azslcAdditionalFreeArguments);
|
||||
m_dxcDisableWarnings = m_dxcDisableWarnings || right.m_dxcDisableWarnings;
|
||||
m_dxcWarningAsError = m_dxcWarningAsError || right.m_dxcWarningAsError;
|
||||
m_dxcDisableOptimizations = m_dxcDisableOptimizations || right.m_dxcDisableOptimizations;
|
||||
m_dxcGenerateDebugInfo = m_dxcGenerateDebugInfo || right.m_dxcGenerateDebugInfo;
|
||||
if (right.m_dxcOptimizationLevel != LevelUnset)
|
||||
m_disableWarnings = m_disableWarnings || right.m_disableWarnings;
|
||||
m_warningAsError = m_warningAsError || right.m_warningAsError;
|
||||
m_disableOptimizations = m_disableOptimizations || right.m_disableOptimizations;
|
||||
m_generateDebugInfo = m_generateDebugInfo || right.m_generateDebugInfo;
|
||||
if (right.m_optimizationLevel != LevelUnset)
|
||||
{
|
||||
m_dxcOptimizationLevel = right.m_dxcOptimizationLevel;
|
||||
m_optimizationLevel = right.m_optimizationLevel;
|
||||
}
|
||||
m_dxcAdditionalFreeArguments = CommandLineArgumentUtils::MergeCommandLineArguments(m_dxcAdditionalFreeArguments, right.m_dxcAdditionalFreeArguments);
|
||||
if (right.m_defaultMatrixOrder != MatrixOrder::Default)
|
||||
@@ -131,21 +131,21 @@ namespace AZ
|
||||
AZStd::string ShaderCompilerArguments::MakeAdditionalDxcCommandLineString() const
|
||||
{
|
||||
AZStd::string arguments;
|
||||
if (m_dxcDisableWarnings)
|
||||
if (m_disableWarnings)
|
||||
{
|
||||
arguments += " -no-warnings";
|
||||
}
|
||||
else if (m_dxcWarningAsError)
|
||||
else if (m_warningAsError)
|
||||
{
|
||||
arguments += " -WX";
|
||||
}
|
||||
if (m_dxcDisableOptimizations)
|
||||
if (m_disableOptimizations)
|
||||
{
|
||||
arguments += " -Od";
|
||||
}
|
||||
else if (m_dxcOptimizationLevel <= 3)
|
||||
else if (m_optimizationLevel <= 3)
|
||||
{
|
||||
arguments = " -O" + AZStd::to_string(m_dxcOptimizationLevel);
|
||||
arguments = " -O" + AZStd::to_string(m_optimizationLevel);
|
||||
}
|
||||
if (m_defaultMatrixOrder == MatrixOrder::Column)
|
||||
{
|
||||
|
||||
@@ -114,7 +114,7 @@ namespace AZ
|
||||
}
|
||||
}
|
||||
|
||||
if (shaderCompilerArguments.m_dxcDisableOptimizations)
|
||||
if (shaderCompilerArguments.m_disableOptimizations)
|
||||
{
|
||||
// When optimizations are disabled (-Od), all resources declared in the source file are available to all stages
|
||||
// (when enabled only the resources which are referenced in a stage are bound to the stage)
|
||||
@@ -195,7 +195,7 @@ namespace AZ
|
||||
|
||||
bool ShaderPlatformInterface::BuildHasDebugInfo(const RHI::ShaderCompilerArguments& shaderCompilerArguments) const
|
||||
{
|
||||
return shaderCompilerArguments.m_dxcGenerateDebugInfo;
|
||||
return shaderCompilerArguments.m_generateDebugInfo;
|
||||
}
|
||||
|
||||
const char* ShaderPlatformInterface::GetAzslHeader(const AssetBuilderSDK::PlatformInfo& platform) const
|
||||
|
||||
@@ -167,7 +167,7 @@ namespace AZ
|
||||
|
||||
bool ShaderPlatformInterface::BuildHasDebugInfo(const RHI::ShaderCompilerArguments& shaderCompilerArguments) const
|
||||
{
|
||||
return shaderCompilerArguments.m_dxcGenerateDebugInfo;
|
||||
return shaderCompilerArguments.m_generateDebugInfo;
|
||||
}
|
||||
|
||||
const char* ShaderPlatformInterface::GetAzslHeader(const AssetBuilderSDK::PlatformInfo& platform) const
|
||||
|
||||
@@ -109,7 +109,7 @@ namespace AZ
|
||||
|
||||
bool ShaderPlatformInterface::BuildHasDebugInfo(const RHI::ShaderCompilerArguments& shaderCompilerArguments) const
|
||||
{
|
||||
return shaderCompilerArguments.m_dxcGenerateDebugInfo;
|
||||
return shaderCompilerArguments.m_generateDebugInfo;
|
||||
}
|
||||
|
||||
const char* ShaderPlatformInterface::GetAzslHeader(const AssetBuilderSDK::PlatformInfo& platform) const
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
},
|
||||
|
||||
"CompilerHints" : {
|
||||
"DxcDisableOptimizations" : false
|
||||
"DisableOptimizations" : false
|
||||
},
|
||||
|
||||
"ProgramSettings":
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
},
|
||||
|
||||
"CompilerHints" : {
|
||||
"DxcDisableOptimizations" : false
|
||||
"DisableOptimizations" : false
|
||||
},
|
||||
|
||||
"ProgramSettings":
|
||||
|
||||
Reference in New Issue
Block a user