On Wed, 29 Apr 2015 17:24:44 -0700 Marc MERLIN <[email protected]> said:
> On Thu, Apr 30, 2015 at 08:58:51AM +0900, Carsten Haitzler wrote: > > > > 1. something updating (window? a gadget? some animation). > > > > > > So I think I found the problem. When I have mplayer running, e19 goes into > > > that mode. > > > > that'd do it. no updates - e will be idle. > > Is it just the pager though? Why is E involved in doing all that work and > chewing CPU when mplayer is talking directly to the video card via opengl? mplayer is updating something - eg it's window. if its window update e HAs to composite the window - mplayer may talk directly to gpu to render window content, but once rendered, you will never SEE the content unless the compositor then renders it.. again - as part of your display. that is the nature of compositing (at its core/simplest). so every time anything on your screen updates ... anything visually... e must be involved and wake up and do a render cycle itself. a blinking cursor, a clock ticking its second hand. a video playing. they all require the compositor be involved as the next stage after the app has provided a render/update to the xserver. in addition e renders a duplicate in the pager - at a smaller size. this is how your pager shows an up-to-date miniature of every desktop - if there is a window on that desktop that updated... the pager is also updating it's view of that window thus - the pager updates. this is part of e - part of the compositor basically (part of the canvas the compositor controls). > > > > 2. intel drivers not supporting buffer age and/or swap with region thus > > > > evas is FORCED to do full re-draws of the whole screen > > > > > > Can I check if that is the case? > > > > i can tel you for free. intel drivers don't supprot buffer age, even though > > it was intel that came up with the extn. nvidia drivers do support it > > though. :) > (...) > > Understood, thanks. > > > > Aaah, very good suggestion. Yes, I have the new pager. Let me see if I can > > > turn it off next time to see if that helps. > > > Or can I just tell it to update once per second or less? > > > > sorry - no - no controls over update frequency. it updates as often as your > > screen content does. it's nice in that it stays up to date nicely. but this > > does cost somewhat. it's one of those small things that might be nice to > > add to eg "rate limit" pager updates to every Nth frame (2nd, 4th, 8th > > etc.). > > Thanks for confirming. Yeah, it'd be nice to have a control, or even just > window outlines with no updates. > It looks like there is no way to turn off snapshotting, and it's expensive > enough on my system that it looks like I should just turn off the pager > altogether. e doesn't snapshot. it literally is just drawing the window in a tiny miniature. e already has the entire window content "as a texture". it already has a pointer to it. that is how compositing works basically. it simply tells the canvas object "your source updated" (the source being the window pixmap that we bind to a texture). a result of that is that if this was not a vsync wakeup, efl (not even e) queues a wakeup via an animator for the next vsync. when that wakeup happens, then at the end of that wakeup, the canvas that *IS* your entire desktop goes through a render cycle. evas then looks for changed/updated flags on objects - if any, and calulates what regions updated and then will draw based on engine details, things like gl extensions available etc. etc. the e16 pager literally was doing screengrabs continually - every i think from memory 10th of a second all day, every day. it would grab just a scanline - then scale with the cpu, but it grabbed. e19+ is literally pointing the pager to the same data as the window and just drawing it a 2nd time. that's all. turning off the pager may drop the cpu by some amount - but it'll still burn cpu on any updates. evas is generating 1000's of vertexes every frame in the gl engine if ti has to render the whole screen. every letter in a titlebar is 6 vertexes. that is EXCLUDING effects like inset, soft shadow etc. inset will double that to 12 vertexes. soft shadow will raise that to more like 150 vertexes ... PER LETTER. in EVERY TITLE it has to render. that includes text in your shelf. now we add more vertexes for all the little objects we have all over in the shelf - all the bevels, overlayed objects and more... every little image/rectangle will be 6 vertexes at a minimum - if it has border scaling like the shelf (which is most of these images) then you will get 54 vertexes instead of 6 for that... every shadow around a window generates 54 vertexes... every titlebar basr is 54. shelf shadow 54, shadow of shelf another 54... every little pager inset plus its shadow is likely doing 108 vertexes. i'm throwing these numbers out there so you can begin to count all these little elements on your screen and get an appreciation for how many vertexes the cpu is generating on the fly (and trust me - it's more than this when we start to see clipped content as clipping is done at vertex generation time... to avoid overdraw). with partial rendering we can limit what vertexes we have to generate to just the update area (eg the window being updated plus bounding box of any other updates that frame - so window + pager bounded). without that we have to re-render the whole screen. you can see the effect this has on cpu by FORCING evas to assume a specific buffering mode. go to: settings -> look -> composite -> advanced -> rendering and switch to "triple buffered swaps". this forces evas to assume the gl driver is triple buffering and it'll reduce its update regions. catch - driver may at times NOT triple buffer in strict sequence and thus you will get update artifacts. that is why the buffer age extension exists - every frame we ask the driver how old our new backbuffer is and thus can know how much to update. > Sometimes I miss the old e16 pager which worked well enough for me and > without being so resource hungry on graphics cards that were old and crappy > by today's standards. It didn't do real time updates, but I didn't care :) > > Anyway, off to turning my pager off unless I misunderstood you. > > Thanks, > Marc > -- > "A mouse is a device used to point at the xterm you want to type in" - A.S.R. > Microsoft is to operating systems .... > .... what McDonalds is to gourmet > cooking Home page: http://marc.merlins.org/ > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) [email protected] ------------------------------------------------------------------------------ One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ enlightenment-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-users
