backend/tdm: Get buffer only if it's necessary 47/278147/1
authorSeunghun Lee <shiin.lee@samsung.com>
Thu, 3 Mar 2022 10:01:28 +0000 (19:01 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Mon, 18 Jul 2022 05:58:14 +0000 (14:58 +0900)
Change-Id: I740870ecdf85e855fc583141bccc3a73dd8e4fec

src/libds/backend/tdm/output.c

index 06edbf6..a67c618 100644 (file)
@@ -196,16 +196,16 @@ tdm_output_iface_commit(struct ds_output *ds_output)
         }
     }
 
-    ds_buffer = ds_output->pending.buffer;
-    buffer = get_or_create_tdm_buffer(output->backend, ds_buffer);
-    if (!buffer)
-        return false;
-
     if (ds_output->pending.committed & DS_OUTPUT_STATE_BUFFER) {
         tdm_region fb_damage;
         tdm_error err;
         uint32_t num_changes;
 
+        ds_buffer = ds_output->pending.buffer;
+        buffer = get_or_create_tdm_buffer(output->backend, ds_buffer);
+        if (!buffer)
+            return false;
+
         memset(&fb_damage, 0, sizeof(fb_damage));
         err = tdm_hwc_set_client_target_buffer(output->tdm.hwc,
                 buffer->surface, fb_damage);