If I print the frames that happen and the times a frame got "painted" (OnPaint) I get this log :
[...]
INFO:STDOUT:Frame happened
INFO:STDOUT:Frame happened
INFO:STDOUT:Painting a frame
INFO:STDOUT:Frame happened
INFO:STDOUT:Frame happened
INFO:STDOUT:Painting a frame
INFO:STDOUT:Frame happened
INFO:STDOUT:Frame happened
INFO:STDOUT:Painting a frame
INFO:STDOUT:Frame happened
INFO:STDOUT:Frame happened
INFO:STDOUT:Painting a frame
INFO:STDOUT:Frame happened
INFO:STDOUT:Frame happened
INFO:STDOUT:Painting a frame
INFO:STDOUT:Frame happened
INFO:STDOUT:Frame happened
INFO:STDOUT:Painting a frame
INFO:STDOUT:Frame happened
INFO:STDOUT:Frame happened
INFO:STDOUT:Painting a frame
INFO:STDOUT:Frame happened
INFO:STDOUT:Frame happened
INFO:STDOUT:Painting a frame
INFO:STDOUT:Frame happened
INFO:STDOUT:Frame happened
INFO:STDOUT:Painting a frame
[...]
I've completely emptied the OnPaint except for a print to make sure it completes in time, but same deal.
So, half the frames get rendered offscreen but never get sent to OnPaint. This creates a noticable delay in the application. Especially since due to engine infrastructure, it is already one main frame behind, so cef is then up to 4 frames (64milliseconds!) behind input.
Here's the debug log: https://pastebin.com/eTCchkXW
It isn't one of the examples or established frameworks, as I'm writing a vulkan game engine and I hope to use cef for the UI. It is still loosely based on one of the examples, I forgot which by now.
There is always something to update, as for the sake of testing this bug I created a permament css animation.
Should it help, here's the python module handling it:
https://pastebin.com/3zwQa8Ez
and here's the main html:
https://pastebin.com/27GSEfZY
I won't run without the rest of the engine, but maybe it helps.
Looking at the run flags, it looks like the important ones should be already automatically set as I tell it to offscreen render.