From c3dd456d513a989315d4e8a00ad8a1223bb8f9c4 Mon Sep 17 00:00:00 2001 From: bunnei Date: Tue, 17 Jul 2018 20:11:41 -0400 Subject: vi: Partially implement buffer crop parameters. --- src/core/hle/service/vi/vi.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/core/hle/service/vi/vi.cpp') diff --git a/src/core/hle/service/vi/vi.cpp b/src/core/hle/service/vi/vi.cpp index e094510bf..caef7e695 100644 --- a/src/core/hle/service/vi/vi.cpp +++ b/src/core/hle/service/vi/vi.cpp @@ -7,6 +7,7 @@ #include #include #include "common/alignment.h" +#include "common/math_util.h" #include "common/scope_exit.h" #include "core/core_timing.h" #include "core/hle/ipc_helpers.h" @@ -327,8 +328,8 @@ public: protected: void SerializeData() override { - // TODO(Subv): Figure out what this value means, writing non-zero here will make libnx try - // to read an IGBPBuffer object from the parcel. + // TODO(Subv): Figure out what this value means, writing non-zero here will make libnx + // try to read an IGBPBuffer object from the parcel. Write(1); WriteObject(buffer); Write(0); @@ -360,8 +361,8 @@ public: INSERT_PADDING_WORDS(3); u32_le timestamp; s32_le is_auto_timestamp; - s32_le crop_left; s32_le crop_top; + s32_le crop_left; s32_le crop_right; s32_le crop_bottom; s32_le scaling_mode; @@ -370,6 +371,10 @@ public: INSERT_PADDING_WORDS(2); u32_le fence_is_valid; std::array fences; + + MathUtil::Rectangle GetCropRect() const { + return {crop_left, crop_top, crop_right, crop_bottom}; + } }; static_assert(sizeof(Data) == 80, "ParcelData has wrong size"); @@ -519,7 +524,8 @@ private: } else if (transaction == TransactionId::QueueBuffer) { IGBPQueueBufferRequestParcel request{ctx.ReadBuffer()}; - buffer_queue->QueueBuffer(request.data.slot, request.data.transform); + buffer_queue->QueueBuffer(request.data.slot, request.data.transform, + request.data.GetCropRect()); IGBPQueueBufferResponseParcel response{1280, 720}; ctx.WriteBuffer(response.Serialize()); -- cgit v1.2.3 From 0d1a99edf6469ac06d552283bec426dd61993eda Mon Sep 17 00:00:00 2001 From: bunnei Date: Tue, 17 Jul 2018 22:18:14 -0400 Subject: vi: Fix size for ListDisplays default display. --- src/core/hle/service/vi/vi.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/core/hle/service/vi/vi.cpp') diff --git a/src/core/hle/service/vi/vi.cpp b/src/core/hle/service/vi/vi.cpp index caef7e695..27e7ce800 100644 --- a/src/core/hle/service/vi/vi.cpp +++ b/src/core/hle/service/vi/vi.cpp @@ -28,8 +28,8 @@ struct DisplayInfo { char display_name[0x40]{"Default"}; u64 unknown_1{1}; u64 unknown_2{1}; - u64 width{1920}; - u64 height{1080}; + u64 width{1280}; + u64 height{720}; }; static_assert(sizeof(DisplayInfo) == 0x60, "DisplayInfo has wrong size"); -- cgit v1.2.3 From 49e5de9f036ac69c844840231d9df4b8c8326bc7 Mon Sep 17 00:00:00 2001 From: bunnei Date: Tue, 17 Jul 2018 22:47:35 -0400 Subject: vi: Change TransactionId::CancelBuffer to LOG_CRITICAL. --- src/core/hle/service/vi/vi.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/core/hle/service/vi/vi.cpp') diff --git a/src/core/hle/service/vi/vi.cpp b/src/core/hle/service/vi/vi.cpp index 27e7ce800..eccee6e33 100644 --- a/src/core/hle/service/vi/vi.cpp +++ b/src/core/hle/service/vi/vi.cpp @@ -538,7 +538,7 @@ private: IGBPQueryResponseParcel response{value}; ctx.WriteBuffer(response.Serialize()); } else if (transaction == TransactionId::CancelBuffer) { - LOG_WARNING(Service_VI, "(STUBBED) called, transaction=CancelBuffer"); + LOG_CRITICAL(Service_VI, "(STUBBED) called, transaction=CancelBuffer"); } else { ASSERT_MSG(false, "Unimplemented"); } -- cgit v1.2.3