diff options
Diffstat (limited to 'src/core')
| -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 | |||
| 311 | handle->address + | 311 | handle->address + |
| 312 | (static_cast<u64>(entry.handle_offset_big_pages) << vm.big_page_size_bits))}; | 312 | (static_cast<u64>(entry.handle_offset_big_pages) << vm.big_page_size_bits))}; |
| 313 | 313 | ||
| 314 | gmmu->Map(virtual_address, cpu_address, size, use_big_pages); | 314 | gmmu->Map(virtual_address, cpu_address, size, static_cast<Tegra::PTEKind>(entry.kind), |
| 315 | use_big_pages); | ||
| 315 | } | 316 | } |
| 316 | } | 317 | } |
| 317 | 318 | ||
| @@ -350,7 +351,8 @@ NvResult nvhost_as_gpu::MapBufferEx(const std::vector<u8>& input, std::vector<u8 | |||
| 350 | u64 gpu_address{static_cast<u64>(params.offset + params.buffer_offset)}; | 351 | u64 gpu_address{static_cast<u64>(params.offset + params.buffer_offset)}; |
| 351 | VAddr cpu_address{mapping->ptr + params.buffer_offset}; | 352 | VAddr cpu_address{mapping->ptr + params.buffer_offset}; |
| 352 | 353 | ||
| 353 | gmmu->Map(gpu_address, cpu_address, params.mapping_size, mapping->big_page); | 354 | gmmu->Map(gpu_address, cpu_address, params.mapping_size, |
| 355 | static_cast<Tegra::PTEKind>(params.kind), mapping->big_page); | ||
| 354 | 356 | ||
| 355 | return NvResult::Success; | 357 | return NvResult::Success; |
| 356 | } catch (const std::out_of_range&) { | 358 | } catch (const std::out_of_range&) { |
| @@ -389,7 +391,8 @@ NvResult nvhost_as_gpu::MapBufferEx(const std::vector<u8>& input, std::vector<u8 | |||
| 389 | } | 391 | } |
| 390 | 392 | ||
| 391 | const bool use_big_pages = alloc->second.big_pages && big_page; | 393 | const bool use_big_pages = alloc->second.big_pages && big_page; |
| 392 | gmmu->Map(params.offset, cpu_address, size, use_big_pages); | 394 | gmmu->Map(params.offset, cpu_address, size, static_cast<Tegra::PTEKind>(params.kind), |
| 395 | use_big_pages); | ||
| 393 | 396 | ||
| 394 | auto mapping{std::make_shared<Mapping>(cpu_address, params.offset, size, true, | 397 | auto mapping{std::make_shared<Mapping>(cpu_address, params.offset, size, true, |
| 395 | use_big_pages, alloc->second.sparse)}; | 398 | use_big_pages, alloc->second.sparse)}; |
| @@ -409,7 +412,8 @@ NvResult nvhost_as_gpu::MapBufferEx(const std::vector<u8>& input, std::vector<u8 | |||
| 409 | return NvResult::InsufficientMemory; | 412 | return NvResult::InsufficientMemory; |
| 410 | } | 413 | } |
| 411 | 414 | ||
| 412 | gmmu->Map(params.offset, cpu_address, Common::AlignUp(size, page_size), big_page); | 415 | gmmu->Map(params.offset, cpu_address, Common::AlignUp(size, page_size), |
| 416 | static_cast<Tegra::PTEKind>(params.kind), big_page); | ||
| 413 | 417 | ||
| 414 | auto mapping{ | 418 | auto mapping{ |
| 415 | std::make_shared<Mapping>(cpu_address, params.offset, size, false, big_page, false)}; | 419 | std::make_shared<Mapping>(cpu_address, params.offset, size, false, big_page, false)}; |