Shader/DependencyCheckerVisitor: Update default config

This commit is contained in:
Jérôme Leclercq 2022-03-04 18:32:06 +01:00
parent b6cd85d6fe
commit 073f1dc434
3 changed files with 12 additions and 2 deletions

View File

@ -27,6 +27,8 @@ namespace Nz::ShaderAst
inline const UsageSet& GetUsage() const;
inline void MarkStructAsUsed(std::size_t structIndex);
inline void Process(Statement& statement);
void Process(Statement& statement, const Config& config);
@ -37,7 +39,7 @@ namespace Nz::ShaderAst
struct Config
{
ShaderStageTypeFlags usedShaderStages = ShaderStageType_All;
ShaderStageTypeFlags usedShaderStages;
};
struct UsageSet

View File

@ -12,6 +12,11 @@ namespace Nz::ShaderAst
return m_resolvedUsage;
}
inline void DependencyCheckerVisitor::MarkStructAsUsed(std::size_t structIndex)
{
m_globalUsage.usedStructs.UnboundedSet(structIndex);
}
inline void DependencyCheckerVisitor::Process(Statement& statement)
{
Config defaultConfig;

View File

@ -522,8 +522,11 @@ namespace Nz
{
ShaderAst::StatementPtr tempAst;
ShaderAst::DependencyCheckerVisitor::Config dependencyConfig;
dependencyConfig.usedShaderStages = ShaderStageType_All;
tempAst = ShaderAst::PropagateConstants(*targetAst);
optimizedAst = ShaderAst::EliminateUnusedPass(*tempAst);
optimizedAst = ShaderAst::EliminateUnusedPass(*tempAst, dependencyConfig);
targetAst = optimizedAst.get();
}