diff options
author | bunnei <bunneidev@gmail.com> | 2020-08-05 00:45:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-05 00:45:11 +0200 |
commit | ba9ed7b1fe9f372594dff3b8d1bc5317f975d879 (patch) | |
tree | 05147797d96dccf6b57bbc3287ba0a557ba3cb81 /src/core | |
parent | Merge pull request #4430 from bunnei/new-gpu-vmm (diff) | |
parent | vi: IApplicationDisplayService:GetIndirectLayerImageRequiredMemoryInfo (diff) | |
download | yuzu-ba9ed7b1fe9f372594dff3b8d1bc5317f975d879.tar yuzu-ba9ed7b1fe9f372594dff3b8d1bc5317f975d879.tar.gz yuzu-ba9ed7b1fe9f372594dff3b8d1bc5317f975d879.tar.bz2 yuzu-ba9ed7b1fe9f372594dff3b8d1bc5317f975d879.tar.lz yuzu-ba9ed7b1fe9f372594dff3b8d1bc5317f975d879.tar.xz yuzu-ba9ed7b1fe9f372594dff3b8d1bc5317f975d879.tar.zst yuzu-ba9ed7b1fe9f372594dff3b8d1bc5317f975d879.zip |
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/hle/service/vi/vi.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/core/hle/service/vi/vi.cpp b/src/core/hle/service/vi/vi.cpp index 988d253f9..480d34725 100644 --- a/src/core/hle/service/vi/vi.cpp +++ b/src/core/hle/service/vi/vi.cpp @@ -1199,6 +1199,23 @@ private: } } + void GetIndirectLayerImageRequiredMemoryInfo(Kernel::HLERequestContext& ctx) { + IPC::RequestParser rp{ctx}; + const auto width = rp.Pop<u64>(); + const auto height = rp.Pop<u64>(); + LOG_DEBUG(Service_VI, "called width={}, height={}", width, height); + + constexpr std::size_t base_size = 0x20000; + constexpr std::size_t alignment = 0x1000; + const auto texture_size = width * height * 4; + const auto out_size = (texture_size + base_size - 1) / base_size * base_size; + + IPC::ResponseBuilder rb{ctx, 6}; + rb.Push(RESULT_SUCCESS); + rb.Push(out_size); + rb.Push(alignment); + } + static ResultVal<ConvertedScaleMode> ConvertScalingModeImpl(NintendoScaleMode mode) { switch (mode) { case NintendoScaleMode::None: @@ -1243,7 +1260,8 @@ IApplicationDisplayService::IApplicationDisplayService( {2102, &IApplicationDisplayService::ConvertScalingMode, "ConvertScalingMode"}, {2450, nullptr, "GetIndirectLayerImageMap"}, {2451, nullptr, "GetIndirectLayerImageCropMap"}, - {2460, nullptr, "GetIndirectLayerImageRequiredMemoryInfo"}, + {2460, &IApplicationDisplayService::GetIndirectLayerImageRequiredMemoryInfo, + "GetIndirectLayerImageRequiredMemoryInfo"}, {5202, &IApplicationDisplayService::GetDisplayVsyncEvent, "GetDisplayVsyncEvent"}, {5203, nullptr, "GetDisplayVsyncEventForDebug"}, }; |