mirror of
https://github.com/gnif/LookingGlass.git
synced 2026-08-09 08:41:31 +00:00
[client] scheduler: qualify presentation feedback
Track cadence, interruption, and calibration wake reasons independently across X11 and Wayland. Feed phase correction back only when a pure cadence wake renders the exact frame that was queued at that wake. Propagate EGL swap results through the display-server boundary. Reject failed presentations and keep pending Wayland HDR descriptions inactive until the preceding surface commit succeeds.
This commit is contained in:
@@ -1689,13 +1689,17 @@ static bool egl_render(LG_Renderer * renderer, LG_RendererRotate rotate,
|
||||
const uint64_t composeEnd = nanotime();
|
||||
timing->composeTime += composeEnd - postOverlayStart;
|
||||
|
||||
const uint64_t swapStart = nanotime();
|
||||
app_eglSwapBuffers(this->display, this->surface, damage,
|
||||
const uint64_t swapStart = nanotime();
|
||||
const bool swapResult = app_eglSwapBuffers(
|
||||
this->display, this->surface, damage,
|
||||
this->noSwapDamage ? 0 : damageIdx);
|
||||
const uint64_t swapEnd = nanotime();
|
||||
const uint64_t swapEnd = nanotime();
|
||||
timing->swapTime = swapEnd - swapStart;
|
||||
|
||||
return true;
|
||||
if (!swapResult)
|
||||
DEBUG_ERROR("Failed to swap EGL buffers (eglError: 0x%x)", eglGetError());
|
||||
|
||||
return swapResult;
|
||||
}
|
||||
|
||||
static bool egl_capture(LG_Renderer * renderer, LG_RendererCapture * capture)
|
||||
|
||||
Reference in New Issue
Block a user