diff options
author | Fernando S <fsahmkow27@gmail.com> | 2022-10-19 06:56:00 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-19 06:56:00 +0200 |
commit | b8a70c9999b9a09d7028a617040719bf5341cf6d (patch) | |
tree | b7db47d95f9145fcf69a1190f0dd747c0f715fb9 /src/core/hle/service/nvdrv | |
parent | Merge pull request #9054 from Docteh/just_lz4 (diff) | |
parent | video_core: implement 1D copies based on VMM 'kind' (diff) | |
download | yuzu-b8a70c9999b9a09d7028a617040719bf5341cf6d.tar yuzu-b8a70c9999b9a09d7028a617040719bf5341cf6d.tar.gz yuzu-b8a70c9999b9a09d7028a617040719bf5341cf6d.tar.bz2 yuzu-b8a70c9999b9a09d7028a617040719bf5341cf6d.tar.lz yuzu-b8a70c9999b9a09d7028a617040719bf5341cf6d.tar.xz yuzu-b8a70c9999b9a09d7028a617040719bf5341cf6d.tar.zst yuzu-b8a70c9999b9a09d7028a617040719bf5341cf6d.zip |
Diffstat (limited to 'src/core/hle/service/nvdrv')
-rw-r--r-- | src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp | 12 |
1 files changed, 8 insertions, 4 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 6411dbf43..b635e6ed1 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp +++ b/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp @@ -311,7 +311,8 @@ NvResult nvhost_as_gpu::Remap(const std::vector<u8>& input, std::vector<u8>& out handle->address + (static_cast<u64>(entry.handle_offset_big_pages) << vm.big_page_size_bits))}; - gmmu->Map(virtual_address, cpu_address, size, use_big_pages); + gmmu->Map(virtual_address, cpu_address, size, static_cast<Tegra::PTEKind>(entry.kind), + use_big_pages); } } @@ -350,7 +351,8 @@ NvResult nvhost_as_gpu::MapBufferEx(const std::vector<u8>& input, std::vector<u8 u64 gpu_address{static_cast<u64>(params.offset + params.buffer_offset)}; VAddr cpu_address{mapping->ptr + params.buffer_offset}; - gmmu->Map(gpu_address, cpu_address, params.mapping_size, mapping->big_page); + gmmu->Map(gpu_address, cpu_address, params.mapping_size, + static_cast<Tegra::PTEKind>(params.kind), mapping->big_page); return NvResult::Success; } catch (const std::out_of_range&) { @@ -389,7 +391,8 @@ NvResult nvhost_as_gpu::MapBufferEx(const std::vector<u8>& input, std::vector<u8 } const bool use_big_pages = alloc->second.big_pages && big_page; - gmmu->Map(params.offset, cpu_address, size, use_big_pages); + gmmu->Map(params.offset, cpu_address, size, static_cast<Tegra::PTEKind>(params.kind), + use_big_pages); auto mapping{std::make_shared<Mapping>(cpu_address, params.offset, size, true, use_big_pages, alloc->second.sparse)}; @@ -409,7 +412,8 @@ NvResult nvhost_as_gpu::MapBufferEx(const std::vector<u8>& input, std::vector<u8 return NvResult::InsufficientMemory; } - gmmu->Map(params.offset, cpu_address, Common::AlignUp(size, page_size), big_page); + gmmu->Map(params.offset, cpu_address, Common::AlignUp(size, page_size), + static_cast<Tegra::PTEKind>(params.kind), big_page); auto mapping{ std::make_shared<Mapping>(cpu_address, params.offset, size, false, big_page, false)}; |