exynos_output_hwc_validate: reset buffers for unvis hwc_windows 80/163180/1
authorKonstantin Drabeniuk <k.drabeniuk@samsung.com>
Thu, 7 Dec 2017 14:33:46 +0000 (16:33 +0200)
committerKonstantin Drabeniuk <k.drabeniuk@samsung.com>
Thu, 7 Dec 2017 14:33:46 +0000 (16:33 +0200)
Change-Id: Ieb6a3ac7ee841d45e73169f16f4f40e5892d0fab
Signed-off-by: Konstantin Drabeniuk <k.drabeniuk@samsung.com>
src/tdm_exynos_output.c

index 72c2f6919d4710a6d9680d1fe4462a49f054b391..842c1566a06b2f95f7884e97851bc4adde685af4 100644 (file)
@@ -1629,6 +1629,19 @@ _update_layers_info(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 *hw = NULL;
+
+       if (!output_data->need_target_window)
+               output_data->target_hwc_window->surface = NULL;
+
+       LIST_FOR_EACH_ENTRY(hw, &output_data->hwc_window_list, link)
+               if (hw->client_type == TDM_COMPOSITION_NONE)
+                       hw->surface = NULL;
+}
+
 tdm_error
 exynos_output_hwc_validate(tdm_output *output, uint32_t *num_types)
 {
@@ -1678,6 +1691,8 @@ exynos_output_hwc_validate(tdm_output *output, uint32_t *num_types)
                _update_windows_previous_assigned_layer_zpos(&exynos_output->hwc_window_list);
        }
 
+       _reset_buffers_for_unvis_hwc_windows(exynos_output);
+
        _update_layers_info(exynos_output);
 
        _print_validate_result(exynos_output);