I´m not quite sure, if this is a bug, but it seems to fit best into the bug category…
I´ve encountered stuttering playback of websites with moving items (eg. moving text) in the webrender top.
For testing I checked the website in Chrome and Chromium and both displayed it fine, even while Touchdesigner is running on the same machine. I then opened an empty patch, added a perform chop and a text top as well as the webrender top, to display the website as well as the fps, frametimes and dropped frames. I also added a trail chop and a op viewer to see graphs of those data. Added together I see that touchdesigner is running ultra smooth with constant frametimes and stable 60fps without any dropped frames, while the webrender top looks like it is outputing unstable 30fps max with dropped frames here and there.
Is there any way to fix this and achieve smooth playback ob animated websites?
sorry, seems like simply missed the framerate settings of the webrender top. I just whitnessed them when I created an example purely based on TD (the website I tested with is not available to the public, so I cant provide a link). With max render fps set to 60 and the number of buffered frames increased to 30 I now get smooth playback in both the “problematic” website and my testcase. Sorry to disturb you!
The taskmanager looked good by the way and I know about the list of Commandline Switches, but I didnt know, which one would help with my problem.
Thanks for your help however and have a nice day!
Fynn
I´m comming back to this again, because I still have some trouble with the webrender TOP. While it´s running okay at lower resolutions, its performing bad at 3840x2160. The Load on CPU and GPU when opening Chromium and showing the same webpage is significantly (somewhere between 2x and 10x) lower than the load I get, when starting the webrender TOP in Touchdesigner.
One thing I recognized is, that the Windows Task Manager show a lot of GPU Copy. Might there be a problem with the memory bandwidth? For some reason the “shared memory” toggle of the Webrender Top is grayed out and I cant click it. Maybe the bad performance has something to do with how the CEF hands over the data to touchdesigner? How exactly does this work?
First I thought the Webrender might be calculated on the CPU as the CPU Load is really high as soon as I enable it. Using the commandline flag for enabling the gpu (which should be activated by default I suppose?) didnt help anything however and I can see some load on the GPU.
After playing around with multiple resolutions, instances, framerates etc. it seems like opening a chromium application next to touchdesigner seems to have a significantly lower impact on the CPU & GPU-Load compared to activating the webrender Top.
Do you have any idea how I moght come around this bottleneck?
I would love to get some further information and would be happy if I can help with anything debugging this problem.
I´ve been testing with TD build 33600 and compared against the same Chromium Version as the Info Dat states for the Webrender Dat.
Indeed I have been testing with that private website, as I had no other site without cookies but with animations in mind. I will send you a link via pm if thats fine for you, so you can use it for testing.
If I set the resolution of a single webrender TOP to something really high like 7680x4320 I get stuttering Playback, even though neither the task manager nor the open hardware monitor shows any hardware bottlenecks (even though the gpu bus interface sometimes gets really high compared to other applications).
Unfortunately the fps-counter in chromium doesnt scale with the resolution, but in 3840x2160 you can see, that chromium shows a slightly different framerate and sometimes framedrops, even with a system running stable at 60fps. Besides the --show-fps-counter option I couldnt find a commandline argument, that seems to help for my debugging purposes, but I honestly dont understand, what most of them are doing…
The task manager shows for every webrender TOP that I enable in a project 7 cef-processes comming up. Maybe this is intended, but maybe this might have something to do with the performance issues?
Transferring images from cef to Web Render TOP is done with a shared mem operation. Each Web Render TOP spawns at least 3 cef processes, that is something that happens via Chromium and not something that we have control over. The Chromium browswer also spawns multiple process per tab. I’ll look into the other issues.