[common/client] ivshmem: add portable external frames

This commit is contained in:
Geoffrey McRae
2026-09-12 09:49:24 +10:00
parent 6d367d4ab2
commit 382f35e503
28 changed files with 946 additions and 227 deletions

View File

@@ -483,14 +483,15 @@ bool opengl_onFrameFormat(LG_Renderer * renderer, const LG_RendererFormat format
}
bool opengl_onFrame(LG_Renderer * renderer, const KVMFRFrameBuffer * frame,
int dmaFd, const KVMFRFrameDamageRect * damage, int damageCount,
LG_ExternalFrame * externalFrame, const KVMFRFrameDamageRect * damage,
int damageCount,
LG_RendererFrameToken frameToken, LG_FrameReleaseFn releaseFn,
void * releaseOpaque, uint64_t releaseHandle)
{
struct Inst * this = UPCAST(struct Inst, renderer);
/* The legacy renderer supports only deferred CPU reads. */
if (!frame || dmaFd >= 0)
if (!frame || externalFrame)
return false;
LG_LOCK(this->frameLock);