diff options
Diffstat (limited to 'src/video_core/shader')
-rw-r--r-- | src/video_core/shader/glsl_decompiler.cpp | 266 |
1 files changed, 133 insertions, 133 deletions
diff --git a/src/video_core/shader/glsl_decompiler.cpp b/src/video_core/shader/glsl_decompiler.cpp index 9b443e61a..2ee8cefab 100644 --- a/src/video_core/shader/glsl_decompiler.cpp +++ b/src/video_core/shader/glsl_decompiler.cpp @@ -1295,139 +1295,139 @@ private: } static constexpr OperationDecompilersArray operation_decompilers = { - &Assign, - &AssignComposite, - - &Composite, - &Select, - - &Add<Type::Float>, - &Mul<Type::Float>, - &Div<Type::Float>, - &Fma<Type::Float>, - &Negate<Type::Float>, - &Absolute<Type::Float>, - &FClamp, - &Min<Type::Float>, - &Max<Type::Float>, - &FCos, - &FSin, - &FExp2, - &FLog2, - &FInverseSqrt, - &FSqrt, - &FRoundEven, - &FFloor, - &FCeil, - &FTrunc, - &FCastInteger<Type::Int>, - &FCastInteger<Type::Uint>, - - &Add<Type::Int>, - &Mul<Type::Int>, - &Div<Type::Int>, - &Negate<Type::Int>, - &Absolute<Type::Int>, - &Min<Type::Int>, - &Max<Type::Int>, - - &ICastFloat, - &ICastUnsigned, - &LogicalShiftLeft<Type::Int>, - &ILogicalShiftRight, - &IArithmeticShiftRight, - &BitwiseAnd<Type::Int>, - &BitwiseOr<Type::Int>, - &BitwiseXor<Type::Int>, - &BitwiseNot<Type::Int>, - &BitfieldInsert<Type::Int>, - &BitCount<Type::Int>, - - &Add<Type::Uint>, - &Mul<Type::Uint>, - &Div<Type::Uint>, - &Min<Type::Uint>, - &Max<Type::Uint>, - &UCastFloat, - &UCastSigned, - &LogicalShiftLeft<Type::Uint>, - &UShiftRight, - &UShiftRight, - &BitwiseAnd<Type::Uint>, - &BitwiseOr<Type::Uint>, - &BitwiseXor<Type::Uint>, - &BitwiseNot<Type::Uint>, - &BitfieldInsert<Type::Uint>, - &BitCount<Type::Uint>, - - &Add<Type::HalfFloat>, - &Mul<Type::HalfFloat>, - &Fma<Type::HalfFloat>, - &Absolute<Type::HalfFloat>, - &HNegate, - &HMergeF32, - &HMergeH0, - &HMergeH1, - - &LogicalAssign, - &LogicalAnd, - &LogicalOr, - &LogicalXor, - &LogicalNegate, - &LogicalPick2, - &LogicalAll2, - &LogicalAny2, - - &LogicalLessThan<Type::Float>, - &LogicalEqual<Type::Float>, - &LogicalLessEqual<Type::Float>, - &LogicalGreaterThan<Type::Float>, - &LogicalNotEqual<Type::Float>, - &LogicalGreaterEqual<Type::Float>, - &LogicalFIsNan, - - &LogicalLessThan<Type::Int>, - &LogicalEqual<Type::Int>, - &LogicalLessEqual<Type::Int>, - &LogicalGreaterThan<Type::Int>, - &LogicalNotEqual<Type::Int>, - &LogicalGreaterEqual<Type::Int>, - - &LogicalLessThan<Type::Uint>, - &LogicalEqual<Type::Uint>, - &LogicalLessEqual<Type::Uint>, - &LogicalGreaterThan<Type::Uint>, - &LogicalNotEqual<Type::Uint>, - &LogicalGreaterEqual<Type::Uint>, - - &Logical2HLessThan, - &Logical2HEqual, - &Logical2HLessEqual, - &Logical2HGreaterThan, - &Logical2HNotEqual, - &Logical2HGreaterEqual, - - &F4Texture, - &F4TextureLod, - &F4TextureGather, - &F4TextureQueryDimensions, - &F4TextureQueryLod, - &F4TexelFetch, - - &Ipa, - - &Bra, - &PushFlowStack, // Ssy - &PushFlowStack, // Brk - &PopFlowStack, // Sync - &PopFlowStack, // Brk - &Exit, - &Kil, - - &EmitVertex, - &EndPrimitive, - - &YNegate, + &GLSLDecompiler::Assign, + &GLSLDecompiler::AssignComposite, + + &GLSLDecompiler::Composite, + &GLSLDecompiler::Select, + + &GLSLDecompiler::Add<Type::Float>, + &GLSLDecompiler::Mul<Type::Float>, + &GLSLDecompiler::Div<Type::Float>, + &GLSLDecompiler::Fma<Type::Float>, + &GLSLDecompiler::Negate<Type::Float>, + &GLSLDecompiler::Absolute<Type::Float>, + &GLSLDecompiler::FClamp, + &GLSLDecompiler::Min<Type::Float>, + &GLSLDecompiler::Max<Type::Float>, + &GLSLDecompiler::FCos, + &GLSLDecompiler::FSin, + &GLSLDecompiler::FExp2, + &GLSLDecompiler::FLog2, + &GLSLDecompiler::FInverseSqrt, + &GLSLDecompiler::FSqrt, + &GLSLDecompiler::FRoundEven, + &GLSLDecompiler::FFloor, + &GLSLDecompiler::FCeil, + &GLSLDecompiler::FTrunc, + &GLSLDecompiler::FCastInteger<Type::Int>, + &GLSLDecompiler::FCastInteger<Type::Uint>, + + &GLSLDecompiler::Add<Type::Int>, + &GLSLDecompiler::Mul<Type::Int>, + &GLSLDecompiler::Div<Type::Int>, + &GLSLDecompiler::Negate<Type::Int>, + &GLSLDecompiler::Absolute<Type::Int>, + &GLSLDecompiler::Min<Type::Int>, + &GLSLDecompiler::Max<Type::Int>, + + &GLSLDecompiler::ICastFloat, + &GLSLDecompiler::ICastUnsigned, + &GLSLDecompiler::LogicalShiftLeft<Type::Int>, + &GLSLDecompiler::ILogicalShiftRight, + &GLSLDecompiler::IArithmeticShiftRight, + &GLSLDecompiler::BitwiseAnd<Type::Int>, + &GLSLDecompiler::BitwiseOr<Type::Int>, + &GLSLDecompiler::BitwiseXor<Type::Int>, + &GLSLDecompiler::BitwiseNot<Type::Int>, + &GLSLDecompiler::BitfieldInsert<Type::Int>, + &GLSLDecompiler::BitCount<Type::Int>, + + &GLSLDecompiler::Add<Type::Uint>, + &GLSLDecompiler::Mul<Type::Uint>, + &GLSLDecompiler::Div<Type::Uint>, + &GLSLDecompiler::Min<Type::Uint>, + &GLSLDecompiler::Max<Type::Uint>, + &GLSLDecompiler::UCastFloat, + &GLSLDecompiler::UCastSigned, + &GLSLDecompiler::LogicalShiftLeft<Type::Uint>, + &GLSLDecompiler::UShiftRight, + &GLSLDecompiler::UShiftRight, + &GLSLDecompiler::BitwiseAnd<Type::Uint>, + &GLSLDecompiler::BitwiseOr<Type::Uint>, + &GLSLDecompiler::BitwiseXor<Type::Uint>, + &GLSLDecompiler::BitwiseNot<Type::Uint>, + &GLSLDecompiler::BitfieldInsert<Type::Uint>, + &GLSLDecompiler::BitCount<Type::Uint>, + + &GLSLDecompiler::Add<Type::HalfFloat>, + &GLSLDecompiler::Mul<Type::HalfFloat>, + &GLSLDecompiler::Fma<Type::HalfFloat>, + &GLSLDecompiler::Absolute<Type::HalfFloat>, + &GLSLDecompiler::HNegate, + &GLSLDecompiler::HMergeF32, + &GLSLDecompiler::HMergeH0, + &GLSLDecompiler::HMergeH1, + + &GLSLDecompiler::LogicalAssign, + &GLSLDecompiler::LogicalAnd, + &GLSLDecompiler::LogicalOr, + &GLSLDecompiler::LogicalXor, + &GLSLDecompiler::LogicalNegate, + &GLSLDecompiler::LogicalPick2, + &GLSLDecompiler::LogicalAll2, + &GLSLDecompiler::LogicalAny2, + + &GLSLDecompiler::LogicalLessThan<Type::Float>, + &GLSLDecompiler::LogicalEqual<Type::Float>, + &GLSLDecompiler::LogicalLessEqual<Type::Float>, + &GLSLDecompiler::LogicalGreaterThan<Type::Float>, + &GLSLDecompiler::LogicalNotEqual<Type::Float>, + &GLSLDecompiler::LogicalGreaterEqual<Type::Float>, + &GLSLDecompiler::LogicalFIsNan, + + &GLSLDecompiler::LogicalLessThan<Type::Int>, + &GLSLDecompiler::LogicalEqual<Type::Int>, + &GLSLDecompiler::LogicalLessEqual<Type::Int>, + &GLSLDecompiler::LogicalGreaterThan<Type::Int>, + &GLSLDecompiler::LogicalNotEqual<Type::Int>, + &GLSLDecompiler::LogicalGreaterEqual<Type::Int>, + + &GLSLDecompiler::LogicalLessThan<Type::Uint>, + &GLSLDecompiler::LogicalEqual<Type::Uint>, + &GLSLDecompiler::LogicalLessEqual<Type::Uint>, + &GLSLDecompiler::LogicalGreaterThan<Type::Uint>, + &GLSLDecompiler::LogicalNotEqual<Type::Uint>, + &GLSLDecompiler::LogicalGreaterEqual<Type::Uint>, + + &GLSLDecompiler::Logical2HLessThan, + &GLSLDecompiler::Logical2HEqual, + &GLSLDecompiler::Logical2HLessEqual, + &GLSLDecompiler::Logical2HGreaterThan, + &GLSLDecompiler::Logical2HNotEqual, + &GLSLDecompiler::Logical2HGreaterEqual, + + &GLSLDecompiler::F4Texture, + &GLSLDecompiler::F4TextureLod, + &GLSLDecompiler::F4TextureGather, + &GLSLDecompiler::F4TextureQueryDimensions, + &GLSLDecompiler::F4TextureQueryLod, + &GLSLDecompiler::F4TexelFetch, + + &GLSLDecompiler::Ipa, + + &GLSLDecompiler::Bra, + &GLSLDecompiler::PushFlowStack, // Ssy + &GLSLDecompiler::PushFlowStack, // Brk + &GLSLDecompiler::PopFlowStack, // Sync + &GLSLDecompiler::PopFlowStack, // Brk + &GLSLDecompiler::Exit, + &GLSLDecompiler::Kil, + + &GLSLDecompiler::EmitVertex, + &GLSLDecompiler::EndPrimitive, + + &GLSLDecompiler::YNegate, }; std::string GetRegister(u32 index) const { |