mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-07-23 10:55:45 +00:00
Shader: Implemented the predicate and mode arguments of LOP.
The mode can be used to set the predicate to true depending on the result of the logic operation. In some cases, this means discarding the result (writing it to register 0xFF (Zero)). This is used by Super Mario Odyssey.
This commit is contained in:
parent
67f7ebc21d
commit
70e99baabe
2 changed files with 39 additions and 11 deletions
|
@ -214,6 +214,11 @@ enum class FlowCondition : u64 {
|
|||
Fcsm_Tr = 0x1C, // TODO(bunnei): What is this used for?
|
||||
};
|
||||
|
||||
enum class PredicateResultMode : u64 {
|
||||
None = 0x0,
|
||||
NotZero = 0x3,
|
||||
};
|
||||
|
||||
union Instruction {
|
||||
Instruction& operator=(const Instruction& instr) {
|
||||
value = instr.value;
|
||||
|
@ -254,7 +259,7 @@ union Instruction {
|
|||
BitField<39, 1, u64> invert_a;
|
||||
BitField<40, 1, u64> invert_b;
|
||||
BitField<41, 2, LogicOperation> operation;
|
||||
BitField<44, 2, u64> unk44;
|
||||
BitField<44, 2, PredicateResultMode> pred_result_mode;
|
||||
BitField<48, 3, Pred> pred48;
|
||||
} lop;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue