e_hwc_window_queue: set backup buffer if user of queue is mismatched in buffer_change 14/225614/2
authorChangyeon Lee <cyeon.lee@samsung.com>
Wed, 19 Feb 2020 11:17:39 +0000 (20:17 +0900)
committerChangyeon Lee <cyeon.lee@samsung.com>
Mon, 2 Mar 2020 09:18:05 +0000 (18:18 +0900)
it is possible that hwc_window has queue and queue buffer but queue of user is null.

hwc_window set queue and queue state is set ->
hwc_window unset queue and queue state is unset waiting ->
hwc_window set same queue and commit queue buffer ->
not set backup buffer

in this case, set backup buffer and should not be migrate HWC

Change-Id: I33b4324733733932db32be71179d5d7c069feac8

src/bin/e_hwc_window_queue.c

index 9402e5d..020a1f2 100644 (file)
@@ -1114,7 +1114,8 @@ _e_hwc_window_queue_cb_buffer_change(void *data, E_Client *ec)
         flags = _comp_wl_buffer_flags_get(comp_buffer);
         if (flags !=  E_HWC_WINDOW_QUEUE_BUFFER_FLAGS) return;
 
-        if (e_hwc_window_queue_buffer_find(hwc_window->queue, comp_buffer->tbm_surface))
+        if ((hwc_window->queue->user == hwc_window) &&
+            (e_hwc_window_queue_buffer_find(hwc_window->queue, comp_buffer->tbm_surface)))
           return;
      }