mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-09 00:11:24 +12:00
rsx: Stop spamming ZCULL update method
- This has a negative impact when ZCULL is active due to spamming __rdtsc - While the method is fast, it is not free and some checks are done before the instruction can be emitted Let's use the saved time to actually get something useful done
This commit is contained in:
parent
7fa521a046
commit
5315eb546f
4 changed files with 39 additions and 5 deletions
|
@ -763,11 +763,18 @@ namespace rsx
|
|||
sync_point_request.release(false);
|
||||
}
|
||||
|
||||
// Execute backend-local tasks first
|
||||
do_local_task(performance_counters.state);
|
||||
// Update sub-units every 64 cycles. The local handler is invoked for other functions externally on-demand anyway.
|
||||
// This avoids expensive calls to check timestamps which involves reading some values from TLS storage on windows.
|
||||
// If something is going on in the backend that requires an update, set the interrupt bit explicitly.
|
||||
if ((m_cycles_counter++ & 63) == 0 ||
|
||||
m_graphics_state & (rsx::pipeline_state::backend_interrupt_bits))
|
||||
{
|
||||
// Execute backend-local tasks first
|
||||
do_local_task(performance_counters.state);
|
||||
|
||||
// Update sub-units
|
||||
zcull_ctrl->update(this);
|
||||
// Update other sub-units
|
||||
zcull_ctrl->update(this);
|
||||
}
|
||||
|
||||
// Execute FIFO queue
|
||||
run_FIFO();
|
||||
|
@ -2952,6 +2959,8 @@ namespace rsx
|
|||
|
||||
m_invalidated_memory_range = unmap_range;
|
||||
}
|
||||
|
||||
m_graphics_state |= rsx::pipeline_state::backend_interrupt;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3143,6 +3152,7 @@ namespace rsx
|
|||
|
||||
async_flip_buffer = buffer;
|
||||
async_flip_requested |= flip_request::emu_requested;
|
||||
m_graphics_state |= rsx::pipeline_state::backend_interrupt;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue