> 
> ...
> 
>    /* I TOLD YOU! this here STOPS the gradeint bugs. it's a missing
>     * emms() before doing floating point operations! the thread pipe code
>     * just brought it out reliably. i swear i had seen this long before i
>     * ever added the thread/pipe code.
>     *
>     * now here is why it happens. NO drawing function... EXCEPT
>     * evas_common_polygon_draw() and evas_common_gradient_draw() use floating
>     * point for drawing (the poly stuff should really lose it actually), but
>     * nicely nestled in the poly draw code is a evas_common_cpu_end_opt()
>     * before it does any operations that would use floating point. the fact
>     * is the gradient code was LUCKY before without the thread pipes to almost
>     * all the time have another func do a evas_common_cpu_end_opt() before it
>     * was called. that was no longer the case with the thread renderer and
>     * it suffered. that is why on amd systems it seemed to work as i beileve
>     * on amd cpu's the amms done by evas_common_cpu_end_opt() is not needed
>     * to do floatingpoint ops again.
>     *
>     * after a lot of futzing about - this was the culprit (well axx and axy
>     * were garbage values eventually i found after much debugging and i traced
>     * their garbageness back to here).
>     */
>    evas_common_cpu_end_opt();
> 
>    angle = (gr->fill.angle * M_PI) / 180.0;
>    axx = (cos(angle) * 65536.0);
>    ayy = axx;
>    axy = (sin(angle) * 65536.0);
>    ayx = -axy;
> 
> ...
> 

      No man, you're not telling me anything I didn't already know.
In fact, this is exactly what I suggested privately to Gustavo was
likely happening and a possible solution to try (seems he never had
a chance to try it). But it's a hack, and not really a fully thread-
safe solution.

      And no, the gradient code wasn't "lucky" that all other funcs that
use mmx were releasing those when they finish - that was the very essence
of the design of the no-threads implementation.. it was *expected* that
all funcs were to do that (thus, stating that it was missing an emms call
"somewhere" was spacious and worthless).
      You should've realized that adding threads were going to break that
and either fixed it, or said something to me. Instead you did nothing,
said nothing, and when the bug is introduced due to your oversight, you
start claiming that gradients were buggy and always rendered incorrectly
and there was "nothing new".. etc.

      Sorry Carsten, but that was extremely bad form and unbecoming
behavior on you part.


____________________________________________________________
Need cash? Apply now for a credit loan with fast approval.
http://thirdpartyoffers.juno.com/TGL2141/fc/Ioyw6i3m3qYuWNEnKK17HlnGL00olVgS1YmRycoonvoET3uoUOYCAQ/

-------------------------------------------------------------------------
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