Shader/DependencyCheckerVisitor: Update default config
This commit is contained in:
@@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user