diff options
Diffstat (limited to 'src/core/hw/gpu.h')
| -rw-r--r-- | src/core/hw/gpu.h | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/src/core/hw/gpu.h b/src/core/hw/gpu.h index daad506fe..2e3a9f779 100644 --- a/src/core/hw/gpu.h +++ b/src/core/hw/gpu.h | |||
| @@ -201,12 +201,14 @@ struct Regs { | |||
| 201 | u32 flags; | 201 | u32 flags; |
| 202 | 202 | ||
| 203 | BitField< 0, 1, u32> flip_vertically; // flips input data vertically | 203 | BitField< 0, 1, u32> flip_vertically; // flips input data vertically |
| 204 | BitField< 1, 1, u32> output_tiled; // Converts from linear to tiled format | 204 | BitField< 1, 1, u32> input_linear; // Converts from linear to tiled format |
| 205 | BitField< 3, 1, u32> raw_copy; // Copies the data without performing any processing | 205 | BitField< 2, 1, u32> crop_input_lines; |
| 206 | BitField< 3, 1, u32> is_texture_copy; // Copies the data without performing any processing and respecting texture copy fields | ||
| 206 | BitField< 5, 1, u32> dont_swizzle; | 207 | BitField< 5, 1, u32> dont_swizzle; |
| 207 | BitField< 8, 3, PixelFormat> input_format; | 208 | BitField< 8, 3, PixelFormat> input_format; |
| 208 | BitField<12, 3, PixelFormat> output_format; | 209 | BitField<12, 3, PixelFormat> output_format; |
| 209 | 210 | /// Uses some kind of 32x32 block swizzling mode, instead of the usual 8x8 one. | |
| 211 | BitField<16, 1, u32> block_32; // TODO(yuriks): unimplemented | ||
| 210 | BitField<24, 2, ScalingMode> scaling; // Determines the scaling mode of the transfer | 212 | BitField<24, 2, ScalingMode> scaling; // Determines the scaling mode of the transfer |
| 211 | }; | 213 | }; |
| 212 | 214 | ||
| @@ -214,10 +216,30 @@ struct Regs { | |||
| 214 | 216 | ||
| 215 | // it seems that writing to this field triggers the display transfer | 217 | // it seems that writing to this field triggers the display transfer |
| 216 | u32 trigger; | 218 | u32 trigger; |
| 219 | |||
| 220 | INSERT_PADDING_WORDS(0x1); | ||
| 221 | |||
| 222 | struct { | ||
| 223 | u32 size; | ||
| 224 | |||
| 225 | union { | ||
| 226 | u32 input_size; | ||
| 227 | |||
| 228 | BitField< 0, 16, u32> input_width; | ||
| 229 | BitField<16, 16, u32> input_gap; | ||
| 230 | }; | ||
| 231 | |||
| 232 | union { | ||
| 233 | u32 output_size; | ||
| 234 | |||
| 235 | BitField< 0, 16, u32> output_width; | ||
| 236 | BitField<16, 16, u32> output_gap; | ||
| 237 | }; | ||
| 238 | } texture_copy; | ||
| 217 | } display_transfer_config; | 239 | } display_transfer_config; |
| 218 | ASSERT_MEMBER_SIZE(display_transfer_config, 0x1c); | 240 | ASSERT_MEMBER_SIZE(display_transfer_config, 0x2c); |
| 219 | 241 | ||
| 220 | INSERT_PADDING_WORDS(0x331); | 242 | INSERT_PADDING_WORDS(0x32D); |
| 221 | 243 | ||
| 222 | struct { | 244 | struct { |
| 223 | // command list size (in bytes) | 245 | // command list size (in bytes) |