Hi All - <div><br></div><div>I have written an application in GTK+(3.18.9-1, standard C on Fedora 23) with includes a number of "real time" scrolling graph widgets (like an oscilloscope). As recommended on the cairo animation tutorial pages, it uses gtk_widget_queue_draw() with a timer to update the graphs.</div><div><br></div><div>The application probably has ~10 graphs at any given time. </div><div><br></div><div>The gtk redraw function for the graphing widgets is pretty straightforward and completes in very little time. However, as the number of widgets increases (or as the widgets are expanded to full screen), the Xorg process begins to hog all of the CPU. With multiple fullscreen widgets across multiple monitors, the slowdown is quite dramatic.</div><div><br></div><div>I've created a simplified working example at <<a href="http://pastebin.com/in17XGjs" style="color: rgb(0, 136, 204);">http://pastebin.com/in17XGjs</a>>. Under normal conditions, on my system, the load of Xorg is ~5%. With just one full screen widget, this load balloons to nearly 30%. With two fullscreen widgets, the load is even higher.</div><div><br></div><div>Is this load normal? Is there a way to reduce it? Normally, I would reduce the load by invalidating a small region rather than the whole widget, but since the graph is scrolling, the whole thing needs to be updated.</div><div><br></div><div>Should I be using a different cairo backend (although everything still has to sit inside of a GTK widget)? </div><div><br></div><div>In my naive mind, playing multiple fullscreen movies simultaneously shows almost no increased load on my system, yet these simple widgets have a giant load...I must be doing something wrong...</div><div><br></div><div>Any help is appreciated!</div><div>David</div><div><br></div>