diff options
author | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2015-05-09 09:02:32 +0200 |
---|---|---|
committer | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2015-05-09 09:02:32 +0200 |
commit | 17a8cae0038b82202149bad687823b89074aa696 (patch) | |
tree | 02970a9b2368551c4af31e4138db1b6ded6d018c /src/core | |
parent | Memory: Support more regions in the VAddr-PAddr translation functions (diff) | |
download | yuzu-17a8cae0038b82202149bad687823b89074aa696.tar yuzu-17a8cae0038b82202149bad687823b89074aa696.tar.gz yuzu-17a8cae0038b82202149bad687823b89074aa696.tar.bz2 yuzu-17a8cae0038b82202149bad687823b89074aa696.tar.lz yuzu-17a8cae0038b82202149bad687823b89074aa696.tar.xz yuzu-17a8cae0038b82202149bad687823b89074aa696.tar.zst yuzu-17a8cae0038b82202149bad687823b89074aa696.zip |
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/hw/gpu.cpp | 10 | ||||
-rw-r--r-- | src/core/mem_map.h | 9 |
2 files changed, 14 insertions, 5 deletions
diff --git a/src/core/hw/gpu.cpp b/src/core/hw/gpu.cpp index 0ad7e2963..e4a0e14c4 100644 --- a/src/core/hw/gpu.cpp +++ b/src/core/hw/gpu.cpp @@ -76,8 +76,8 @@ inline void Write(u32 addr, const T data) { auto& config = g_regs.memory_fill_config[is_second_filler]; if (config.address_start && config.trigger) { - u8* start = Memory::GetPointer(Memory::PhysicalToVirtualAddress(config.GetStartAddress())); - u8* end = Memory::GetPointer(Memory::PhysicalToVirtualAddress(config.GetEndAddress())); + u8* start = Memory::GetPhysicalPointer(config.GetStartAddress()); + u8* end = Memory::GetPhysicalPointer(config.GetEndAddress()); if (config.fill_24bit) { // fill with 24-bit values @@ -114,8 +114,8 @@ inline void Write(u32 addr, const T data) { { const auto& config = g_regs.display_transfer_config; if (config.trigger & 1) { - u8* src_pointer = Memory::GetPointer(Memory::PhysicalToVirtualAddress(config.GetPhysicalInputAddress())); - u8* dst_pointer = Memory::GetPointer(Memory::PhysicalToVirtualAddress(config.GetPhysicalOutputAddress())); + u8* src_pointer = Memory::GetPhysicalPointer(config.GetPhysicalInputAddress()); + u8* dst_pointer = Memory::GetPhysicalPointer(config.GetPhysicalOutputAddress()); if (config.scaling > config.ScaleXY) { LOG_CRITICAL(HW_GPU, "Unimplemented display transfer scaling mode %u", config.scaling.Value()); @@ -257,7 +257,7 @@ inline void Write(u32 addr, const T data) { const auto& config = g_regs.command_processor_config; if (config.trigger & 1) { - u32* buffer = (u32*)Memory::GetPointer(Memory::PhysicalToVirtualAddress(config.GetPhysicalAddress())); + u32* buffer = (u32*)Memory::GetPhysicalPointer(config.GetPhysicalAddress()); Pica::CommandProcessor::ProcessCommandList(buffer, config.size); } break; diff --git a/src/core/mem_map.h b/src/core/mem_map.h index 5a08cc105..64de76c39 100644 --- a/src/core/mem_map.h +++ b/src/core/mem_map.h @@ -192,4 +192,13 @@ PAddr VirtualToPhysicalAddress(VAddr addr); */ VAddr PhysicalToVirtualAddress(PAddr addr); +/** + * Gets a pointer to the memory region beginning at the specified physical address. + * + * @note This is currently implemented using PhysicalToVirtualAddress(). + */ +inline u8* GetPhysicalPointer(PAddr address) { + return GetPointer(PhysicalToVirtualAddress(address)); +} + } // namespace |