I posted this on stackoverflow and instantly got my question closed and hidden by some (probably AI) moderator with the reason:
Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Somehow they had the resources to instantly close my question after I posted it, but when editing it and appealing, they can't react for over half an hour? Definitely AI. Not going to use that shitty site ever again.
Anyway, here's the (original, unedited) question:
——————————————————————————
(Ubuntu 25) Chrome/Brave occasionally displays at 33ms intervals, dropping committed frames (rendered at 60fps)
I am writing a WASM application with WebGL, rendering to a fullscreen canvas. Occasionally, I get stutters or dropped frames. I am running this in Brave (Chrome) on an Ubuntu 25.04 (Gnome 48/X11, Linux 6.14.0-37-generic) machine, and using requestAnimationFrame() to schedule my rendering. As can be seen in the screenshot below, my render loop gets scheduled neatly at the start of each frame, and then finishes within around a millisecond in the main thread. The GPU also finishes in around 100µs. But for some reason, there is this occasional frame that takes 33.3ms for no discernible reason, despite containing two fully rendered and committed (the "Commit" compositor event in the profiler) frames. Also, there is no measurable GC work going on within that time.

Is this my fault, or is this Chrome's fault, or is this Ubuntu's fault? Could it be that the GPU driver is somehow having a GC that is not part of the profiling, and can cause missed frames? Or could it be my monitor that occasionally desyncs? Are there any known issues that could cause this?
It is not that my frame logic takes too long, because then, it would not skip a rendered frame, but simply render fewer frames. But when I have things that are only shown for a single frame, these sometimes do not show up at all, as the entire rendered frame gets dropped and never displayed. Is there anything I can do about this?