I wrote:

>> ..............
>> ..............
>>
>> the fact that now there was basically nothing between draw calls to guard
>> against fp op safety - as fp ops were not being used mostly, means that it 
>> was
>> much more likely u ended up with the cpu in a non emms state before doing fp
>> ops. even so i found it hard to reproduce in a simple test case - i needed 
>> the
>> whole gradient dialog in e to bring it out. (i found that edje_test - the old
>> one did it too eventually). my simple "display a white rectangle and a 
>> gradient
>> on top only) test app didnt show the bug. the draw pipeline was too simple 
>> and
>> had no mmx/sse state change before drawing the gradient - that is why.
>>
>> as such in the old code in some circumstances the cpu was lest in a bad fp
>> state before entering the gradient draw code - but only very rarely.
>>
>> so i repeat - the code as such is threadsafe. mmx/sse state is separate to
>> threads entirely. the only bit of code outside the gradient code that did fp
>> ops was suitably guarded before doing fps ops. it's much cheaper to guard
>> before the much rarer use of fps ops than guard on every exit from possible
>> mmx/sse ops.
>>
>>   
>>     
>       Let me read thru this is more detail.. But basically Carsten,
> there's a problem with the pipes implementation, or they are somehow
> showing a prior problem of - adequately relasing mmx. One can't
> have this willy-nilly, either one can count on things to do what
> they're supposed to do or fix it. You need to pass floats around,
> you need to know if you can mix this func with fp ops or not, etc.
>
>   

      I still haven't had a chance to go into this in detail, nor
to go over some of the pipes (and other) code as I'd like.. and
unfortunately I have to run away for a few days so I may not have
a chance to do so for a bit... But, it's just untenable to have
things in this state of affairs man - it's an undesirable source of
potential bugs, inexplicable behavior, indeterminism ... One needs
to be sure what the evas internal functions do or don't do, what
one can count on or not, what behavior to expect, etc.

      One can imagine two extreme scenarios of how to deal with
this:
      One can fix things by making sure that all mmx use in the
rendering pipeline is 'cleaned-up' correctly - you can still have
known routines which themselves don't clean-up, but they just have
to be used only within ones which do.. and one has to make sure
that always holds, regardless of the possible execution path.
      Or, one can modify the rendering pipeline so that one never
uses any fp ops -- they would all be done in render-pre say. This
might be a bit radical and difficult to realize. One must also take
care to consider future extensions -- even now one can have image
'pixel' functions called, and we can't control what's being done
there, even if it's outside the canvas-render func... What about
if one is eventually allowed to provide a rendering function,
ie. one called within the canvas render func? What should they
expect.. and what should evas expect from them?

      Whatever the case may be, it's clear that one needs to be
more careful about what's going on, and of what could go on, and
that evas internals need to be more deterministic about fp/mmx,
one way or another.

      It's also clear that you need to be bit more careful about
the things you say, and your 'community' behavior in some ways.



____________________________________________________________
Click for online loan, fast & no lender fee, approval today
http://thirdpartyoffers.juno.com/TGL2141/fc/Ioyw6i3m3WL0hojlmOIaEdHXlXX5W7zi4gfmNJGQt15tepz7LO2utK/

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to