aboutsummaryrefslogtreecommitdiffstats
path: root/meta-efl/recipes-efl/efl/evas/revert.r83789.patch
blob: a5b8ce6c3ccc671d094632b60cd58611264a1ae3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
From 134e338a40af875d5f7b221a7a8dbeefa7a48f55 Mon Sep 17 00:00:00 2001
From: Daniel Willmann <d.willmann@samsung.com>
Date: Tue, 07 May 2013 09:49:53 +0000
Subject: Revert "Backport rev 83789"

This reverts commit 9a7a28b7582f516c67b23c4bb1a016cfc2ec5b31.
Was reverted long ago in efl as it doesn't actually work.

Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
---
diff --git a/ChangeLog b/ChangeLog
index 54da44a..93d3834 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1294,3 +1294,7 @@
 
         * Evas text: Fixed line size calculation when using multiple
         fonts.
+
+2013-05-16	Daniel Wilmann
+        * x11 backend: Revert "Fix memory usage spike when rotating with the
+				software_x11 engine". This doesn't actually work.
diff --git a/NEWS b/NEWS
index 6188963..c8002db 100644
--- a/NEWS
+++ b/NEWS
@@ -13,6 +13,7 @@ Fixes:
    * Evas: If an object goes to be hidden without replacing the cur/prev state info, the object context can be corrupted at the next show time. Now it replaces the cur/prev in that rare case.
    * Fix recursive proxy image rendering to just render black
    * Evas text: Fixed line size calculation when using multiple fonts.
+   * Revert "Fix memory usage spike when rotating with the software_x11 engine."
 
 Evas 1.7.6
     * Fix SIGFPE in evas map update if image is 0.
diff --git a/src/modules/engines/software_x11/evas_xlib_outbuf.c b/src/modules/engines/software_x11/evas_xlib_outbuf.c
index 3cb1ea0..e337e99 100644
--- a/src/modules/engines/software_x11/evas_xlib_outbuf.c
+++ b/src/modules/engines/software_x11/evas_xlib_outbuf.c
@@ -362,7 +362,7 @@ evas_software_xlib_outbuf_setup_x(int w, int h, int rot, Outbuf_Depth depth,
 RGBA_Image *
 evas_software_xlib_outbuf_new_region_for_update(Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch)
 {
-   RGBA_Image         *im = NULL;
+   RGBA_Image         *im;
    Outbuf_Region      *obr;
    int                 bpl = 0;
    int                 use_shm = 1;
@@ -455,11 +455,6 @@ evas_software_xlib_outbuf_new_region_for_update(Outbuf *buf, int x, int y, int w
 	  }
 	else
 	  {
-            /* FIXME: For the onebuf case we probably need to do the same thing we did below
-             * (try to get an existing image before we allocate a new one). This code path
-             * is not really used at the moment so no way to test (and that's why the change
-             * is not implemented here as well.
-             */
 #ifdef EVAS_CSERVE2
              if (evas_cserve2_use_get())
                im = (RGBA_Image *)evas_cache2_image_empty(evas_common_image_cache2_get());
@@ -613,73 +608,26 @@ evas_software_xlib_outbuf_new_region_for_update(Outbuf *buf, int x, int y, int w
      }
    else
      {
-        obr->xob = _find_xob(buf->priv.x11.xlib.disp,
-                             buf->priv.x11.xlib.vis,
-                             buf->priv.x11.xlib.depth,
-                             w, h,
-                             use_shm,
-                             NULL);
 #ifdef EVAS_CSERVE2
         if (evas_cserve2_use_get())
-          {
-             if (obr->xob)
-               im = (RGBA_Image *)evas_cache2_image_data(evas_common_image_cache2_get(),
-                                                        w, h,
-                                                        (DATA32 *) evas_software_xlib_x_output_buffer_data(obr->xob, &bpl),
-                                                        alpha, EVAS_COLORSPACE_ARGB8888);
-
-             if (!im)
-               {
-                  if (obr->xob) _unfind_xob(obr->xob, 0);
-                  im = (RGBA_Image *)evas_cache2_image_empty(evas_common_image_cache2_get());
-                  if (!im)
-                    {
-                      free(obr);
-                      return NULL;
-                    }
-                  else
-                    {
-                       im->cache_entry.w = w;
-                       im->cache_entry.h = h;
-                       im->cache_entry.flags.alpha |= alpha ? 1 : 0;
-                       evas_cache2_image_surface_alloc(&im->cache_entry, w, h);
-                    }
-               }
-          }
+          im = (RGBA_Image *)evas_cache2_image_empty(evas_common_image_cache2_get());
         else
 #endif
+          im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
+        if (!im)
           {
-             if (obr->xob)
-               im = (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(),
-                                                        w, h,
-                                                        (DATA32 *) evas_software_xlib_x_output_buffer_data(obr->xob, &bpl),
-                                                        alpha, EVAS_COLORSPACE_ARGB8888);
-
-             if (!im)
-               {
-                  if (obr->xob) _unfind_xob(obr->xob, 0);
-                  im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
-                  if (!im)
-                    {
-                      free(obr);
-                      return NULL;
-                    }
-                  else
-                    {
-                       im->cache_entry.w = w;
-                       im->cache_entry.h = h;
-                       im->cache_entry.flags.alpha |= alpha ? 1 : 0;
-                       evas_cache_image_surface_alloc(&im->cache_entry, w, h);
-                    }
-               }
+             free(obr);
+             return NULL;
           }
-
-        /* Need to update cache_entry w/h here because the render path expects them to be updated
-         * to the new geometry. */
         im->cache_entry.w = w;
         im->cache_entry.h = h;
         im->cache_entry.flags.alpha |= alpha ? 1 : 0;
-
+#ifdef EVAS_CSERVE2
+        if (evas_cserve2_use_get())
+          evas_cache2_image_surface_alloc(&im->cache_entry, w, h);
+        else
+#endif
+          evas_cache_image_surface_alloc(&im->cache_entry, w, h);
 	im->extended_info = obr;
 	if ((buf->rot == 0) || (buf->rot == 180))
           {
--
cgit v0.9.1