d3d12: batch submissions to frame end while native output suppresses emulated draws
This commit is contained in:
parent
17caf72bdd
commit
41dd2d5cb4
1 changed files with 8 additions and 1 deletions
|
|
@ -2497,7 +2497,14 @@ void D3D12CommandProcessor::IssueSwap(uint32_t frontbuffer_ptr, uint32_t frontbu
|
|||
}
|
||||
|
||||
void D3D12CommandProcessor::OnPrimaryBufferEnd() {
|
||||
if (REXCVAR_GET(d3d12_submit_on_primary_buffer_end) && submission_open_ &&
|
||||
// While the native guest-output renderer is suppressing emulated draws,
|
||||
// batch everything into the end-of-frame submission: the mid-frame
|
||||
// primary-buffer submits carry only the small exempt composition passes,
|
||||
// and the GPU then idles until the native pass arrives (a measured
|
||||
// ~0.3 ms/frame starvation bubble). The emulated path keeps the
|
||||
// per-buffer submits for its own pacing.
|
||||
if (REXCVAR_GET(d3d12_submit_on_primary_buffer_end) &&
|
||||
!ShouldSuppressEmulatedDraws() && submission_open_ &&
|
||||
CanEndSubmissionImmediately()) {
|
||||
EndSubmission(false);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue