Commit graph

7 commits

Author SHA1 Message Date
Stephen Hellings
0bede114a6 Remove garbage GPTed readme 2026-03-10 13:11:57 -04:00
Stephen Hellings
42b111410c Again 2026-03-09 21:32:16 -04:00
Stephen Hellings
83cdaffd05 Cry 2026-03-09 18:07:07 -04:00
Stephen Hellings
e245af128c fix: add frame.finish() to flush GL commands, fix IPC write ordering
Two critical fixes:

1. **Flickering (GL frame not finalized)**: render_frame was missing
   the frame.finish() call that nested.rs has (line 688). Without it,
   GL rendering commands are never flushed to the GBM BO, so the DRM
   page flip scans out a buffer with stale/incomplete pixel data,
   alternating between rendered and unrendered content every frame.

2. **IPC protocol corruption (EPIPE/ECONNRESET)**: Node's socket.write()
   is async and buffers data in userspace. The native sendFd() call
   (sendmsg with SCM_RIGHTS) goes directly to the kernel, racing ahead
   of the buffered header+plane bytes. The compositor then reads the
   1-byte SCM_RIGHTS dummy as the next message magic, hits 'unknown
   magic', and the IPC reader thread exits — closing the socket (EPIPE).
   Fix: use fs.writeSync() on the raw fd for header+plane data so it
   reaches the kernel buffer before sendFd's sendmsg.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-09 14:31:47 -04:00
Stephen Hellings
d184ab69e4 Fix types + build issue 2026-03-08 23:38:12 -04:00
Stephen Hellings
e03fe3739f Commit lockfile 2026-03-08 23:27:48 -04:00
Stephen Hellings
33359b814e Initial commit 2026-03-08 23:04:02 -04:00