support hwc_set_client_target_buffer_info 63/271263/2
authorChangyeon Lee <cyeon.lee@samsung.com>
Thu, 17 Feb 2022 03:32:10 +0000 (12:32 +0900)
committerChangyeon Lee <cyeon.lee@samsung.com>
Thu, 17 Feb 2022 12:04:36 +0000 (21:04 +0900)
Change-Id: I4ac084c229ac525d1a17101c7ce950edb6fe0d79

src/libhal-backend-tdm-vc4/tdm_backend_vc4.c
src/libhal-backend-tdm-vc4/tdm_backend_vc4.h
src/libhal-backend-tdm-vc4/tdm_vc4_hwc.c

index 1ac5cd5..b69c999 100644 (file)
@@ -507,6 +507,7 @@ hal_backend_tdm_vc4_init(void **data)
        hwc_funcs->hwc_get_available_properties = vc4_hwc_get_available_properties;
        hwc_funcs->hwc_get_client_target_buffer_queue = vc4_hwc_get_client_target_buffer_queue;
        hwc_funcs->hwc_set_client_target_buffer = vc4_hwc_set_client_target_buffer;
+       hwc_funcs->hwc_set_client_target_buffer_info = vc4_hwc_set_client_target_buffer_info;
        hwc_funcs->hwc_set_client_target_acquire_fence = vc4_hwc_set_client_target_acquire_fence;
        hwc_funcs->hwc_validate = vc4_hwc_validate;
        hwc_funcs->hwc_get_changed_composition_types = vc4_hwc_get_changed_composition_types;
index 7ee3a84..904bed9 100644 (file)
@@ -91,6 +91,8 @@ hal_tdm_error        vc4_hwc_get_capabilities(hal_tdm_hwc *hwc, hal_tdm_hwc_capa
 hal_tdm_error        vc4_hwc_get_available_properties(hal_tdm_hwc *hwc, const hal_tdm_prop **props, int *count);
 tbm_surface_queue_h  vc4_hwc_get_client_target_buffer_queue(hal_tdm_hwc *hwc, hal_tdm_error *error);
 hal_tdm_error        vc4_hwc_set_client_target_buffer(hal_tdm_hwc *hwc, tbm_surface_h buffer, hal_tdm_region damage);
+hal_tdm_error        vc4_hwc_set_client_target_buffer_info(hal_tdm_hwc *hwc, hal_tdm_hwc_window_info *info);
+
 hal_tdm_error        vc4_hwc_set_client_target_acquire_fence(hal_tdm_hwc *hwc, int acquire_fence);
 hal_tdm_error        vc4_hwc_validate(hal_tdm_hwc *hwc, hal_tdm_hwc_window **composited_wnds, uint32_t num_wnds, uint32_t *num_types);
 hal_tdm_error        vc4_hwc_get_changed_composition_types(hal_tdm_hwc *hwc, uint32_t *num_elements, hal_tdm_hwc_window **hwc_wnds, hal_tdm_hwc_window_composition *composition_types);
index 7df2a26..1a25905 100644 (file)
@@ -776,6 +776,23 @@ vc4_hwc_set_client_target_buffer(hal_tdm_hwc *hwc, tbm_surface_h buffer, hal_tdm
 }
 
 hal_tdm_error
+vc4_hwc_set_client_target_buffer_info(hal_tdm_hwc *hwc, hal_tdm_hwc_window_info *info)
+{
+       tdm_vc4_hwc *hwc_data = hwc;
+
+       TDM_BACKEND_RETURN_VAL_IF_FAIL(hwc_data != NULL, HAL_TDM_ERROR_INVALID_PARAMETER);
+       TDM_BACKEND_RETURN_VAL_IF_FAIL(hwc_data->target_hwc_window  != NULL, HAL_TDM_ERROR_OPERATION_FAILED);
+       TDM_BACKEND_RETURN_VAL_IF_FAIL(info != NULL, HAL_TDM_ERROR_INVALID_PARAMETER);
+
+       if (!memcmp(&hwc_data->target_hwc_window->info, info, sizeof(hal_tdm_hwc_window_info)))
+               return HAL_TDM_ERROR_NONE;
+
+       hwc_data->target_hwc_window->info = *info;
+
+       return HAL_TDM_ERROR_NONE;
+}
+
+hal_tdm_error
 vc4_hwc_set_client_target_acquire_fence(hal_tdm_hwc *hwc, int acquire_fence)
 {
        tdm_vc4_hwc *hwc_data = hwc;