Commit Graph

13 Commits

Author SHA1 Message Date
ChunEon Park 2b0fb1ea1d evas/common Fixed incorrect blend pixel color logic in neon.
previously, it had the remaining value issues on blending computation.
The blending color result was in correct.

Signed-Off-By: Vladimir Kuramshin <v.kuramshin@samsung.com>
2015-04-03 19:48:30 +09:00
Jean-Philippe Andre 4bff14676e Evas masking: Fix mask blend functions (SW engine)
The selected op func was not performing the correct operation,
thus producing rendering artifacts. These functions should not
be used anywhere except in case of masking... which was not an
available option earlier.

It was doing (wrong):
dst = interp(mask, src, dst)

Instead of (correct):
dst = dst + (1 - mask) * src

NOTE:
This commit also disables MMX, SSE3 & NEON implementations of
pixel_mask blend operations, since they are also broken.
2015-01-07 15:06:03 +09:00
Carsten Haitzler 029c6847d7 evas render i386 - comment out structurally dead code
this code has bugs, so comment it out rather than just have a return
get rid of it - CID 1039499
2014-08-14 20:17:16 +09:00
ChunEon Park 0650797825 evas/blend: oops, missed a variable declaration.
build error by this commit.

aede29e2d4
2014-05-31 14:43:48 +09:00
ChunEon Park aede29e2d4 evas/blend - disable neon code.
Current neon code is a little buggy, the blend won't be done correctly.
so leave the c code depends on the compiler optimization.
2014-05-31 14:33:55 +09:00
Albin Tonnerre 64e153ea7f cleanup - Remove the extra copy of the code and use a define instead
_op_blend_pan_mas_dp is just a duplication of the code in
_op_blend_pas_mas_dp. Remove the extra copy of the code and use a define
instead; this is what the SSE3 code already does.
2014-02-09 19:44:49 +09:00
Albin Tonnerre 259f33679c evas/op_blend: rename LOOP_ALIGNED_U1_A48_SSE3 to LOOP_ALIGNED_U1_A48
Summary:
There's nothing SSE3-specific about that macro, let's use a more generic name
for it. Since that's just a generic macro, we can also allow non-SSE (eg.
NEON) code to use it if they want to

Reviewers: cedric

CC: cedric

Differential Revision: https://phab.enlightenment.org/D528
2014-02-09 09:42:52 +09:00
Carsten Haitzler 1a9ebc02c0 _op_blend_c_dp_neon miscalculation fix
Summary:
When processing random data result of this function differs from C variant in more than 50% cases.
This difference is due to alpha calculation, in C code :

 a = 256 - (c >> 24)

in NEON:

"vmvn.u8  q7,q6       \n\t"
// ie (8 bit)~(c>>24)    ===   255 - (c>>24)

We cant just add "1" as overflow will occur in case (c>>24) ==  0  (we use only 8 bit per channel in vector registers)
So here is the solution:
copy *d right before multiplication and add it to the result of it later.

This makes the function slower by 20-30% but it is still at least 2 times faster then C code.

Reviewers: raster

Differential Revision: https://phab.enlightenment.org/D455
2014-01-21 08:50:34 +09:00
Yury Usishchev 011fb2d10a Blending function rework and speedup
Summary:
_op_blend_mas_c_dp_neon rework:
main loop now process 4 pixels per iteration
fast path when *m == 0

Reviewers: raster

Reviewed By: raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D418
2013-12-29 13:29:28 +09:00
Carsten Haitzler deec62c9b6 evas - fix neon blend code used for text rendering to not leave dirty end 2013-11-15 19:17:01 +09:00
Sebastian Dransfeld 51023d2d4f evas: Keep sane name for public header
Evas_Common.h should be used for the public header, and rather rename
evas_common.h internal header to another name.

Sa:
Evas_Common_Header.h -> Evas_Common.h
evas_common.h -> evas_common_private.h

Shouldn't have both Evas_Common.h and evas_common.h because of case
insensitive filesystems.
2013-06-20 12:53:29 +02:00
ChunEon Park 8e3671eab7 evas/common - declare a var in function head. 2013-02-27 14:43:34 +09:00
Vincent Torri c15e9c6575 merge: and now Evas
I've tested make -j 3 install and it works nicely

I've tested expedite with software and opengl xlib,
and it works. Not tested other engines, so please
report any problems (engines or other) on the ML.

TODO: examples and tests, I'll add them later

ISSUE: Eina_Unicode size check. It indirectly depends on
       eina_config.h, which is created at the end of the
       configure script. So its size is always 0. I don't
       know how that size is used, so I can't do a lot,
       for now.


SVN revision: 78895
2012-11-04 11:51:42 +00:00