e_hwc_window: add E_HWC_WINDOW_RESTRICTION_QUEUE_UNSET_WAITING 50/304350/1
authorChangyeon Lee <cyeon.lee@samsung.com>
Tue, 16 Jan 2024 06:10:41 +0000 (15:10 +0900)
committerchangyeon lee <cyeon.lee@samsung.com>
Tue, 16 Jan 2024 08:23:52 +0000 (08:23 +0000)
commit8a96b2b8fba20e4ba8d8a858d2ec1d443256b043
tree1b27d5fc659849d1c867e98c927a6d3af078faeb
parent05a396ef88715dbe48204cdba79d1be37a26836e
e_hwc_window: add E_HWC_WINDOW_RESTRICTION_QUEUE_UNSET_WAITING

after hwc use thread for copying backup buffer, hwc_window can
have queue buffer even if it unset queue.
it occurs flickering in below case.

1. hwc set DV state to window
2. tdm backend set CL state to window
3. evas compositor render with window at buffer 1
3. window 1 has queue buffer even if queue is unset
4. tdm backend set DV state to window because window 1 has queue buffer
5. evas compositor render without window at buffer 2
6. copy thread update buffer of window and tdm backend set CL state
7. hwc set CL state to window and commit buffer 1 at target window
8. hwc commit buffer 2 and window has flickering because it is not
   rendered in buffer 2

so hwc restrict device state if hwc window is queue unset wait state.

Change-Id: I80c79d8e9276a2a0c8d296e53c16aaadd02633db
src/bin/e_hwc_window.c
src/bin/e_hwc_window.h
src/bin/e_hwc_window_queue.c