libge2d: ge2d strechblit consumes too much time [2/2]
PD#SWPL-60558
Problem:
ge2d strechblit consumes too much time
Solution:
add cache sync in libge2d
Verify:
w400
Signed-off-by: yuhua.lin <yuhua.lin@amlogic.com>
Change-Id: Ia58d788d5189f9b77febfbef93959e6218fdfc56
diff --git a/IONmem.c b/IONmem.c
index 6bde5b3..1923451 100644
--- a/IONmem.c
+++ b/IONmem.c
@@ -143,6 +143,25 @@
return ret;
}
+int ion_mem_sync_cache(int ion_fd, int shared_fd)
+{
+ int legacy_ion = 0;
+
+ legacy_ion = ion_is_legacy(ion_fd);
+ if (!legacy_ion)
+ return 0;
+ if (ion_fd >= 0 && shared_fd >= 0) {
+ if (ion_sync_fd(ion_fd, shared_fd)) {
+ __E("ion_mem_sync_cache err!\n");
+ return -1;
+ }
+ } else {
+ __E("ion_mem_sync_cache err!\n");
+ return -1;
+ }
+ return 0;
+}
+
int ion_mem_invalid_cache(int ion_fd, int shared_fd)
{
int legacy_ion = 0;
diff --git a/include/ion/IONmem.h b/include/ion/IONmem.h
index 8c02579..80f746b 100644
--- a/include/ion/IONmem.h
+++ b/include/ion/IONmem.h
@@ -24,6 +24,8 @@
int ion_mem_init(void);
unsigned long ion_mem_alloc(int ion_fd, size_t size, IONMEM_AllocParams *params, bool cache_flag);
+int ion_mem_sync_cache(int ion_fd, int shared_fd);
+
int ion_mem_invalid_cache(int ion_fd, int shared_fd);
void ion_mem_exit(int ion_fd);