summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar bunnei2020-01-03 12:30:56 -0500
committerGravatar GitHub2020-01-03 12:30:56 -0500
commit624a0f7f3f4100fc56e3d70603a30384a21e7dc6 (patch)
treeb1818bb9bc039995b9dacbda53bb99ce343f93f0
parentMerge pull request #3267 from ReinUsesLisp/remove-maxwell-debugger (diff)
parentNvServices: Correct Ioctl Remap. (diff)
downloadyuzu-624a0f7f3f4100fc56e3d70603a30384a21e7dc6.tar.gz
yuzu-624a0f7f3f4100fc56e3d70603a30384a21e7dc6.tar.xz
yuzu-624a0f7f3f4100fc56e3d70603a30384a21e7dc6.zip
Merge pull request #3247 from FernandoS27/remap-fix
NvServices: Correct Ioctl Remap.
Diffstat (limited to '')
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp6
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_as_gpu.h2
2 files changed, 5 insertions, 3 deletions
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp b/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp
index 07c88465e..195421cc0 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp
@@ -104,10 +104,12 @@ u32 nvhost_as_gpu::Remap(const std::vector<u8>& input, std::vector<u8>& output)
104 104
105 ASSERT(object->status == nvmap::Object::Status::Allocated); 105 ASSERT(object->status == nvmap::Object::Status::Allocated);
106 106
107 u64 size = static_cast<u64>(entry.pages) << 0x10; 107 const u64 size = static_cast<u64>(entry.pages) << 0x10;
108 ASSERT(size <= object->size); 108 ASSERT(size <= object->size);
109 const u64 map_offset = static_cast<u64>(entry.map_offset) << 0x10;
109 110
110 GPUVAddr returned = gpu.MemoryManager().MapBufferEx(object->addr, offset, size); 111 const GPUVAddr returned =
112 gpu.MemoryManager().MapBufferEx(object->addr + map_offset, offset, size);
111 ASSERT(returned == offset); 113 ASSERT(returned == offset);
112 } 114 }
113 std::memcpy(output.data(), entries.data(), output.size()); 115 std::memcpy(output.data(), entries.data(), output.size());
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.h b/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.h
index 169fb8f0e..f79fcc065 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.h
+++ b/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.h
@@ -62,7 +62,7 @@ private:
62 u16_le flags; 62 u16_le flags;
63 u16_le kind; 63 u16_le kind;
64 u32_le nvmap_handle; 64 u32_le nvmap_handle;
65 INSERT_PADDING_WORDS(1); 65 u32_le map_offset;
66 u32_le offset; 66 u32_le offset;
67 u32_le pages; 67 u32_le pages;
68 }; 68 };