From 16bbc4f81b89462ff1c9e9364e0ca7ee1289c3b3 Mon Sep 17 00:00:00 2001 From: Tony Wasserka Date: Sun, 1 Jun 2014 00:08:00 +0200 Subject: GPU: Add display transfer configuration. --- src/core/hw/gpu.h | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'src/core/hw/gpu.h') diff --git a/src/core/hw/gpu.h b/src/core/hw/gpu.h index 58058d73..29eb7ed8 100644 --- a/src/core/hw/gpu.h +++ b/src/core/hw/gpu.h @@ -5,6 +5,7 @@ #pragma once #include "common/common_types.h" +#include "common/bit_field.h" namespace GPU { @@ -44,6 +45,45 @@ struct Registers { u32 framebuffer_sub_right_1; u32 framebuffer_sub_right_2; + struct { + u32 input_address; + u32 output_address; + + inline u32 GetPhysicalInputAddress() const { + return input_address * 8; + } + + inline u32 GetPhysicalOutputAddress() const { + return output_address * 8; + } + + union { + u32 output_size; + + BitField< 0, 16, u32> output_width; + BitField<16, 16, u32> output_height; + }; + + union { + u32 input_size; + + BitField< 0, 16, u32> input_width; + BitField<16, 16, u32> input_height; + }; + + union { + u32 flags; + + BitField< 0, 1, u32> flip_data; + BitField< 8, 3, u32> input_format; + BitField<12, 3, u32> output_format; + BitField<16, 1, u32> output_tiled; + }; + + u32 unknown; + u32 trigger; + } display_transfer; + u32 command_list_size; u32 command_list_address; u32 command_processing_enabled; -- cgit v1.2.3