Browse Source

Upload files to "src/core/hle/service/nvnflinger"

pull/3218/head
John 1 month ago
committed by crueter
parent
commit
6ef3501fde
  1. 10
      src/core/hle/service/nvnflinger/buffer_queue_consumer.cpp
  2. 14
      src/core/hle/service/nvnflinger/buffer_queue_core.cpp
  3. 3
      src/core/hle/service/nvnflinger/buffer_queue_core.h
  4. 3
      src/core/hle/service/nvnflinger/buffer_queue_producer.cpp
  5. 3
      src/core/hle/service/nvnflinger/buffer_queue_producer.h

10
src/core/hle/service/nvnflinger/buffer_queue_consumer.cpp

@ -100,14 +100,6 @@ Status BufferQueueConsumer::AcquireBuffer(BufferItem* out_buffer,
slots[slot].needs_cleanup_on_release = false; slots[slot].needs_cleanup_on_release = false;
slots[slot].buffer_state = BufferState::Acquired; slots[slot].buffer_state = BufferState::Acquired;
// Mark tracked buffer history records as acquired
for (auto& buffer_history_record : core->buffer_history) {
if (buffer_history_record.frame_number == core->frame_counter) {
buffer_history_record.state = BufferState::Acquired;
break;
}
}
// TODO: for now, avoid resetting the fence, so that when we next return this // TODO: for now, avoid resetting the fence, so that when we next return this
// slot to the producer, it will wait for the fence to pass. We should fix this // slot to the producer, it will wait for the fence to pass. We should fix this
// by properly waiting for the fence in the BufferItemConsumer. // by properly waiting for the fence in the BufferItemConsumer.
@ -331,7 +323,7 @@ void BufferQueueConsumer::Transact(u32 code, std::span<const u8> parcel_data,
const auto serialized = parcel_out.Serialize(); const auto serialized = parcel_out.Serialize();
std::memcpy(parcel_reply.data(), serialized.data(), std::memcpy(parcel_reply.data(), serialized.data(),
(std::min)(parcel_reply.size(), serialized.size()));
std::min(parcel_reply.size(), serialized.size()));
} }
Kernel::KReadableEvent* BufferQueueConsumer::GetNativeHandle(u32 type_id) { Kernel::KReadableEvent* BufferQueueConsumer::GetNativeHandle(u32 type_id) {

14
src/core/hle/service/nvnflinger/buffer_queue_core.cpp

@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
// SPDX-FileCopyrightText: Copyright 2014 The Android Open Source Project // SPDX-FileCopyrightText: Copyright 2014 The Android Open Source Project
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
@ -11,9 +14,18 @@
namespace Service::android { namespace Service::android {
BufferQueueCore::BufferQueueCore() = default; BufferQueueCore::BufferQueueCore() = default;
BufferQueueCore::~BufferQueueCore() = default; BufferQueueCore::~BufferQueueCore() = default;
void BufferQueueCore::PushHistory(u64 frame_number, s64 queue_time, s64 presentation_time, BufferState state) {
buffer_history_pos = (buffer_history_pos + 1) % BUFFER_HISTORY_SIZE;
buffer_history[buffer_history_pos] = BufferHistoryInfo{
.frame_number = frame_number,
.queue_time = queue_time,
.presentation_time = presentation_time,
.state = state,
};
}
void BufferQueueCore::SignalDequeueCondition() { void BufferQueueCore::SignalDequeueCondition() {
dequeue_possible.store(true); dequeue_possible.store(true);
dequeue_condition.notify_all(); dequeue_condition.notify_all();

3
src/core/hle/service/nvnflinger/buffer_queue_core.h

@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
// SPDX-FileCopyrightText: Copyright 2014 The Android Open Source Project // SPDX-FileCopyrightText: Copyright 2014 The Android Open Source Project
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later

3
src/core/hle/service/nvnflinger/buffer_queue_producer.cpp

@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
// SPDX-FileCopyrightText: Copyright 2014 The Android Open Source Project // SPDX-FileCopyrightText: Copyright 2014 The Android Open Source Project
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later

3
src/core/hle/service/nvnflinger/buffer_queue_producer.h

@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
// SPDX-FileCopyrightText: Copyright 2014 The Android Open Source Project // SPDX-FileCopyrightText: Copyright 2014 The Android Open Source Project
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later

Loading…
Cancel
Save