On Mon, Jan 7, 2013 at 6:36 PM, Ulisses Furquim <ulis...@profusion.mobi>wrote:

> Hi Raster,
>
> On Fri, Jan 4, 2013 at 12:45 PM, Carsten Haitzler <ras...@rasterman.com>
> wrote:
> > On Fri, 4 Jan 2013 11:21:28 -0200 Gustavo Sverzut Barbieri
> > <barbi...@profusion.mobi> said:
> >
> >> On Fri, Jan 4, 2013 at 10:56 AM, Carsten Haitzler <ras...@rasterman.com
> >wrote:
> >>
> >> > On Fri, 4 Jan 2013 10:42:13 -0200 Gustavo Sverzut Barbieri
> >> > <barbi...@profusion.mobi> said:
> >> >
> >> > ooh also.. with software comp.. rememebr that the async renderer is
> still
> >> > busy
> >> > rendering in the bg.. THEN sw comp in  the mainloop is grabbing
> pixels to
> >> > ximages WHILE sw evas is rendering async.. THEN it uses those ximages
> -
> >> > their
> >> > pixel data is SET to be theimage pixel data, and then an sync sw
> render
> >> > uses
> >> > that pixel data we grabbed async to the rendering of it (that used to
> be
> >> > sync) :) if its sw comp - but i've seen sync issues with gl comp and
> >> > content
> >> > containing incorrect pixels. :)
> >>
> >>
> >> I couldn't understand what you mean. Seems you're getting some ideas on
> >> where is the problem, then:
> >>
> >>  1 - explain that in a more understandable way :-P
> >>  2 - look into comp code to see where the problems could be. You wrote
> it,
> >> then you know that quite well.
> >>
> >> We can help you with #2 if you do #1 and let us know where to to pin
> point.
> >
> > comp can sync its canvas. it can ensure it is no longer rendering before
> it
> > changed the image data ptrs...
> >
> > BUT... it cant sync the canvases in the borders, or the menus, or the
> > background or the popups. these are separate windows and canvases.
> literally e
> > is doing x(shm)getimage() the pixels from x11 when updates happen. since
> async
> > rendering may be rendering a NEW frame WHILE it is doing a getimage for
> the
> > old one (the border canvas is rendering async to the comp canvas in its
> own
> > thread),
>
> What do you mean by its own thread here? You did see we have just one
> render thread for all canvases, right? Or am I missing what you really
> said here?
>

Expanding Ulisses explanation a bit:

1 - just software_x11 uses threads right now. Buffer doesn't. Then if the
border canvases are software, they are synchronous.

2 - we have a single thread share by ALL canvases. Then if every canvas
were async (see #1, they are not), the commands from the sub-canvases would
be executed BEFORE the commands for the parent. IOW, when comp canvas uses
the pixels from borders, the borders would be ready/painted (but see #1).

do we know a point where border canvas are updated? Do we do it at once, or
multiple times? Could you do a forced evas_sync() BEFORE start to paint sub
canvases?

-- 
Gustavo Sverzut Barbieri
http://profusion.mobi embedded systems
--------------------------------------
MSN: barbi...@gmail.com
Skype: gsbarbieri
Mobile: +55 (19) 9225-2202
------------------------------------------------------------------------------
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. SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122412
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to