[client] render: bound software surface update backlog

This commit is contained in:
Geoffrey McRae
2026-08-12 04:13:00 +10:00
parent f68bf8f0d5
commit 9c0caca3fa
4 changed files with 638 additions and 98 deletions

View File

@@ -36,6 +36,8 @@ typedef void (*RenderQueueSourceAppliedFn)(void * opaque,
bool swSurface);
typedef bool (*RenderQueueSourcePrepareFn)(void * opaque,
RenderQueueSource source, uint64_t generation, uint64_t serial);
typedef void (*RenderQueueSourceRejectFn)(void * opaque,
RenderQueueSource source, uint64_t serial);
void renderQueue_init(void);
void renderQueue_free(void);
@@ -44,6 +46,7 @@ void renderQueue_process(void);
void renderQueue_presented(void);
void renderQueue_setSourceFns(RenderQueueSourcePrepareFn prepare,
RenderQueueSourceRejectFn reject,
RenderQueueSourceAppliedFn applied, void * opaque);
/* Starting a source lifecycle makes commands from its prior generation stale.
@@ -57,6 +60,9 @@ uint64_t renderQueue_sourceTransition(RenderQueueSource source,
uint64_t generation, bool swSurface,
atomic_uint_least64_t * publishedSerial);
bool renderQueue_sourceSwSurfaceConfigure(RenderQueueSource source,
uint64_t generation, int width, int height);
uint64_t renderQueue_sourceSwSurfaceConfigureTransition(
RenderQueueSource source, uint64_t generation, int width, int height,
atomic_uint_least64_t * publishedSerial);