[client] ds: waitFrame now returns a bool to force rendering if needed

X11 needs to calibrate to get the best possible latency, as such it
needs the scene to render so that the render time of the scene can be
accounted for in the delay calculation.
This commit is contained in:
Geoffrey McRae
2021-08-04 06:49:35 +10:00
parent 0f7fa32d12
commit c15d0dc672
4 changed files with 21 additions and 6 deletions

View File

@@ -171,14 +171,17 @@ static int renderThread(void * unused)
while(g_state.state != APP_STATE_SHUTDOWN)
{
bool forceRender = false;
if (g_state.jitRender)
forceRender = g_state.ds->waitFrame();
app_handleRenderEvent(microtime());
if (g_state.jitRender)
{
g_state.ds->waitFrame();
const uint64_t pending =
atomic_load_explicit(&g_state.pendingCount, memory_order_acquire);
if (!lgResetEvent(g_state.frameEvent)
&& !forceRender
&& !pending
&& !app_overlayNeedsRender()
&& !g_state.lgr->needs_render(g_state.lgrData))