efl/src/lib/evas/common
Cedric BAIL 3b46609140 evas: _op_blend_p_dp_neon and _op_blend_pas_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 :

alpha = 256 - (*s >> 24)

in NEON:

"vmvn.u8 q4,q0 \n\t"
// ie ~(*s>>24) === 255 - (*s>>24)

We cant just add "1" as overflow will occur in case (*s>>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.

Same approach as in D455.

Reviewers: raster, cedric, stefan_schmidt

Reviewed By: cedric

Subscribers: cedric

Projects: #efl

Differential Revision: https://phab.enlightenment.org/D2308

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-10 12:05:05 +02:00
..
evas_op_add
evas_op_blend evas: _op_blend_p_dp_neon and _op_blend_pas_dp_neon miscalculation fix 2015-04-10 12:05:05 +02:00
evas_op_copy Evas: Fix COPY op for mask+color 2014-11-12 17:02:26 +09:00
evas_op_mask
evas_op_mul
evas_op_sub
language Evas bidi: Make code more explicit (silence coverity). 2014-08-12 10:05:52 +01:00
evas_alpha_main.c Evas: Reduce verbosity of alpha functions 2014-03-07 11:07:15 +09:00
evas_blend.h
evas_blend_main.c Evas: Don't pass whole RGBA_Image to low-level render functions 2014-11-13 12:20:57 +09:00
evas_blend_private.h Evas: Don't pass whole RGBA_Image to low-level render functions 2014-11-13 12:20:57 +09:00
evas_blit_main.c evas - remove logicallly dead code 2014-08-27 14:16:50 +09:00
evas_convert_color.c evas common: make logic same to c code version. 2015-04-07 23:06:43 +09:00
evas_convert_color.h evas: handle premultiplying of AGRY88. 2014-04-01 22:00:15 +09:00
evas_convert_colorspace.c
evas_convert_colorspace.h
evas_convert_gry_1.c
evas_convert_gry_1.h
evas_convert_gry_8.c
evas_convert_gry_8.h
evas_convert_grypal_6.c
evas_convert_grypal_6.h
evas_convert_main.c Evas convert: Remove dead code 2014-10-28 10:54:51 +09:00
evas_convert_main.h
evas_convert_rgb_8.c
evas_convert_rgb_8.h
evas_convert_rgb_16.c fix structurally dead code 2014-08-14 20:17:16 +09:00
evas_convert_rgb_16.h
evas_convert_rgb_24.c evas: @fix convert to 24bits so dst_jump is used properly. 2014-03-06 11:19:12 -03:00
evas_convert_rgb_24.h
evas_convert_rgb_32.c evas: fix build on armv7l. 2014-09-03 18:24:05 +02:00
evas_convert_rgb_32.h
evas_convert_yuv.c
evas_convert_yuv.h
evas_cpu.c
evas_draw.h evas: Support bitmap embedded color font. 2015-03-19 19:02:03 +09:00
evas_draw_main.c evas: Support bitmap embedded color font. 2015-03-19 19:02:03 +09:00
evas_font.h evas font draw - fix possible custout rect leak found by coverity 2014-08-25 13:18:51 +09:00
evas_font_compress.c Evas masking: Avoid potential crashes (SW) 2015-04-08 18:17:34 +09:00
evas_font_compress_draw.c whitespace - fixup trailing whitespace 2014-06-17 15:31:57 +09:00
evas_font_default_walk.x
evas_font_draw.c evas - font - new color bitmap support - rename funcs to match file 2015-03-20 10:49:49 +09:00
evas_font_load.c evas: Support bitmap embedded color font. 2015-03-19 19:02:03 +09:00
evas_font_main.c evas: Support bitmap embedded color font. 2015-03-19 19:02:03 +09:00
evas_font_ot.c
evas_font_ot.h
evas_font_private.h
evas_font_query.c Evas textblock: Fix clipping issues with some texts with width > advance. 2014-03-10 14:58:18 +00:00
evas_image.h Evas: Add encoding parameter to the savers 2014-06-13 16:05:48 +09:00
evas_image_data.c Evas: Use Evas_Colorspace to declare cspace 2014-04-15 18:50:37 +09:00
evas_image_load.c evas: let's handle dds also during tests properly. 2014-10-21 23:42:03 +02:00
evas_image_main.c Evas: Remove irrelevant comment and disabled code 2014-11-19 17:10:37 +09:00
evas_image_private.h Evas: Use Evas_Colorspace to declare cspace 2014-04-15 18:50:37 +09:00
evas_image_save.c formatting - convert tabs to whitespace 2014-07-01 19:57:04 +09:00
evas_image_scalecache.c Revert "evas scalecache - fix thread deadlock posssibility" 2014-08-19 08:02:36 +09:00
evas_line.h Evas masking: Implement support for line draw (SW) 2015-01-07 15:06:02 +09:00
evas_line_main.c Evas masking: Implement support for line draw (SW) 2015-01-07 15:06:02 +09:00
evas_map_image.c Evas masking: Implement support for map draw (SW) 2015-01-07 15:06:02 +09:00
evas_map_image.h Evas masking: Implement support for map draw (SW) 2015-01-07 15:06:02 +09:00
evas_map_image_aa.c evas/map: removed unnecessary. 2014-11-26 15:17:51 +09:00
evas_map_image_core.c Evas masking: Implement support for map draw (SW) 2015-01-07 15:06:02 +09:00
evas_map_image_internal.c Evas masking: Fix potential issues with map & masking 2015-02-10 11:39:24 +09:00
evas_map_image_loop.c evas/map: fix aa regression bug. 2014-12-19 21:52:06 +09:00
evas_model_load.c efl: move mmap API to be part of Efl_File class. 2015-04-03 16:23:13 +02:00
evas_model_save.c evas: Evas_3D_Mesh_File_Type sank into oblivion. Changing entry point to model_save_load. Changing API in examples. 2014-12-23 21:16:07 +01:00
evas_op_add_main_.c Evas: Don't pass whole RGBA_Image to low-level render functions 2014-11-13 12:20:57 +09:00
evas_op_blend_main_.c Evas masking: Fix mask blend functions (SW engine) 2015-01-07 15:06:03 +09:00
evas_op_copy_main_.c Evas: Don't pass whole RGBA_Image to low-level render functions 2014-11-13 12:20:57 +09:00
evas_op_mask_main_.c Evas: Don't pass whole RGBA_Image to low-level render functions 2014-11-13 12:20:57 +09:00
evas_op_mul_main_.c Evas: Don't pass whole RGBA_Image to low-level render functions 2014-11-13 12:20:57 +09:00
evas_op_sub_main_.c Evas: Don't pass whole RGBA_Image to low-level render functions 2014-11-13 12:20:57 +09:00
evas_pipe.c evas/map : set antialias context for map rendering. 2014-11-26 12:22:55 +09:00
evas_pipe.h
evas_polygon.h Evas masking: Implement support for polygon draw (SW) 2015-01-07 15:06:02 +09:00
evas_polygon_main.c Evas masking: Implement support for polygon draw (SW) 2015-01-07 15:06:02 +09:00
evas_rectangle.h Evas masking: Use alpha mask in SW engine draw functions 2015-01-07 15:06:02 +09:00
evas_rectangle_main.c Evas masking: Avoid potential crashes (SW) 2015-04-08 18:17:34 +09:00
evas_regionbuf.c
evas_scale_main.c evas - scalecache cutouts - fix possible leak coverity found 2014-08-25 12:49:22 +09:00
evas_scale_main.h evas: use two thread when scaling image. 2015-02-20 17:11:44 +01:00
evas_scale_sample.c Evas: Fix use of uninitialized values 2015-04-10 11:34:50 +09:00
evas_scale_smooth.c Evas masking: Use alpha mask in SW engine draw functions 2015-01-07 15:06:02 +09:00
evas_scale_smooth.h
evas_scale_smooth_scaler.c Evas masking: Avoid potential crashes (SW) 2015-04-08 18:17:34 +09:00
evas_scale_smooth_scaler_down.c Evas masking: Fix another set of rendering artifacts 2015-01-07 15:06:03 +09:00
evas_scale_smooth_scaler_downx.c Evas masking: Use alpha mask in SW engine draw functions 2015-01-07 15:06:02 +09:00
evas_scale_smooth_scaler_downx_downy.c Evas masking: Use alpha mask in SW engine draw functions 2015-01-07 15:06:02 +09:00
evas_scale_smooth_scaler_downy.c Evas masking: Use alpha mask in SW engine draw functions 2015-01-07 15:06:02 +09:00
evas_scale_smooth_scaler_noscale.c Evas: Don't pass whole RGBA_Image to low-level render functions 2014-11-13 12:20:57 +09:00
evas_scale_smooth_scaler_up.c Evas masking: Fix another set of rendering artifacts 2015-01-07 15:06:03 +09:00
evas_scale_span.c
evas_scale_span.h
evas_text_utils.c Evas textblock: Fix crash when cutting ligatures with formats. 2014-06-04 10:14:24 +01:00
evas_text_utils.h
evas_thread_render.c fix config.h inclusion across the tree 2014-09-23 15:56:46 -04:00
evas_tiler.c