mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-15 22:54:00 +00:00
shader_ir: Avoid using static on heap-allocated objects
Using static here might be faster at runtime, but it adds a heap allocation called before main.
This commit is contained in:
parent
1f4dfb3998
commit
ae46ad48ed
1 changed files with 4 additions and 5 deletions
|
@ -219,7 +219,7 @@ Node ShaderIR::GetOperandAbsNegHalf(Node value, bool absolute, bool negate) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Node ShaderIR::GetPredicateComparisonFloat(PredCondition condition, Node op_a, Node op_b) {
|
Node ShaderIR::GetPredicateComparisonFloat(PredCondition condition, Node op_a, Node op_b) {
|
||||||
static const std::unordered_map<PredCondition, OperationCode> PredicateComparisonTable = {
|
const std::unordered_map<PredCondition, OperationCode> PredicateComparisonTable = {
|
||||||
{PredCondition::LessThan, OperationCode::LogicalFLessThan},
|
{PredCondition::LessThan, OperationCode::LogicalFLessThan},
|
||||||
{PredCondition::Equal, OperationCode::LogicalFEqual},
|
{PredCondition::Equal, OperationCode::LogicalFEqual},
|
||||||
{PredCondition::LessEqual, OperationCode::LogicalFLessEqual},
|
{PredCondition::LessEqual, OperationCode::LogicalFLessEqual},
|
||||||
|
@ -255,7 +255,7 @@ Node ShaderIR::GetPredicateComparisonFloat(PredCondition condition, Node op_a, N
|
||||||
|
|
||||||
Node ShaderIR::GetPredicateComparisonInteger(PredCondition condition, bool is_signed, Node op_a,
|
Node ShaderIR::GetPredicateComparisonInteger(PredCondition condition, bool is_signed, Node op_a,
|
||||||
Node op_b) {
|
Node op_b) {
|
||||||
static const std::unordered_map<PredCondition, OperationCode> PredicateComparisonTable = {
|
const std::unordered_map<PredCondition, OperationCode> PredicateComparisonTable = {
|
||||||
{PredCondition::LessThan, OperationCode::LogicalILessThan},
|
{PredCondition::LessThan, OperationCode::LogicalILessThan},
|
||||||
{PredCondition::Equal, OperationCode::LogicalIEqual},
|
{PredCondition::Equal, OperationCode::LogicalIEqual},
|
||||||
{PredCondition::LessEqual, OperationCode::LogicalILessEqual},
|
{PredCondition::LessEqual, OperationCode::LogicalILessEqual},
|
||||||
|
@ -285,7 +285,6 @@ Node ShaderIR::GetPredicateComparisonInteger(PredCondition condition, bool is_si
|
||||||
|
|
||||||
Node ShaderIR::GetPredicateComparisonHalf(Tegra::Shader::PredCondition condition,
|
Node ShaderIR::GetPredicateComparisonHalf(Tegra::Shader::PredCondition condition,
|
||||||
const MetaHalfArithmetic& meta, Node op_a, Node op_b) {
|
const MetaHalfArithmetic& meta, Node op_a, Node op_b) {
|
||||||
|
|
||||||
UNIMPLEMENTED_IF_MSG(condition == PredCondition::LessThanWithNan ||
|
UNIMPLEMENTED_IF_MSG(condition == PredCondition::LessThanWithNan ||
|
||||||
condition == PredCondition::NotEqualWithNan ||
|
condition == PredCondition::NotEqualWithNan ||
|
||||||
condition == PredCondition::LessEqualWithNan ||
|
condition == PredCondition::LessEqualWithNan ||
|
||||||
|
@ -293,7 +292,7 @@ Node ShaderIR::GetPredicateComparisonHalf(Tegra::Shader::PredCondition condition
|
||||||
condition == PredCondition::GreaterEqualWithNan,
|
condition == PredCondition::GreaterEqualWithNan,
|
||||||
"Unimplemented NaN comparison for half floats");
|
"Unimplemented NaN comparison for half floats");
|
||||||
|
|
||||||
static const std::unordered_map<PredCondition, OperationCode> PredicateComparisonTable = {
|
const std::unordered_map<PredCondition, OperationCode> PredicateComparisonTable = {
|
||||||
{PredCondition::LessThan, OperationCode::Logical2HLessThan},
|
{PredCondition::LessThan, OperationCode::Logical2HLessThan},
|
||||||
{PredCondition::Equal, OperationCode::Logical2HEqual},
|
{PredCondition::Equal, OperationCode::Logical2HEqual},
|
||||||
{PredCondition::LessEqual, OperationCode::Logical2HLessEqual},
|
{PredCondition::LessEqual, OperationCode::Logical2HLessEqual},
|
||||||
|
@ -316,7 +315,7 @@ Node ShaderIR::GetPredicateComparisonHalf(Tegra::Shader::PredCondition condition
|
||||||
}
|
}
|
||||||
|
|
||||||
OperationCode ShaderIR::GetPredicateCombiner(PredOperation operation) {
|
OperationCode ShaderIR::GetPredicateCombiner(PredOperation operation) {
|
||||||
static const std::unordered_map<PredOperation, OperationCode> PredicateOperationTable = {
|
const std::unordered_map<PredOperation, OperationCode> PredicateOperationTable = {
|
||||||
{PredOperation::And, OperationCode::LogicalAnd},
|
{PredOperation::And, OperationCode::LogicalAnd},
|
||||||
{PredOperation::Or, OperationCode::LogicalOr},
|
{PredOperation::Or, OperationCode::LogicalOr},
|
||||||
{PredOperation::Xor, OperationCode::LogicalXor},
|
{PredOperation::Xor, OperationCode::LogicalXor},
|
||||||
|
|
Loading…
Reference in a new issue