|
|
|
@ -49,7 +49,7 @@ inline void Write(u32 addr, const T data) { |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
g_regs[index] = data; |
|
|
|
g_regs[index] = static_cast<u32>(data); |
|
|
|
|
|
|
|
switch (index) { |
|
|
|
|
|
|
|
@ -81,9 +81,9 @@ inline void Write(u32 addr, const T data) { |
|
|
|
u8* source_pointer = Memory::GetPointer(Memory::PhysicalToVirtualAddress(config.GetPhysicalInputAddress())); |
|
|
|
u8* dest_pointer = Memory::GetPointer(Memory::PhysicalToVirtualAddress(config.GetPhysicalOutputAddress())); |
|
|
|
|
|
|
|
for (int y = 0; y < config.output_height; ++y) { |
|
|
|
for (u32 y = 0; y < config.output_height; ++y) { |
|
|
|
// TODO: Why does the register seem to hold twice the framebuffer width?
|
|
|
|
for (int x = 0; x < config.output_width; ++x) { |
|
|
|
for (u32 x = 0; x < config.output_width; ++x) { |
|
|
|
struct { |
|
|
|
int r, g, b, a; |
|
|
|
} source_color = { 0, 0, 0, 0 }; |
|
|
|
@ -134,10 +134,10 @@ inline void Write(u32 addr, const T data) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
DEBUG_LOG(GPU, "DisplayTriggerTransfer: 0x%08x bytes from 0x%08x(%dx%d)-> 0x%08x(%dx%d), dst format %x", |
|
|
|
DEBUG_LOG(GPU, "DisplayTriggerTransfer: 0x%08x bytes from 0x%08x(%ux%u)-> 0x%08x(%ux%u), dst format %x", |
|
|
|
config.output_height * config.output_width * 4, |
|
|
|
config.GetPhysicalInputAddress(), (int)config.input_width, (int)config.input_height, |
|
|
|
config.GetPhysicalOutputAddress(), (int)config.output_width, (int)config.output_height, |
|
|
|
config.GetPhysicalInputAddress(), config.input_width, config.input_height, |
|
|
|
config.GetPhysicalOutputAddress(), config.output_width, config.output_height, |
|
|
|
config.output_format.Value()); |
|
|
|
} |
|
|
|
break; |
|
|
|
|