shader_bytecode: Add AL2P decoding
This commit is contained in:
parent
75a8b304d4
commit
7632a7d6d2
|
@ -499,6 +499,11 @@ enum class SystemVariable : u64 {
|
||||||
CircularQueueEntryAddressHigh = 0x63,
|
CircularQueueEntryAddressHigh = 0x63,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum class PhysicalAttributeDirection : u64 {
|
||||||
|
Input = 0,
|
||||||
|
Output = 1,
|
||||||
|
};
|
||||||
|
|
||||||
union Instruction {
|
union Instruction {
|
||||||
Instruction& operator=(const Instruction& instr) {
|
Instruction& operator=(const Instruction& instr) {
|
||||||
value = instr.value;
|
value = instr.value;
|
||||||
|
@ -811,6 +816,12 @@ union Instruction {
|
||||||
BitField<20, 24, s64> immediate_offset;
|
BitField<20, 24, s64> immediate_offset;
|
||||||
} stg;
|
} stg;
|
||||||
|
|
||||||
|
union {
|
||||||
|
BitField<32, 1, PhysicalAttributeDirection> direction;
|
||||||
|
BitField<47, 3, AttributeSize> size;
|
||||||
|
BitField<20, 11, u64> address;
|
||||||
|
} al2p;
|
||||||
|
|
||||||
union {
|
union {
|
||||||
BitField<0, 3, u64> pred0;
|
BitField<0, 3, u64> pred0;
|
||||||
BitField<3, 3, u64> pred3;
|
BitField<3, 3, u64> pred3;
|
||||||
|
@ -1374,8 +1385,9 @@ public:
|
||||||
ST_A,
|
ST_A,
|
||||||
ST_L,
|
ST_L,
|
||||||
ST_S,
|
ST_S,
|
||||||
LDG, // Load from global memory
|
LDG, // Load from global memory
|
||||||
STG, // Store in global memory
|
STG, // Store in global memory
|
||||||
|
AL2P, // Transforms attribute memory into physical memory
|
||||||
TEX,
|
TEX,
|
||||||
TEX_B, // Texture Load Bindless
|
TEX_B, // Texture Load Bindless
|
||||||
TXQ, // Texture Query
|
TXQ, // Texture Query
|
||||||
|
@ -1646,6 +1658,7 @@ private:
|
||||||
INST("1110111101010---", Id::ST_L, Type::Memory, "ST_L"),
|
INST("1110111101010---", Id::ST_L, Type::Memory, "ST_L"),
|
||||||
INST("1110111011010---", Id::LDG, Type::Memory, "LDG"),
|
INST("1110111011010---", Id::LDG, Type::Memory, "LDG"),
|
||||||
INST("1110111011011---", Id::STG, Type::Memory, "STG"),
|
INST("1110111011011---", Id::STG, Type::Memory, "STG"),
|
||||||
|
INST("1110111110100---", Id::AL2P, Type::Memory, "AL2P"),
|
||||||
INST("110000----111---", Id::TEX, Type::Texture, "TEX"),
|
INST("110000----111---", Id::TEX, Type::Texture, "TEX"),
|
||||||
INST("1101111010111---", Id::TEX_B, Type::Texture, "TEX_B"),
|
INST("1101111010111---", Id::TEX_B, Type::Texture, "TEX_B"),
|
||||||
INST("1101111101001---", Id::TXQ, Type::Texture, "TXQ"),
|
INST("1101111101001---", Id::TXQ, Type::Texture, "TXQ"),
|
||||||
|
|
Reference in New Issue