diff options
Diffstat (limited to 'src/core/hw/gpu.h')
| -rw-r--r-- | src/core/hw/gpu.h | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/src/core/hw/gpu.h b/src/core/hw/gpu.h index 9fd694f65..df9aa0d71 100644 --- a/src/core/hw/gpu.h +++ b/src/core/hw/gpu.h | |||
| @@ -84,9 +84,35 @@ struct Regs { | |||
| 84 | 84 | ||
| 85 | struct { | 85 | struct { |
| 86 | u32 address_start; | 86 | u32 address_start; |
| 87 | u32 address_end; // ? | 87 | u32 address_end; |
| 88 | u32 size; | 88 | |
| 89 | u32 value; // ? | 89 | union { |
| 90 | u32 value_32bit; | ||
| 91 | |||
| 92 | BitField<0, 16, u32> value_16bit; | ||
| 93 | |||
| 94 | // TODO: Verify component order | ||
| 95 | BitField< 0, 8, u32> value_24bit_r; | ||
| 96 | BitField< 8, 8, u32> value_24bit_g; | ||
| 97 | BitField<16, 8, u32> value_24bit_b; | ||
| 98 | }; | ||
| 99 | |||
| 100 | union { | ||
| 101 | u32 control; | ||
| 102 | |||
| 103 | // Setting this field to 1 triggers the memory fill. | ||
| 104 | // This field also acts as a status flag, and gets reset to 0 upon completion. | ||
| 105 | BitField<0, 1, u32> trigger; | ||
| 106 | |||
| 107 | // Set to 1 upon completion. | ||
| 108 | BitField<0, 1, u32> finished; | ||
| 109 | |||
| 110 | // 0: fill with 16- or 32-bit wide values; 1: fill with 24-bit wide values | ||
| 111 | BitField<8, 1, u32> fill_24bit; | ||
| 112 | |||
| 113 | // 0: fill with 16-bit wide values; 1: fill with 32-bit wide values | ||
| 114 | BitField<9, 1, u32> fill_32bit; | ||
| 115 | }; | ||
| 90 | 116 | ||
| 91 | inline u32 GetStartAddress() const { | 117 | inline u32 GetStartAddress() const { |
| 92 | return DecodeAddressRegister(address_start); | 118 | return DecodeAddressRegister(address_start); |