diff options
author | bunnei <bunneidev@gmail.com> | 2022-03-20 06:06:46 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2022-03-25 02:13:33 +0100 |
commit | ddd5a2b1c67a82f0b1dbaa75dc4b99ee71f93173 (patch) | |
tree | 51dd49fec795ed3d2e4db833e191e5b142f1fe8b /src/core | |
parent | hle: nvflinger: buffer_queue_core: Cleanup locking. (diff) | |
download | yuzu-ddd5a2b1c67a82f0b1dbaa75dc4b99ee71f93173.tar yuzu-ddd5a2b1c67a82f0b1dbaa75dc4b99ee71f93173.tar.gz yuzu-ddd5a2b1c67a82f0b1dbaa75dc4b99ee71f93173.tar.bz2 yuzu-ddd5a2b1c67a82f0b1dbaa75dc4b99ee71f93173.tar.lz yuzu-ddd5a2b1c67a82f0b1dbaa75dc4b99ee71f93173.tar.xz yuzu-ddd5a2b1c67a82f0b1dbaa75dc4b99ee71f93173.tar.zst yuzu-ddd5a2b1c67a82f0b1dbaa75dc4b99ee71f93173.zip |
Diffstat (limited to 'src/core')
4 files changed, 7 insertions, 7 deletions
diff --git a/src/core/hle/service/nvflinger/buffer_queue_consumer.cpp b/src/core/hle/service/nvflinger/buffer_queue_consumer.cpp index 5184d876a..cf12cceff 100644 --- a/src/core/hle/service/nvflinger/buffer_queue_consumer.cpp +++ b/src/core/hle/service/nvflinger/buffer_queue_consumer.cpp @@ -74,7 +74,7 @@ Status BufferQueueConsumer::AcquireBuffer(BufferItem* out_buffer, LOG_DEBUG(Service_NVFlinger, "drop desire={} expect={} size={}", desired_present, expected_present.count(), core->queue.size()); - if (core->StillTracking(&*front)) { + if (core->StillTracking(*front)) { // Front buffer is still in mSlots, so mark the slot as free slots[front->slot].buffer_state = BufferState::Free; core->free_buffers.push_back(front->slot); @@ -110,7 +110,7 @@ Status BufferQueueConsumer::AcquireBuffer(BufferItem* out_buffer, LOG_DEBUG(Service_NVFlinger, "acquiring slot={}", slot); // If the front buffer is still being tracked, update its slot state - if (core->StillTracking(&*front)) { + if (core->StillTracking(*front)) { slots[slot].acquire_called = true; slots[slot].needs_cleanup_on_release = false; slots[slot].buffer_state = BufferState::Acquired; diff --git a/src/core/hle/service/nvflinger/buffer_queue_core.cpp b/src/core/hle/service/nvflinger/buffer_queue_core.cpp index 4a26d2fdc..3f1ce78b0 100644 --- a/src/core/hle/service/nvflinger/buffer_queue_core.cpp +++ b/src/core/hle/service/nvflinger/buffer_queue_core.cpp @@ -116,10 +116,10 @@ void BufferQueueCore::FreeAllBuffersLocked() { } } -bool BufferQueueCore::StillTracking(const BufferItem* item) const { - const BufferSlot& slot = slots[item->slot]; +bool BufferQueueCore::StillTracking(const BufferItem& item) const { + const BufferSlot& slot = slots[item.slot]; - return (slot.graphic_buffer != nullptr) && (item->graphic_buffer == slot.graphic_buffer); + return (slot.graphic_buffer != nullptr) && (item.graphic_buffer == slot.graphic_buffer); } void BufferQueueCore::WaitWhileAllocatingLocked() const { diff --git a/src/core/hle/service/nvflinger/buffer_queue_core.h b/src/core/hle/service/nvflinger/buffer_queue_core.h index 252a36350..ad10b4c3c 100644 --- a/src/core/hle/service/nvflinger/buffer_queue_core.h +++ b/src/core/hle/service/nvflinger/buffer_queue_core.h @@ -45,7 +45,7 @@ private: s32 GetPreallocatedBufferCountLocked() const; void FreeBufferLocked(s32 slot); void FreeAllBuffersLocked(); - bool StillTracking(const BufferItem* item) const; + bool StillTracking(const BufferItem& item) const; void WaitWhileAllocatingLocked() const; private: diff --git a/src/core/hle/service/nvflinger/buffer_queue_producer.cpp b/src/core/hle/service/nvflinger/buffer_queue_producer.cpp index 2f7e9dcfc..eba486754 100644 --- a/src/core/hle/service/nvflinger/buffer_queue_producer.cpp +++ b/src/core/hle/service/nvflinger/buffer_queue_producer.cpp @@ -554,7 +554,7 @@ Status BufferQueueProducer::QueueBuffer(s32 slot, const QueueBufferInput& input, if (front->is_droppable) { // If the front queued buffer is still being tracked, we first // mark it as freed - if (core->StillTracking(&*front)) { + if (core->StillTracking(*front)) { slots[front->slot].buffer_state = BufferState::Free; core->free_buffers.push_front(front->slot); } |