drm: env var for using overlay (default : 0)
authorTaekyun Kim <tkq.kim@samsung.com>
Thu, 12 Nov 2015 09:41:24 +0000 (18:41 +0900)
committerTaekyun Kim <tkq.kim@samsung.com>
Thu, 12 Nov 2015 09:41:24 +0000 (18:41 +0900)
Overlay does not work on linux KMS and need further investigation.
Just disable it by default for now.

Change-Id: I4edec54d5be219f9203cd204632a2a28b8286793

src/lib/drm/drm-internal.h
src/lib/drm/drm-output.c

index 12d247fafb812275c476ebc519c293be7a96858d..1ce5fb5d95819d2e22375ba7808eaabf1ca37a6a 100644 (file)
@@ -158,6 +158,7 @@ struct drm_output
     pepper_plane_t         *cursor_plane;
     pepper_plane_t         *primary_plane;
     pepper_plane_t         *fb_plane;
+    pepper_bool_t           use_overlay;
 
     drm_render_type_t       render_type;
     pepper_renderer_t      *renderer;
index 17e584ba991eef11ef76b90db0941473f442c83c..008aaebddc0e28d863c5269f61a7cc0eeb4c3599 100644 (file)
@@ -240,7 +240,8 @@ assign_overlay_plane(drm_output_t *output, pepper_view_t *view)
     double              x, y;
     int                 w, h;
 
-    return NULL;
+    if (!output->use_overlay)
+        return NULL;
 
     if (!output->drm->gbm_device)
         return NULL;
@@ -724,6 +725,7 @@ drm_output_create(drm_connector_t *conn)
     const char     *render_env = getenv("PEPPER_DRM_RENDERER");
     const char     *shadow_env = getenv("PEPPER_DRM_USE_SHADOW");
     const char     *disable_no_comp_env = getenv("PEPPER_DRM_DISABLE_NO_COMP");
+    const char     *use_overlay_env = getenv("PEPPER_DRM_USE_OVERLAY");
 
     PEPPER_CHECK(conn->output == NULL, return NULL, "The connector already has an output.\n");
 
@@ -758,6 +760,9 @@ drm_output_create(drm_connector_t *conn)
     if (disable_no_comp_env && strcmp(disable_no_comp_env, "1") == 0)
         output->disable_no_comp = PEPPER_TRUE;
 
+    if (use_overlay_env && strcmp(use_overlay_env, "1") == 0)
+        output->use_overlay = PEPPER_TRUE;
+
     output->primary_plane = pepper_output_add_plane(output->base, NULL);
     PEPPER_CHECK(output->primary_plane, goto error, "pepper_output_add_plane() failed.\n");