hwc: reset buffers for unvis hwc_windows in _tdm_exynos_display_prepare_commit()... 33/165233/1
authorKonstantin Drabeniuk <k.drabeniuk@samsung.com>
Wed, 27 Dec 2017 07:06:26 +0000 (09:06 +0200)
committerKonstantin Drabeniuk <k.drabeniuk@samsung.com>
Wed, 27 Dec 2017 07:10:54 +0000 (09:10 +0200)
Change-Id: I810f6eaee6bda8a43db9fd903a34d30557a3c3e4
Signed-off-by: Konstantin Drabeniuk <k.drabeniuk@samsung.com>
src/tdm_exynos_output.c

index 144740d6a5d48f0288ed00b1672a4cf6ad5d0d4b..c2077e1c519bc378f78626c506801b7bf6bb3a81 100644 (file)
@@ -991,6 +991,23 @@ _get_number_of_visible_windows(struct list_head *hwc_window_list)
        return number;
 }
 
+static void
+_reset_buffers_for_unvis_hwc_windows(tdm_exynos_output_data *output_data)
+{
+       tdm_exynos_hwc_window_data *hwc_window_data = NULL;
+
+       if (!output_data->need_target_window)
+               output_data->target_hwc_window->surface = NULL;
+
+       LIST_FOR_EACH_ENTRY(hwc_window_data, &output_data->hwc_window_list, link) {
+               if (!output_data->need_target_window)
+                       hwc_window_data->present_on_target_wnd = 0;
+
+               if (hwc_window_data->client_type == TDM_COMPOSITION_NONE)
+                       hwc_window_data->surface = NULL;
+       }
+}
+
 static tdm_error
 _tdm_exynos_display_prepare_commit(tdm_exynos_output_data *output_data) {
 
@@ -1067,6 +1084,8 @@ _tdm_exynos_display_prepare_commit(tdm_exynos_output_data *output_data) {
                _set_hwc_window_buffer_to_layer(layer, hwc_window_data);
        }
 
+       _reset_buffers_for_unvis_hwc_windows(output_data);
+
        return TDM_ERROR_NONE;
 }
 
@@ -1686,23 +1705,6 @@ _print_validate_result(tdm_exynos_output_data *output_data)
        }
 }
 
-static void
-_reset_buffers_for_unvis_hwc_windows(tdm_exynos_output_data *output_data)
-{
-       tdm_exynos_hwc_window_data *hwc_window_data = NULL;
-
-       if (!output_data->need_target_window)
-               output_data->target_hwc_window->surface = NULL;
-
-       LIST_FOR_EACH_ENTRY(hwc_window_data, &output_data->hwc_window_list, link) {
-               if (!output_data->need_target_window)
-                       hwc_window_data->present_on_target_wnd = 0;
-
-               if (hwc_window_data->client_type == TDM_COMPOSITION_NONE)
-                       hwc_window_data->surface = NULL;
-       }
-}
-
 static void
 _restore_windows_assigned_layer_zpos(struct list_head *hwc_wnds)
 {
@@ -1801,8 +1803,6 @@ exynos_output_hwc_validate(tdm_output *output, uint32_t *num_types)
                _update_windows_previous_type(&output_data->hwc_window_list);
        }
 
-       _reset_buffers_for_unvis_hwc_windows(output_data);
-
        _update_layers_info(output_data);
 
        _print_validate_result(output_data);