VL.CEF performance/sync and stride vs. skia vs.winforms

posting some questions and no complains…for a change :)

  1. how is the webbrowser content updated in gamma. running some webgl stuff looks most of the times smooth in a stride window. sometimes there are hickups, framedrops for no reason. any idea why this happens.

  2. why is the framerate of the webcontent dropping to 30fps, when i disable shared texture (hint, you need to reload the index.html)

  3. why is the performance of webbrowser to skialayer crap (latency, stutters) compared to the stride version ?

4.out of interest, would it be tricky to display the webbrowser content in a winforms window in gamma. i’ve done lots of winforms stuff in c# but is there a resource to look at regarding CEFand winforms in gamma or is it even just a few nodes ? would this make a performance difference compared to skia/stride conversions. thinking about tool windows.

really exciting possibility, since we can bring our web expertise to gamma projects, which is super nice.

here comes the test project concerning stutters (very rare but they happen)

CEF_example.zip (157.4 KB)

no problem here
did you try mainloop to fix vvvv framerate when is/isnot in focus?

ad 1) Each frame we call CEF’s SendExternalBeginFrame, the mainloop of the browser should therefor be the same as the one of vvvv. But we don’t know when the actual rendered frame will arrive. The browser runs out of process, so by nature it’s completely asynchronous. It will call vvvv back at some point with the rendered data. That could explain why the rendering is not in perfect sync.

ad 2) No idea, probably because the non-accelerated drawing is too slow?

ad 3) Hm, I can’t reproduce that claim with your patch. The animation looks smooth without any stutters.

ad 4) Currently the Skia renderer window inherits from Form → it already is already a WinForms control. The Stride renderer uses the window abstraction given by Stride (which internally is building the native window with SDL).

thanks for the answers. yeah, looks a little but out of sync.

i was wondering if whoever wrapped the VL.CEF thing could add a pure winforms extension, without any additional rendering. i’m thinking about porting automataUI as a webUI, which only needs chromium in a window without any additional stuff. i tried with the CEF nugget and have it working. there is no reason to bring my own CEF stuff if there is VL.CEF. it was easier to patch a POC with the basic CEF nugget rather than VL.CEF, since it is a wrapper and needs c# work i guess.

I wonder whether you could simply use the new WebView2 Release Notes for the WebView2 SDK - Microsoft Edge Development | Microsoft Docs for your Automata? Never tested it, but it’s Microsoft’s new web control (WinUI, WPF, WinForms) based on Edge (which is based on Chromium).

1 Like

oh, super cool. so i don’t have to ship chromium. makes sense. super lightweight. just 32MB when i compile the example. nice.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.