summaryrefslogtreecommitdiff
path: root/src/lib/evas/common (follow)
AgeCommit message (Collapse)Author
2015-07-07evas - image core - fix unloading of images to work againCarsten Haitzler (Rasterman)
i think this has been disabled for a while. image unloading is broken - esp with gl enigne as due to async move it was effectively disabled. this re-enables it. unloading is deferred with a managed list of things needing unloading and then when any async sw renders are not busy any more - do the unload then in the mainloop of all pending/flagged images to unload @fix
2015-06-25eolian/generator: constify all prototypes for @const functionsDaniel Kolesa
Otherwise there would be conflicts in certain circumstances. This also requires adding const on many existing functions, and similar work is necessary in Elementary. @fix
2015-06-17evas: change interface evas_3d to evas_canvas3dOleksandr Shcherbina
Summary: Regard to https://phab.enlightenment.org/T2479 it is need for right generation Eolian files Reviewers: cedric Subscribers: cedric, tasn Differential Revision: https://phab.enlightenment.org/D2711 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-06-09evas/evas_op_add_main: Remove superfluous if branch.Stefan Schmidt
We do the same in both branches: return func. CID: 1267478, 1267480, 1267482, 1267486
2015-06-09evas/evas_op_mul_main: Remove superfluous if branch.Stefan Schmidt
We do the same in both branches: return func. CID: 1267468, 1267471
2015-06-09evas/evas_op_mask_main: Remove superfluous if branch.Stefan Schmidt
We do the same in both branches: return func. CID: 1267481, 1267485
2015-06-09evas/evas_op_copy_main: Remove superfluous if branch.Stefan Schmidt
We do the same in both branches: return func. CID: 1267483, 1267484, 1267487, 1267488
2015-06-09evas/evas_op_blend_main: Remove superfluous if branch.Stefan Schmidt
We do the same in both branches: return func. CID: 1267469, 1267470, 1267473, 1267474
2015-06-09evas/evas_op_sub_main: Remove superfluous if branch.Stefan Schmidt
We do the same in both branches: return func. CID: 1267476, 1267477, 1267479, 1267489
2015-05-27evas - fix yuv support to no longer ignore 709 colorspace paramsCarsten Haitzler (Rasterman)
if yuou use 709 instead of 601 yuv (ycbcr) evas will just be wrong and use 601. this fixes that and implements 709. it also fixes a scaling bug for yuv in the gl engine. no one noticed but me, so i won't call this a bug fix, and it can go into the next efl release - no need to backport unless it actually bothers peolpe (which it seemingly doesn't)
2015-05-18evas font draw - fix up some whitespace/indenting/formattingCarsten Haitzler (Rasterman)
2015-05-13evas: add support for BUILD_NEON_INTRINSICS to evas_convert_rgb_32.cYury Usishchev
Summary: This fixes build for aarch64 when TILE_ROTATE is disabled and BUILD_NEON is enabled(it is enabled by default for aarch64 since https://phab.enlightenment.org/D2309). Reviewers: cedric, raster Subscribers: cedric Projects: #efl Differential Revision: https://phab.enlightenment.org/D2498 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07evas: do not cast uint64x1_t to int in evas_common_convert_argb_premulCedric BAIL
Summary: In GCC 5.1 arm_neon header for aarch64 was changed. It is not possible anymore to silently cast uint64x1_t to int. So replace cast with proper getter function to avoid following error: lib/evas/common/evas_convert_color.c:50:18: error: incompatible types when assigning to type 'DATA32 {aka unsigned int}' from type 'uint64x1_t' nas += vpaddl_u32(vpaddl_u16(vpaddl_u8(cmp))); Reviewers: raster, cedric, devilhorns Subscribers: cedric Projects: #efl Differential Revision: https://phab.enlightenment.org/D2443 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07evas: implement _op_blend_rel_mas_c_dp_neon using NEON intrinsicsCedric BAIL
Summary: NEON intrinsics can be built both for armv7 and armv8. Reviewers: raster, cedric Reviewed By: cedric Subscribers: cedric Projects: #efl Differential Revision: https://phab.enlightenment.org/D2442 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07evas: implement _op_blend_rel_{p,pan}_dp_neon using NEON intrinsicsCedric BAIL
Summary: NEON intrinsics can be built both for armv7 and armv8. Reviewers: raster, cedric Subscribers: cedric Projects: #efl Differential Revision: https://phab.enlightenment.org/D2441 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07evas: implement _op_blend_rel_c_dp_neon using NEON intrinsicsCedric BAIL
Summary: NEON intrinsics can be built both for armv7 and armv8. Reviewers: raster, cedric Reviewed By: cedric Subscribers: cedric Projects: #efl Differential Revision: https://phab.enlightenment.org/D2440 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07evas: implement _op_blend_rel_p_c_dp_neon using NEON intrinsicsCedric BAIL
Summary: NEON intrinsics can be built both for armv7 and armv8. There were no NEON variant for this function, so it was added with all copies to init function. Reviewers: raster, cedric Reviewed By: cedric Subscribers: cedric Projects: #efl Differential Revision: https://phab.enlightenment.org/D2417 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07evas: implement pixel_color blending functions using NEON intrinsics.Cedric BAIL
Summary: NEON intrinsics can be built both for armv7 and armv8. Implemented functions: _op_blend_pan_c_dp_neon _op_blend_p_can_dp_neon _op_blend_pan_can_dp_neon _op_blend_p_caa_dp_neon _op_blend_pan_caa_dp_neon Reviewers: raster, cedric Subscribers: cedric Projects: #efl Maniphest Tasks: T2341 Differential Revision: https://phab.enlightenment.org/D2409 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07evas: implement _op_blend_p_mas_dp_neon and _op_blend_pas_mas_dp_neon in ↵Cedric BAIL
NEON intrinsics. Reviewers: raster, cedric Reviewed By: cedric Subscribers: cedric Projects: #efl Differential Revision: https://phab.enlightenment.org/D2391 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07evas: improve _op_blend_p_dp_neon intrinsics implementationCedric BAIL
Summary: Use vceqq and vbsl instead of twice as much vmovl and vadd instructions. Replace vaddq_u8 with vaddq_u32. This allows NEON code to behave exactly like C version. Reviewers: raster, cedric Reviewed By: cedric Projects: #efl Differential Revision: https://phab.enlightenment.org/D2361 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07evas: implement _op_blend_mas_can_dp_neon in NEON intrinsics.Yury Usishchev
Reviewers: raster, cedric Reviewed By: cedric Projects: #efl Differential Revision: https://phab.enlightenment.org/D2369 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07evas: implement _op_blend_p_c_dp_neon in NEON intrinsics.Yury Usishchev
Reviewers: cedric, raster Projects: #efl Differential Revision: https://phab.enlightenment.org/D2366 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07evas: improve _op_blend_mas_c_dp_neon intrinsics implementation.Yury Usishchev
Summary: Use vceqq and vbsl instead of twice as much vmovl and vadd instructions. Replace vaddq_u8 with vaddq_u32. This allows NEON code to behave exactly like C version. Reviewers: cedric, raster Projects: #efl Differential Revision: https://phab.enlightenment.org/D2362 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07evas: implement _op_blend_mas_c_dp_neon in NEON intrinsics.Yury Usishchev
Reviewers: raster Subscribers: cedric Projects: #efl Differential Revision: https://phab.enlightenment.org/D2312
2015-05-07evas: implement _op_blend_p_dp_neon and _op_blend_pas_dp_neon in NEON ↵Yury Usishchev
intrinsics. Reviewers: raster, cedric Reviewed By: cedric Subscribers: cedric Projects: #efl Differential Revision: https://phab.enlightenment.org/D2311
2015-05-07evas: implement _op_blend_c_dp_neon in NEON intrinsics.Yury Usishchev
Reviewers: raster, cedric @feature Reviewed By: cedric Subscribers: jpeg, cedric Projects: #efl Differential Revision: https://phab.enlightenment.org/D2310 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07evas: enable NEON-optimized code for aarch64.Yury Usishchev
Summary: Add new define, BUILD_NEON_INTRINSICS to control whether NEON inline code or NEON intrinsics should be built. GCC NEON intrinsics can be built both for armv7 and armv8. However NEON inline code can be built only for armv7. @feature Reviewers: raster, stefan_schmidt, cedric Subscribers: cedric, stefan_schmidt Projects: #efl Differential Revision: https://phab.enlightenment.org/D2309 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-22Evas text utils: move the non-ot function into the current ifdef.Tom Hacohen
This function should only be build when OT is off. Move it to the #else part of the ifdef.
2015-04-21Evas tiler: Remove unused functions (clang)Jean-Philippe Andre
rect_list_add_split_strict is still kept for reference in eina_tiler.c
2015-04-21Evas: Fix clang warning (actually use function)Jean-Philippe Andre
Those helper functions are barely ever used...
2015-04-10evas: _op_blend_p_dp_neon and _op_blend_pas_dp_neon miscalculation fixCedric BAIL
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-10Evas: Fix use of uninitialized valuesJean-Philippe Andre
Not a meaningful issue, but let's make Coverity happy. Fixes: - CID 1293522 - CID 1293521
2015-04-08Evas masking: Avoid potential crashes (SW)Jean-Philippe Andre
Make sure not to sample the mask image outside its boundaries. This is a series of last resort checks. I can not reproduce the crashes but know they have happened. I used EINA_UNLIKELY more for clarity than for compiler optimizations.
2015-04-07evas common: make logic same to c code version.ChunEon Park
As C version, It increase alpha value by 1 to avoid loosing of the remains while it divides values. Neon version does same technique to make same results.
2015-04-07evas common: NEON version of evas_common_convert_argb_premul.ChunEon Park
This patch reduces power consumption by around 18mA in certain scenarios (music player list scroll, my files sound list scroll), making evas_common_convert_argb_premul() ~60% faster (6.2msec->2.6msec). Take music-player application, make 100 copies of the standard Over the Horizon” song, scroll up and down to see those downscaled-from-720x720 thumbnails enter and leave the screen. Every time a list item enters the screen, the image is re-read (as evas image cache is not large enough to store more than two pictures of that size), and one call of _common_convert_argb_premul() occurs, taking ~6.2msec (which is not much compared to ~60msec spent in libpng->libz (the biggest bottleneck here), but still noticeable). A similar power consumption improvement is observed during scrolling sounds list of the same files in My Files application (just with idle level ~100mA lower). We also checked the new code to be correct on random input data. all tests are performed based on tizen device. Signed-Off-By: Artem Dergachev <dergachev.a@samsung.com>
2015-04-06evas/common: improve evas_common_convert_argb_unpremul() computation.ChunEon Park
prev logic increased the alpha channel by 1 so the unpremul resulted in the color got too diff from the origin. We can't avoid losing the rest values while dividing values in premul/unpremul() but this will recover the value better closed to origin value.
2015-04-03efl: move mmap API to be part of Efl_File class.Cedric BAIL
2015-04-03evas/common Fixed incorrect blend pixel color logic in neon.ChunEon Park
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-03-20evas - font - new color bitmap support - rename funcs to match fileCarsten Haitzler (Rasterman)
2015-03-19evas: Support bitmap embedded color font.Youngbok Shin
Summary: Add the code for getting bitmap buffers from embedded color font, And draw the bitmap buffers as images. For drawing the bitmap buffers as images, evas_common_draw_context_font_ext_set internal API is changed to pass additional gl engine functions. T2139 @feature Test Plan: 1. Set a bitmap embedded color font to textblock. 2. Set a unicode emoticon text. 3. See the result. Please check the sample unicode in the following link. http://www.fileformat.info/info/unicode/char/1f3af/index.htm http://www.fileformat.info/info/unicode/char/1f555/index.htm http://www.fileformat.info/info/unicode/char/2600/index.htm http://www.fileformat.info/info/unicode/char/263a/index.htm Reviewers: tasn, woohyun, jpeg, raster Reviewed By: raster Subscribers: herdsman, cedric Differential Revision: https://phab.enlightenment.org/D2084
2015-02-27evas scale sample - fix useage of eina thread queueCarsten Haitzler (Rasterman)
pass in ref not &ref (other uses were fine - this single one broken)
2015-02-23Revert "Revert "evas: refcounting initialisation and protect things.""Cedric BAIL
This reverts commit 789633b321dbb0669b93ba2da3bbaaede3de6233. Now this should be useful since we have refactored the shutdown logic of all engine.
2015-02-23evas: refactor shutdown.Cedric BAIL
2015-02-20Revert "evas: refcounting initialisation and protect things."Cedric BAIL
This reverts commit 216397bea635d93266aca73f9e724979375f2e3b. We do have some engine that are doing partial shutdown outside of the protected function, leading to a crash.
2015-02-20evas: use two thread when scaling image.Cedric BAIL
This is for now just a small experiment. It was based on the experiment made with OpenMP. I prefered to only use Eina here as we have already all the infrastructure to do this nicely and simply. As a result I get a 65% speed improved on average for the involved scaling operation. The secondary CPU is on my laptop running with a load of 75% percent. I don't have right now the time to do power consumption analysis, but I think it shouldn't be to bad. I am also not throwing more core at this as we are not able to use the second core at its max already, so additional core may result in a bigger energy loss without enough gain.
2015-02-20evas: refcounting initialisation and protect things.Cedric BAIL
2015-02-20evas: refactor software engine initialisation.Cedric BAIL
2015-02-10Evas masking: Fix potential issues with map & maskingJean-Philippe Andre
These bugs have not been observed but the code logic did not make sense. @fix
2015-02-10Evas masking: Fix some garbage pixels with the SW engineJean-Philippe Andre
A rare case of garbage data would happen if smooth scaling was called with a mask and 1:1 scaling. Use the proper render_op to COPY for the first pass. @fix
2015-01-21warning--Daniel Zaoui