summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/nvnflinger/buffer_queue_producer.cpp
diff options
context:
space:
mode:
authorNarr the Reg <juangerman-13@hotmail.com>2024-02-16 19:11:02 +0100
committerGitHub <noreply@github.com>2024-02-16 19:11:02 +0100
commit6e2678a42cb4a0ad02a7c8959621b0c98353c572 (patch)
treee1d71c4545dacdc7940c2a8b67ea534c6e52d58a /src/core/hle/service/nvnflinger/buffer_queue_producer.cpp
parentMerge pull request #12996 from german77/settings-ipc (diff)
parentvi: rewrite IApplicationDisplayService (diff)
downloadyuzu-6e2678a42cb4a0ad02a7c8959621b0c98353c572.tar
yuzu-6e2678a42cb4a0ad02a7c8959621b0c98353c572.tar.gz
yuzu-6e2678a42cb4a0ad02a7c8959621b0c98353c572.tar.bz2
yuzu-6e2678a42cb4a0ad02a7c8959621b0c98353c572.tar.lz
yuzu-6e2678a42cb4a0ad02a7c8959621b0c98353c572.tar.xz
yuzu-6e2678a42cb4a0ad02a7c8959621b0c98353c572.tar.zst
yuzu-6e2678a42cb4a0ad02a7c8959621b0c98353c572.zip
Diffstat (limited to 'src/core/hle/service/nvnflinger/buffer_queue_producer.cpp')
-rw-r--r--src/core/hle/service/nvnflinger/buffer_queue_producer.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/core/hle/service/nvnflinger/buffer_queue_producer.cpp b/src/core/hle/service/nvnflinger/buffer_queue_producer.cpp
index 5d8762d25..ec83beb9b 100644
--- a/src/core/hle/service/nvnflinger/buffer_queue_producer.cpp
+++ b/src/core/hle/service/nvnflinger/buffer_queue_producer.cpp
@@ -807,9 +807,10 @@ Status BufferQueueProducer::SetPreallocatedBuffer(s32 slot,
return Status::NoError;
}
-void BufferQueueProducer::Transact(HLERequestContext& ctx, TransactionId code, u32 flags) {
+void BufferQueueProducer::Transact(TransactionId code, u32 flags, std::span<const u8> parcel_data,
+ std::span<u8> parcel_reply) {
Status status{Status::NoError};
- InputParcel parcel_in{ctx.ReadBuffer()};
+ InputParcel parcel_in{parcel_data};
OutputParcel parcel_out{};
switch (code) {
@@ -917,7 +918,9 @@ void BufferQueueProducer::Transact(HLERequestContext& ctx, TransactionId code, u
parcel_out.Write(status);
- ctx.WriteBuffer(parcel_out.Serialize());
+ const auto serialized = parcel_out.Serialize();
+ std::memcpy(parcel_reply.data(), serialized.data(),
+ std::min(parcel_reply.size(), serialized.size()));
}
Kernel::KReadableEvent& BufferQueueProducer::GetNativeHandle() {