compositor: add use-g2d in config-file option

Add config option in weston.ini, such as:
[core]
use-g2d=1

Upstream-Status: Inappropriate [i.MX-specific]

Signed-off-by: Yong Gan <yong.gan@nxp.com>
diff --git a/compositor/main.c b/compositor/main.c
index 7d1da2c..92f6124 100644
--- a/compositor/main.c
+++ b/compositor/main.c
@@ -1860,7 +1860,9 @@
 	struct wet_compositor *wet = to_wet_compositor(c);
 	int use_shadow;
 	int ret = 0;
-
+#if defined(ENABLE_IMXG2D)
+	uint32_t use_g2d;
+#endif
 	wet->drm_use_current_mode = false;
 
 	const struct weston_option options[] = {
@@ -1891,6 +1893,10 @@
 	weston_config_section_get_uint(section, "pageflip-timeout",
 	                               &config.pageflip_timeout, 0);
 	weston_config_section_get_bool(section, "pixman-shadow", &use_shadow, 1);
+#if defined(ENABLE_IMXG2D)
+	weston_config_section_get_uint(section, "use-g2d", &use_g2d, 0);
+	config.use_g2d = config.use_g2d || use_g2d;
+#endif
 	config.use_pixman_shadow = use_shadow;
 
 	config.base.struct_version = WESTON_DRM_BACKEND_CONFIG_VERSION;
@@ -2091,6 +2097,10 @@
 {
 	struct weston_fbdev_backend_config config = {{ 0, }};
 	int ret = 0;
+#if defined(ENABLE_IMXG2D)
+	struct weston_config_section *section;
+	uint32_t use_g2d;
+#endif
 
 	const struct weston_option fbdev_options[] = {
 		{ WESTON_OPTION_INTEGER, "tty", 0, &config.tty },
@@ -2116,6 +2126,12 @@
 	config.use_g2d = 1;
 #endif
 
+#if defined(ENABLE_IMXG2D)
+	section = weston_config_get_section(wc, "core", NULL, NULL);
+	weston_config_section_get_uint(section, "use-g2d", &use_g2d, 0);
+	config.use_g2d = config.use_g2d || use_g2d;
+#endif
+
 	config.base.struct_version = WESTON_FBDEV_BACKEND_CONFIG_VERSION;
 	config.base.struct_size = sizeof(struct weston_fbdev_backend_config);
 	config.configure_device = configure_input_device;
diff --git a/weston.ini.in b/weston.ini.in
index fec4291..83dd56e 100644
--- a/weston.ini.in
+++ b/weston.ini.in
@@ -1,6 +1,7 @@
 [core]
 # i.MX: Disable idle timeout
 idle-time=0
+#use-g2d=1
 
 #[output]
 #name=HDMI-A-1