e_hwc_window: add E_HWC_WINDOW_RESTRICTION_QUEUE_UNSET_WAITING 49/304349/1
authorChangyeon Lee <cyeon.lee@samsung.com>
Tue, 16 Jan 2024 06:10:41 +0000 (15:10 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Tue, 16 Jan 2024 08:23:31 +0000 (17:23 +0900)
commit630f0e7c646e553c95a84a602fbf3047307f9596
treed86618abc1ef79cac651322520bda46c14843828
parent74aef0426f8d90cbea397a326fb6bf3a30b45acb
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