Hi,

On Wed, Jan 23, 2013 at 5:38 PM, Jeff Hoogland <jeffhoogl...@linux.com> wrote:
> Stable versions of what? Bodhi currently uses EFL 1.7.5 and the stable E17
> release.

With those versions you can disable compositing, right?

-- Ulisses

> On Wed, Jan 23, 2013 at 1:34 PM, Ulisses Furquim 
> <ulis...@profusion.mobi>wrote:
>
>> Hi Jeff,
>>
>> On Wed, Jan 23, 2013 at 5:29 PM, Jeff Hoogland <jeffhoogl...@linux.com>
>> wrote:
>> > I understand all those reasons, the difference is I'm just going to have
>> to
>> > start telling people like this ->
>> >
>> >
>> http://forums.bodhilinux.com/index.php?/topic/7701-enlightenment-cpu-usage-at-98-on-intel-i810/
>> >
>> > That they simply can't use E17 because it will eat all of their CPU all
>> the
>> > time with compositing :-/
>> >
>> > Personally I use compositing on all my system, it looks great in general.
>>
>> What about stable versions?
>>
>> -- Ulisses
>>
>> > On Mon, Jan 21, 2013 at 10:26 PM, Carsten Haitzler <ras...@rasterman.com
>> >wrote:
>> >
>> >> On Mon, 21 Jan 2013 10:51:01 -0600 Jeff Hoogland <jeffhoogl...@linux.com
>> >
>> >> said:
>> >>
>> >> > Raster had mentioned on IRC last night that compositing had become
>> >> > non-optional in SVN builds already. What is the reason for this? I
>> >> > understand compositing is the future - but forcing it on everyone it
>> >> going
>> >> > to make E much less usable on legacy hardware - a place where it
>> really
>> >> > shines.
>> >>
>> >> reasons:
>> >>
>> >> 1. aesthetics. having to "design" for both compositing and
>> non-compositing
>> >> is
>> >> limiting and painful.
>> >> 2. code simplification - this cuts down mem usage and resource usage
>> where
>> >> we
>> >> make non-compositing code paths redundant (never loaded) or even get
>> >> totally
>> >> removed. it also makes e and efl's code MUCH easier to maintain as we
>> cut
>> >> out a
>> >> whole class of pain.
>> >> 3. if you do non-compositing, then your other option is avoid anything
>> that
>> >> isnt a pure rectangle.. or use shapes... do u have any idea how
>> inefficient
>> >> shaped windows are? do you know how they are implemented? compositing is
>> >> MORE
>> >> efficient than shaped windows except for the most trivial shape cases.
>> it
>> >> also
>> >> has fewer artefacts. don't make me do a rundown on the actual
>> >> implementation of
>> >> xshape etc... i have little enough time as-is. take if from someone who
>> >> started
>> >> doing x shape stuff back in 1996...
>> >> 4. wayland - we cant sensibly become a wayland compositor without ALWAYS
>> >> compositing.
>> >> 5. compositing only allows us to move content out of windows (eg the
>> >> container
>> >> bg window that holds a canvas with wallpaper and your efm icons etc.)
>> and
>> >> merge
>> >> it into the COMPOSITOR canvas. this reduces mem footrpint drastically -
>> >> example. you have a 1600x1200 screen. you have a 1600x1200 walllpaper. e
>> >> will
>> >> keep the rgba pixels for that wallpaper inside its memory because it
>> >> renders
>> >> them to the bg canvas with software. this bg canvas is a window..that is
>> >> composited.. this means this window consumes at least 1 pixmap of
>> memory...
>> >> that means 1600x1200 (8mb) for the original PLUS 8mb for the composited
>> >> pixmap.. to store essentially the same content PLUS some icons. if we
>> move
>> >> it
>> >> into the compositor canvas we get:
>> >>
>> >> 1. wallpaper image is rendered and scaled by the same enigne as the
>> >> compositor
>> >> (sw or gl).
>> >> 2. only the original wp image is needed, not an intermediate window
>> >> pixmap. we
>> >> save 8mb of memory insnantly.
>> >> 3. evas already has caches for scaled data and can throw out original
>> data
>> >> etc.
>> >> so we also recycle this infra directly.
>> >> 4. "animated" wallpapers now get faster as they render with gl... as do
>> >> wallpaper transitions etc.
>> >>
>> >> repeat for everything else in e17... it all goes into the compositor
>> canvas
>> >> EXCEPT "window content" (client windows - be they e's internal dialogs
>> or
>> >> external apps - to e's compositor these will just be image objects -
>> they
>> >> currently are, but they also include the frame window sections
>> >> (borders/titles)
>> >> provided by e - these will be split out to live in the canvas).
>> >> 6. if objects move into the comp canvas - like window borders, menus,
>> >> shelves... we solve the clipping problem. right now borders, shelves,
>> menus
>> >> etc. get clipped by their window. that's life. once they live in the
>> comp
>> >> canvas they can extend beyond their object bounds (add glows, shadows,
>> >> other
>> >> effects or pixels/imagery extending beyond their bounds). this comes for
>> >> "free"
>> >> when moving into evas and out of a window and that is part of the plan
>> - to
>> >> migrate content all into the compositor canvas.
>> >> 7. i can go on... (tldr time - you asked "why" so read, or never ask
>> again
>> >> :))
>> >> this has been talked about a lot amongst devs already. it's not possible
>> >> to do
>> >> non-compositing AND compositing and move forward. we have little enough
>> >> developer resources as-is. this simplifies and allows us to have a
>> future.
>> >> the
>> >> fact that we BOTHERED to have fast software compositing is a big part of
>> >> the
>> >> commitment to make compositing work for EVERYONE - you DONT need a
>> >> "supported
>> >> gpu + driver" to use it. yes - it means extra system load, and slowdowns
>> >> for
>> >> those avoiding compositing now entirely - but that's the price of
>> progress.
>> >> we've "lowered" the cost, but it isn't "free". no one is totally LEFT
>> OUT.
>> >> the
>> >> software compositor works even in 16bpp (with extra overhead though).
>> and
>> >> 8bpp .. well ok - sorry 8bpp people. if you can only do 8bpp then we're
>> >> leaving
>> >> you behind. sorry. 1995 will be happy to keep you. :( we CAN reduce
>> >> overhead of
>> >> software compositing still - it's heavy because we HAVE to copy pixels
>> >> from x
>> >> (read data via x(shm)getimage). we can't fix that unless we can get a
>> >> zero-copy
>> >> path. x allows us no such path for software (shared pixmaps are not an
>> >> option
>> >> fyi). we COULD shortcut this path - but we need to do it at BOTH sides
>> of
>> >> the
>> >> pipeline. that means modify toolkits/apps. we CAN modify efl to bypass x
>> >> entirely for rendering and only use it for focus/input/events and use a
>> >> back-channel shared memory system to export pixel buffers direct from
>> >> client to
>> >> comp. it's doable. we'd cut overhead in half for copies as we... get
>> rid of
>> >> them (we only have now rendering overehead). *IF* comp also bypasses
>> x's fb
>> >> management and goes direct to fbdev or kms... and does evil stuff... we
>> can
>> >> ALSO make "rendered pixel uploads" totally free. ie zero copy buffer
>> >> swaps. -
>> >> then the ONLY overhead we have is filling the comp "backbuffer". what
>> you
>> >> may
>> >> not be aware of is.. evas ALREADY has this infra. it can already do this
>> >> little
>> >> zero-copy buffer swap trick... all the code is there.. it's even been
>> >> tested
>> >> with real drivers that do support this - there is even a virtual buffer
>> >> swap
>> >> emulation layer to test it if you don't have such a magic driver....
>> >> BUT... it
>> >> requires driver work to make this possible - or bypassing x's fb driver
>> >> entirely... but we can already do this kind of stuff. we're FAR from
>> >> maximum
>> >> optimal level in sw compositing. in fact if we did both of the above for
>> >> things
>> >> like scrolling your browser window around we'd basically increase
>> >> framerate by
>> >> 3 times compared to now. that's our existing potential upside if we plug
>> >> all
>> >> the bits together. we're far from pure ultimate potential, and even
>> being
>> >> far
>> >> from it.. we are very usable on low end systems. so without a gpu to
>> >> accelerate
>> >> it all and make it all zero-copy... we have a potential upside (for efl
>> >> apps)
>> >> of up to 3 TIMES faster (and a minimum of 2 times faster). for non-efl
>> >> epps up
>> >> to 2 TIMES faster. though at this point.. we're almost being a wayland
>> >> style
>> >> compositor directly, so i'm wondering if we'll ever bother with x stuff
>> to
>> >> optimize this far and just jump to being wayland from there, as wayland
>> is
>> >> all
>> >> about sending buffers around and avoiding copies... efl already lends
>> >> itself
>> >> very well to this. it already has the start of a wayland port and a
>> wayland
>> >> compositor in e17. and as above... we cant move to doing wayland stuff
>> >> unless
>> >> we move to being "compositing only". keeping mind "compositing only"
>> does
>> >> not
>> >> EXCLUDe optimizations like "zeo copy/composite" you do for things like
>> >> fullscreen windows (games etc.). if you do this just right you can take
>> the
>> >> client pixel buffer it sends you (it sends a handle to it - it doesn't
>> >> COPY it
>> >> to you) and you just program the gfx chipset to pint the real hw buffer
>> >> scanout
>> >> to the client buffer. ALL the compositor is doing is updating where the
>> fb
>> >> points to... it's doing zero actual compositing/copying/blending work in
>> >> this
>> >> case. its turles... err.. zero copy all the way down. so your games are
>> not
>> >> affected at all. if at any point some menu or dialog appears on top.. it
>> >> begins
>> >> compositing again for that frame on until that overlayed window goes
>> away.
>> >> given smart enough compositing and the right hardware you can EVEN avoid
>> >> compositing in such simple scenarios.. a lot of hardware supports RGBA
>> >> OVERLAYS
>> >> - multiple buffers blended on top of eachother. your hw mouse cursor is
>> >> exactly
>> >> such an overlay buffer. "xv video acceleration uses such a wh buffer
>> often
>> >> too
>> >> - but its yuv, not rgba... but same principle. a smart compositor can
>> >> PROGRAM
>> >> the overlay buffer to point to this "popup menu/dialog" and keep the 2
>> >> framebuffers totally separate... zero compositing/copies... until the 3
>> of
>> >> windows becomes too complex to point directly at hw buffer layers, then
>> it
>> >> has
>> >> to start compositing for real... my point here is... this is the path we
>> >> MUST
>> >> go down. we NEED to. wayland is being designed for this.. and they're
>> >> right.
>> >> this is how u get zero-tearing smooth screen updates with minimal
>> overhead.
>> >> it's a fundamental shift in perspective from copying pixels to a single
>> >> shared
>> >> framebuffer with clip rects, but it is the reality of most hardware you
>> >> already
>> >> have from phones through to set top boxes, tablets, laptops and
>> desktops.
>> >> you
>> >> just don't know it. most of these capabilities lie idle and unused
>> because
>> >> our
>> >> display system is too "old school" AND because of nay-sayers holding
>> back
>> >> progress saying "waaaa - i don't want compositing!". reality is that
>> >> basically
>> >> anyone who KNOWS graphics, hw and infra all the way down to these nuts
>> and
>> >> bolts is already in agreement - this is the way to go. we agree because
>> we
>> >> know
>> >> what is actually going on behind the scenes. the decision to be
>> compositing
>> >> only is a big step - but in the right direction. suffice to say, that if
>> >> you
>> >> don't "get it" now, in a few years, you will. the penny may drop. maybe
>> for
>> >> some it won't - you may be the same people who think a green screen
>> vt100
>> >> is
>> >> all u ever need. pixels are useless. color is a waste of memory. reality
>> >> is...
>> >> sticking to non-composited displays is as useful as sticking to a vt100
>> >> attached to a 192000 baud serial line. :)
>> >>
>> >> --
>> >> ------------- Codito, ergo sum - "I code, therefore I am" --------------
>> >> The Rasterman (Carsten Haitzler)    ras...@rasterman.com
>> >>
>> >>
>> >
>> >
>> > --
>> > ~Jeff Hoogland <http://jeffhoogland.com/>
>> > Thoughts on Technology <http://jeffhoogland.blogspot.com/>, Tech Blog
>> > Bodhi Linux <http://bodhilinux.com/>, Enlightenment for your Desktop
>> >
>> ------------------------------------------------------------------------------
>> > Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
>> > MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
>> > with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
>> > MVPs and experts. ON SALE this month only -- learn more at:
>> > http://p.sf.net/sfu/learnnow-d2d
>> > _______________________________________________
>> > enlightenment-users mailing list
>> > enlightenment-users@lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/enlightenment-users
>>
>>
>>
>> --
>> Ulisses Furquim
>> ProFUSION embedded systems
>> http://profusion.mobi
>> Mobile: +55 19 9250 0942
>> Skype: ulissesffs
>>
>>
>> ------------------------------------------------------------------------------
>> Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
>> MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
>> with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
>> MVPs and experts. ON SALE this month only -- learn more at:
>> http://p.sf.net/sfu/learnnow-d2d
>> _______________________________________________
>> enlightenment-users mailing list
>> enlightenment-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-users
>>
>
>
>
> --
> ~Jeff Hoogland <http://jeffhoogland.com/>
> Thoughts on Technology <http://jeffhoogland.blogspot.com/>, Tech Blog
> Bodhi Linux <http://bodhilinux.com/>, Enlightenment for your Desktop
> ------------------------------------------------------------------------------
> Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
> MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
> with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
> MVPs and experts. ON SALE this month only -- learn more at:
> http://p.sf.net/sfu/learnnow-d2d
> _______________________________________________
> enlightenment-users mailing list
> enlightenment-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-users



-- 
Ulisses Furquim
ProFUSION embedded systems
http://profusion.mobi
Mobile: +55 19 9250 0942
Skype: ulissesffs

------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
_______________________________________________
enlightenment-users mailing list
enlightenment-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-users

Reply via email to