summaryrefslogtreecommitdiffstats
path: root/modules/gdscript/gdscript_disassembler.cpp
diff options
context:
space:
mode:
authorRiteo <riteo@posteo.net>2024-06-27 23:28:29 +0200
committerRiteo <riteo@posteo.net>2024-06-28 01:47:25 +0200
commitf27471fbd806c9e2ee48f0e49f9d4f8f4e6af0a8 (patch)
treecf0097bfe55016477b270f8663d0cd9c17478937 /modules/gdscript/gdscript_disassembler.cpp
parentcae2f853dcd1ecc26ca68de08cec62089dee1f26 (diff)
downloadredot-engine-f27471fbd806c9e2ee48f0e49f9d4f8f4e6af0a8.tar.gz
Wayland: minimize surface commits and limit them to the main thread
Before of this patch, as explained in the usual commented-wall-of-text-longer-than-the-actual-patch-itself™, due to the multithreaded nature of the Wayland thread, it was possible to commit a surface while the renderer was doing stuff, which was _very_ wrong. Initially the consequences of such a sin weren't obvious but, now that explicit synchronization is becoming more and more common, we can't commit a buffer randomly without basically guaranteeing a nasty, nasty crash (and we should have avoided commits altogether in the first place to ensure atomic surface updates). We now only trigger a commit _in the main thread_ when low processor usage mode is on _and_ if we know that we won't be rendering anything as, due to its intermittent nature, it makes "legacy" (pre xdg_wm_base v6) frame callback based suspension quite annoying.
Diffstat (limited to 'modules/gdscript/gdscript_disassembler.cpp')
0 files changed, 0 insertions, 0 deletions