That makes sense. The GUI is likely more responsive because frame staging is now serialized with rendering: - The background goroutine no longer copies a large frame into Vulkan-mapped memory concurrently with GUI/render work. - StageFrame waits for the GPU fence before writing, removing CPU/GPU memory contention and undefined synchronization. - The bridge creates deterministic backpressure: the source cannot begin another frame until the current payload is staged. - The main thread now controls the complete render sequence instead of coordinating loosely through two channels. So we fixed both correctness and scheduling stability without adding another frame copy.