summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/vi
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2020-08-05 00:45:11 +0200
committerGitHub <noreply@github.com>2020-08-05 00:45:11 +0200
commitba9ed7b1fe9f372594dff3b8d1bc5317f975d879 (patch)
tree05147797d96dccf6b57bbc3287ba0a557ba3cb81 /src/core/hle/service/vi
parentMerge pull request #4430 from bunnei/new-gpu-vmm (diff)
parentvi: IApplicationDisplayService:GetIndirectLayerImageRequiredMemoryInfo (diff)
downloadyuzu-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/hle/service/vi')
-rw-r--r--src/core/hle/service/vi/vi.cpp20
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"},
};