Shader/DependencyCheckerVisitor: Update default config
This commit is contained in:
parent
b6cd85d6fe
commit
073f1dc434
|
|
@ -27,6 +27,8 @@ namespace Nz::ShaderAst
|
||||||
|
|
||||||
inline const UsageSet& GetUsage() const;
|
inline const UsageSet& GetUsage() const;
|
||||||
|
|
||||||
|
inline void MarkStructAsUsed(std::size_t structIndex);
|
||||||
|
|
||||||
inline void Process(Statement& statement);
|
inline void Process(Statement& statement);
|
||||||
void Process(Statement& statement, const Config& config);
|
void Process(Statement& statement, const Config& config);
|
||||||
|
|
||||||
|
|
@ -37,7 +39,7 @@ namespace Nz::ShaderAst
|
||||||
|
|
||||||
struct Config
|
struct Config
|
||||||
{
|
{
|
||||||
ShaderStageTypeFlags usedShaderStages = ShaderStageType_All;
|
ShaderStageTypeFlags usedShaderStages;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct UsageSet
|
struct UsageSet
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,11 @@ namespace Nz::ShaderAst
|
||||||
return m_resolvedUsage;
|
return m_resolvedUsage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline void DependencyCheckerVisitor::MarkStructAsUsed(std::size_t structIndex)
|
||||||
|
{
|
||||||
|
m_globalUsage.usedStructs.UnboundedSet(structIndex);
|
||||||
|
}
|
||||||
|
|
||||||
inline void DependencyCheckerVisitor::Process(Statement& statement)
|
inline void DependencyCheckerVisitor::Process(Statement& statement)
|
||||||
{
|
{
|
||||||
Config defaultConfig;
|
Config defaultConfig;
|
||||||
|
|
|
||||||
|
|
@ -522,8 +522,11 @@ namespace Nz
|
||||||
{
|
{
|
||||||
ShaderAst::StatementPtr tempAst;
|
ShaderAst::StatementPtr tempAst;
|
||||||
|
|
||||||
|
ShaderAst::DependencyCheckerVisitor::Config dependencyConfig;
|
||||||
|
dependencyConfig.usedShaderStages = ShaderStageType_All;
|
||||||
|
|
||||||
tempAst = ShaderAst::PropagateConstants(*targetAst);
|
tempAst = ShaderAst::PropagateConstants(*targetAst);
|
||||||
optimizedAst = ShaderAst::EliminateUnusedPass(*tempAst);
|
optimizedAst = ShaderAst::EliminateUnusedPass(*tempAst, dependencyConfig);
|
||||||
|
|
||||||
targetAst = optimizedAst.get();
|
targetAst = optimizedAst.get();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue