summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/nvnflinger/buffer_queue_producer.cpp
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2024-02-14 06:09:29 +0100
committerLiam <byteslice@airmail.cc>2024-02-14 18:03:32 +0100
commit59011a04a10d20804eb1eb4c8164b64d0f0ca824 (patch)
tree23d4943c7c49b7d16434231d441d2934fe06193f /src/core/hle/service/nvnflinger/buffer_queue_producer.cpp
parentvi: rewrite IApplicationRootService, IManagerRootService, ISystemRootService (diff)
downloadyuzu-59011a04a10d20804eb1eb4c8164b64d0f0ca824.tar
yuzu-59011a04a10d20804eb1eb4c8164b64d0f0ca824.tar.gz
yuzu-59011a04a10d20804eb1eb4c8164b64d0f0ca824.tar.bz2
yuzu-59011a04a10d20804eb1eb4c8164b64d0f0ca824.tar.lz
yuzu-59011a04a10d20804eb1eb4c8164b64d0f0ca824.tar.xz
yuzu-59011a04a10d20804eb1eb4c8164b64d0f0ca824.tar.zst
yuzu-59011a04a10d20804eb1eb4c8164b64d0f0ca824.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() {