mirror of
https://github.com/yuzu-emu/yuzu.git
synced 2024-08-23 16:27:20 +02:00
hle: nvflinger: buffer_queue_core: StillTracking: Take const reference.
This commit is contained in:
parent
53058ae73f
commit
ddd5a2b1c6
@ -74,7 +74,7 @@ Status BufferQueueConsumer::AcquireBuffer(BufferItem* out_buffer,
|
|||||||
LOG_DEBUG(Service_NVFlinger, "drop desire={} expect={} size={}", desired_present,
|
LOG_DEBUG(Service_NVFlinger, "drop desire={} expect={} size={}", desired_present,
|
||||||
expected_present.count(), core->queue.size());
|
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
|
// Front buffer is still in mSlots, so mark the slot as free
|
||||||
slots[front->slot].buffer_state = BufferState::Free;
|
slots[front->slot].buffer_state = BufferState::Free;
|
||||||
core->free_buffers.push_back(front->slot);
|
core->free_buffers.push_back(front->slot);
|
||||||
@ -110,7 +110,7 @@ Status BufferQueueConsumer::AcquireBuffer(BufferItem* out_buffer,
|
|||||||
LOG_DEBUG(Service_NVFlinger, "acquiring slot={}", slot);
|
LOG_DEBUG(Service_NVFlinger, "acquiring slot={}", slot);
|
||||||
|
|
||||||
// If the front buffer is still being tracked, update its slot state
|
// 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].acquire_called = true;
|
||||||
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;
|
||||||
|
@ -116,10 +116,10 @@ void BufferQueueCore::FreeAllBuffersLocked() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BufferQueueCore::StillTracking(const BufferItem* item) const {
|
bool BufferQueueCore::StillTracking(const BufferItem& item) const {
|
||||||
const BufferSlot& slot = slots[item->slot];
|
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 {
|
void BufferQueueCore::WaitWhileAllocatingLocked() const {
|
||||||
|
@ -45,7 +45,7 @@ private:
|
|||||||
s32 GetPreallocatedBufferCountLocked() const;
|
s32 GetPreallocatedBufferCountLocked() const;
|
||||||
void FreeBufferLocked(s32 slot);
|
void FreeBufferLocked(s32 slot);
|
||||||
void FreeAllBuffersLocked();
|
void FreeAllBuffersLocked();
|
||||||
bool StillTracking(const BufferItem* item) const;
|
bool StillTracking(const BufferItem& item) const;
|
||||||
void WaitWhileAllocatingLocked() const;
|
void WaitWhileAllocatingLocked() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -554,7 +554,7 @@ Status BufferQueueProducer::QueueBuffer(s32 slot, const QueueBufferInput& input,
|
|||||||
if (front->is_droppable) {
|
if (front->is_droppable) {
|
||||||
// If the front queued buffer is still being tracked, we first
|
// If the front queued buffer is still being tracked, we first
|
||||||
// mark it as freed
|
// mark it as freed
|
||||||
if (core->StillTracking(&*front)) {
|
if (core->StillTracking(*front)) {
|
||||||
slots[front->slot].buffer_state = BufferState::Free;
|
slots[front->slot].buffer_state = BufferState::Free;
|
||||||
core->free_buffers.push_front(front->slot);
|
core->free_buffers.push_front(front->slot);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user