target_synchronous(3)
π target_synchronous (3) β¨
okay bestie, welcome to the Arcan Lua API β this one's a little spicy so buckle up π
πΈ NAME πΈ
target_synchronous β enforce synchronous transfers, no cap π
π¦ SYNOPSIS π¦
target_synchronous( dstvid, state )
β¨ DESCRIPTION β¨
okay so real talk: this function is potentially dangerous π β there's a genuine tradeoff between responsiveness and reliable readbacks for recordtargets. here's the vibe: if the frameserver isn't ready to receive when a readback from the GPU has been completed, the frame gets discarded. gone. poof. π that's the async-discard behavior, and you can alter it on a single frameserver by calling target_synchronous.
what does it change? it switches up the synchronization behavior so that processing will not continue until the frameserver is ready to receive. the way that this works means an untrusted frameserver implementation can potentially livelock the main engine π³ and it'll also introduce additional jitter between rendered frames. so like... highkey be careful, bestie.
but wait π«Ά β if this is performed on a frameserver in decode mode, the "discard if PTS is too old" behavior gets disabled, and the last presented timestamp will be set to the frame that would've otherwise been discarded. iconic, honestly.
π switching it on and off π
this behavior can be switched on or off dynamically by setting state to:
1/trueβ the default, bestie π (synchronous mode, obvi)0/falseβ off, back to the async life π
β οΈ friendly reminder that this is the potentially-dangerous one β livelock and jitter are absolutely on the menu if you're not careful π
π SEE ALSO π
targetcontrolπ
later bestie π«Ά this page came from the Arcan Lua API, dated October 2026 β go forth and synchronize responsibly, mwah πβ¨
π¦ where this page comes from
- nixos 26.05: arcan 0.7.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms