[hwc] adopt COMMIT_PER_VBLANK functionality for each ouptut
[platform/core/uifw/libtdm.git] / src / tdm_layer.c
index cb4ef55..c1a5d6b 100644 (file)
@@ -713,9 +713,8 @@ static int
 _tdm_layer_commit_possible(tdm_private_layer *private_layer)
 {
        tdm_private_output *private_output = private_layer->private_output;
-       tdm_private_display *private_display = private_output->private_display;
 
-       TDM_RETURN_VAL_IF_FAIL(private_display->commit_per_vblank > 0, 1);
+       TDM_RETURN_VAL_IF_FAIL(private_output->commit_per_vblank > 0, 1);
 
        /* There is a previous commit request which is not done and displayed on screen yet.
         * We can't commit at this time.
@@ -726,7 +725,7 @@ _tdm_layer_commit_possible(tdm_private_layer *private_layer)
                return 0;
        }
 
-       if (private_display->commit_per_vblank == 1 && _tdm_lauer_get_output_used_layer_count(private_output) > 1) {
+       if (private_output->commit_per_vblank == 1 && _tdm_lauer_get_output_used_layer_count(private_output) > 1) {
                if (tdm_debug_module & TDM_DEBUG_COMMIT)
                        TDM_INFO("layer(%p) commit: not possible(more than 2 layers)", private_layer);
                return 0;
@@ -836,8 +835,8 @@ _tdm_layer_commit(tdm_layer *layer, tdm_layer_commit_handler func, void *user_da
                                 private_layer, private_layer->waiting_buffer,
                                 (layer_commit_handler->committed_buffer) ? layer_commit_handler->committed_buffer->buffer : NULL);
 
-       if (!private_display->commit_per_vblank) {
-               TDM_GOTO_IF_FAIL(private_display->commit_type == TDM_COMMIT_TYPE_OUTPUT, commit_failed);
+       if (!private_output->commit_per_vblank) {
+               TDM_GOTO_IF_FAIL(private_output->commit_type == TDM_COMMIT_TYPE_OUTPUT, commit_failed);
 
                LIST_ADDTAIL(&layer_commit_handler->link, &private_output->layer_commit_handler_list);
                ret = tdm_output_commit_internal(private_layer->private_output, 0, _tdm_layer_cb_output_commit, layer_commit_handler);
@@ -846,7 +845,7 @@ _tdm_layer_commit(tdm_layer *layer, tdm_layer_commit_handler func, void *user_da
                if (tdm_debug_module & TDM_DEBUG_COMMIT)
                        TDM_INFO("layer(%p) commit: no commit-per-vblank", private_layer);
        } else {
-               TDM_GOTO_IF_FAIL(private_display->commit_type == TDM_COMMIT_TYPE_LAYER, commit_failed);
+               TDM_GOTO_IF_FAIL(private_output->commit_type == TDM_COMMIT_TYPE_LAYER, commit_failed);
 
                if (private_layer->committing)
                        TDM_WRN("layer(%d) too many commit", private_layer->index);
@@ -908,11 +907,11 @@ tdm_layer_commit(tdm_layer *layer, tdm_layer_commit_handler func, void *user_dat
 
        _pthread_mutex_lock(&private_display->lock);
 
-       if (private_display->commit_type == TDM_COMMIT_TYPE_NONE) {
-               if (!private_display->commit_per_vblank)
-                       private_display->commit_type = TDM_COMMIT_TYPE_OUTPUT;
+       if (private_output->commit_type == TDM_COMMIT_TYPE_NONE) {
+               if (!private_output->commit_per_vblank)
+                       private_output->commit_type = TDM_COMMIT_TYPE_OUTPUT;
                else
-                       private_display->commit_type = TDM_COMMIT_TYPE_LAYER;
+                       private_output->commit_type = TDM_COMMIT_TYPE_LAYER;
        }
 
        if (private_output->current_dpms_value > TDM_OUTPUT_DPMS_ON) {
@@ -1077,11 +1076,11 @@ _tbm_layer_queue_acquirable_cb(tbm_surface_queue_h surface_queue, void *data)
                        TDM_INFO("layer(%p) waiting_buffer(%p)",
                                         private_layer, private_layer->waiting_buffer->buffer);
 
-               if (private_display->commit_type == TDM_COMMIT_TYPE_OUTPUT) {
+               if (private_output->commit_type == TDM_COMMIT_TYPE_OUTPUT) {
                        ret = tdm_output_commit_internal(private_layer->private_output, 0, NULL, NULL);
                        if (ret != TDM_ERROR_NONE)
                                TDM_ERR("tdm_output_commit_internal() is fail");
-               } else if (private_display->commit_type == TDM_COMMIT_TYPE_LAYER) {
+               } else if (private_output->commit_type == TDM_COMMIT_TYPE_LAYER) {
                        ret = _tdm_layer_commit(private_layer, NULL, NULL);
                        if (ret != TDM_ERROR_NONE)
                                TDM_ERR("layer(%p) _tdm_layer_commit() is fail", private_layer);