tdm_config: add TDM_CONFIG_KEY_GENERAL_HWC_COMMIT_USE_GLOBAL_FPS config define 00/243300/3
authorJunkyeong Kim <jk0430.kim@samsung.com>
Fri, 4 Sep 2020 10:59:20 +0000 (19:59 +0900)
committerJunkyeong Kim <jk0430.kim@samsung.com>
Mon, 7 Sep 2020 04:17:54 +0000 (13:17 +0900)
1: when global fps set, use global fps to commit.
0: when global fps set, do not use global fps to commit.

Change-Id: I13ad07f4468798bc7085c5104aec6da96b4f3446
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
src/tdm_config.h
src/tdm_vblank.c

index 39563a1..f9d43a9 100644 (file)
@@ -126,6 +126,11 @@ tdm_config_set_string(const char *key, const char *value);
  */
 #define TDM_CONFIG_KEY_GENERAL_VIRTUAL_OUTPUT_HWC_TARGET_BO_DEFAULT  "general:virtual_output_hwc_target_bo_default"
 
+/* use the global fps to commit. [0(disable), 1(enable)]
+ * default: 0
+ * ex) 1
+ */
+#define TDM_CONFIG_KEY_GENERAL_HWC_COMMIT_USE_GLOBAL_FPS  "general:hwc_commit_use_global_fps"
 
 /*** debug keys **************************************************************/
 
index 206abf5..9526926 100644 (file)
@@ -167,6 +167,7 @@ static struct list_head valid_wait_list;
 static struct list_head create_handler_list;
 static unsigned int vblank_list_inited;
 static unsigned int vblank_global_fps;
+static unsigned int hwc_commit_use_global_fps;
 static double stamp = 0;
 
 static void _tdm_vblank_cb_vblank_SW(tdm_private_display *private_display, void *object, tdm_thread_cb_base *cb_base, void *user_data);
@@ -597,6 +598,14 @@ tdm_vblank_enable_global_fps(unsigned int enable, unsigned int fps)
 
                v->check_HW_or_SW = 1;
        }
+
+       if (hwc_commit_use_global_fps) {
+               if (enable)
+                       tdm_hwc_set_vblank(fps);
+               else
+                       tdm_hwc_unset_vblank();
+       }
+
        pthread_mutex_unlock(&valid_list_lock);
 
        return TDM_ERROR_NONE;
@@ -738,6 +747,8 @@ tdm_vblank_init(tdm_display *dpy)
        tdm_thread_cb_set_find_func(TDM_THREAD_CB_VBLANK_SW, _tdm_vblank_find_object);
        tdm_thread_cb_set_find_func(TDM_THREAD_CB_VBLANK_CREATE, _tdm_vblank_find_display);
 
+       hwc_commit_use_global_fps = tdm_config_get_int(TDM_CONFIG_KEY_GENERAL_HWC_COMMIT_USE_GLOBAL_FPS, 0);
+
        vblank_list_inited = 1;
 
        return TDM_ERROR_NONE;