SUMMARY = "Samples for OpenGL ES"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=aeb969185a143c3c25130bc2c3ef9a50"
-DEPENDS = "virtual/libg2d imx-gpu-viv zlib libpng procps"
+DEPENDS = "imx-gpu-viv zlib libpng procps"
 
 SRC_URI = "git://source.codeaurora.org/external/imx/apitrace-imx.git;protocol=https;branch=imx_7.1"
 SRCREV = "9281b2c2f2766caf3529df347289128470318537"
 
 inherit cmake lib_package pkgconfig perlnative pythonnative
 
-EXTRA_OECMAKE += "-DENABLE_VIVANTE=ON -DENABLE_MULTIARCH=OFF"
-EXTRA_OECMAKE += \
-    "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '-DDISABLE_X11=ON', \
-        bb.utils.contains('DISTRO_FEATURES',     'x11', '', \
-                                                        '-DDISABLE_X11=ON', d), d)}"
+PACKAGECONFIG ??= ""
+PACKAGECONFIG_append = \
+    "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \
+        bb.utils.contains('DISTRO_FEATURES',     'x11', ' x11', \
+                                                        '', d), d)}"
+PACKAGECONFIG_append_imxgpu2d = " vivante"
+# For 8M, which has 3D but no 2D, eglretrace is not available
+# on Wayland except through X11 and waffle.
+PACKAGECONFIG_IMXGPU3D = \
+    "${@bb.utils.contains('DISTRO_FEATURES', 'wayland x11', ' waffle x11 x11-egl', '', d)}"
+PACKAGECONFIG_IMXGPU3D_imxgpu2d = ""
+PACKAGECONFIG_append_imxgpu3d = "${PACKAGECONFIG_IMXGPU3D}"
+
+PACKAGECONFIG[multiarch] = "-DENABLE_MULTIARCH=ON,-DENABLE_MULTIARCH=OFF"
+PACKAGECONFIG[waffle] = "-DENABLE_WAFFLE=ON,-DENABLE_WAFFLE=OFF,waffle"
+PACKAGECONFIG[x11] = "-DDISABLE_X11=OFF,-DDISABLE_X11=ON"
+PACKAGECONFIG[x11-egl] = "-Dwaffle_has_x11_egl=ON,-Dwaffle_has_x11_egl=OFF"
+PACKAGECONFIG[vivante] = "-DENABLE_VIVANTE=ON,-DENABLE_VIVANTE=OFF,virtual/libg2d"
 
 FILES_${PN} = "${bindir} ${libdir}"
 FILES_${PN}-dbg += "${libdir}/*/*/.debug"
 
 PACKAGE_ARCH = "${MACHINE_SOCARCH}"
-COMPATIBLE_MACHINE = "(mx6q|mx6dl|mx6sx|mx6sl|mx7ulp)"
+COMPATIBLE_MACHINE = "(mx6q|mx6dl|mx6sx|mx6sl|mx7ulp|mx8mq)"