Browse Source
Merge pull request #3247 from FernandoS27/remap-fix
NvServices: Correct Ioctl Remap.
pull/15/merge
bunnei
6 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
5 additions and
3 deletions
-
src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp
-
src/core/hle/service/nvdrv/devices/nvhost_as_gpu.h
|
|
|
@ -104,10 +104,12 @@ u32 nvhost_as_gpu::Remap(const std::vector<u8>& input, std::vector<u8>& output) |
|
|
|
|
|
|
|
ASSERT(object->status == nvmap::Object::Status::Allocated); |
|
|
|
|
|
|
|
u64 size = static_cast<u64>(entry.pages) << 0x10; |
|
|
|
const u64 size = static_cast<u64>(entry.pages) << 0x10; |
|
|
|
ASSERT(size <= object->size); |
|
|
|
const u64 map_offset = static_cast<u64>(entry.map_offset) << 0x10; |
|
|
|
|
|
|
|
GPUVAddr returned = gpu.MemoryManager().MapBufferEx(object->addr, offset, size); |
|
|
|
const GPUVAddr returned = |
|
|
|
gpu.MemoryManager().MapBufferEx(object->addr + map_offset, offset, size); |
|
|
|
ASSERT(returned == offset); |
|
|
|
} |
|
|
|
std::memcpy(output.data(), entries.data(), output.size()); |
|
|
|
|
|
|
|
@ -62,7 +62,7 @@ private: |
|
|
|
u16_le flags; |
|
|
|
u16_le kind; |
|
|
|
u32_le nvmap_handle; |
|
|
|
INSERT_PADDING_WORDS(1); |
|
|
|
u32_le map_offset; |
|
|
|
u32_le offset; |
|
|
|
u32_le pages; |
|
|
|
}; |
|
|
|
|