Add Xorg support for imx6
v2 cover Add Xorg support for imx6
Hello,
Main purpose of this serie is to add support of Vivante GPU (found on imx6) to Xorg. This work is mainly adapted from Yocto.
v2:
- Rebase on new version of mesa3d
- Reorder some patches (in order to make examples I provide in commit message functional)
- Do not bump version of all freescale packages
- Bump kernel version of imx6 boards
J?r?me Pouiller (13):
mesa3d: Give possibility to external backends to enable DRI/Gallium
gpu-viv-bin-mx6q: provide libopenvg
gpu-viv-bin-mx6q: fix compiling issues with EGL_API_FB
gpu-viv-bin-mx6q: fix GLESv2 support
gpu-viv-bin-mx6q: make fb/x11 choice explicit
gpu-viv-bin-mx6q: change output selection mecanism
libdrm: fix support for xserver with Vivante drivers
qt5base: fix Vivante x11/EGL configuration xdriver_xf86-video-imx-viv: new package
Vivante drivers: bump to version 3.10.17-1.0.1
nitrogen6x_defconfig: bump kernel to 3.10.17_1.0.1_ga freescale_imx6*_defconfig: bump kernel to 3.10.17_1.0.1_ga
qmx6_defconfig: update
board/congatec/qmx6/6q_bootscript.txt | 2 - board/congatec/qmx6/post-build.sh | 7 --- configs/freescale_imx6dlsabresd_defconfig | 3 +- configs/freescale_imx6qsabresd_defconfig | 3 +- configs/freescale_imx6sololiteevk_defconfig | 3 +- configs/nitrogen6x_defconfig | 3 +- configs/qmx6_defconfig | 49 +++++++++++++++-- package/freescale-imx/gpu-viv-bin-mx6q/Config.in | 33 +++++++++++- package/freescale-imx/gpu-viv-bin-mx6q/egl.pc | 2 +- package/freescale-imx/gpu-viv-bin-mx6q/glesv2.pc | 2 +- .../gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 43 +++++++-------- package/freescale-imx/gpu-viv-bin-mx6q/vg.pc | 2 +- package/libdrm/libdrm-0001-update-arm.patch | 37 +++++++++++++ package/mesa3d/mesa3d.mk | 4 +- .../qt5base-0001-Force_egl_visual_ID_33.patch | 23 ++++++++ .../qt5/qt5base/qt5base-0004-xcb-egl-fixes.patch | 63 ++++++++++++++++++++++ package/x11r7/Config.in | 1 + package/x11r7/xdriver_xf86-video-imx-viv/Config.in | 32 +++++++++++ ...xf86-video-imx-viv-0001-Fix-LoadExtenions.patch | 15 ++++++ .../xdriver_xf86-video-imx-viv.mk | 32 +++++++++++ 20 files changed, 313 insertions(+), 46 deletions(-) delete mode 100644 board/congatec/qmx6/6q_bootscript.txt delete mode 100755 board/congatec/qmx6/post-build.sh create mode 100644 package/libdrm/libdrm-0001-update-arm.patch create mode 100644 package/qt5/qt5base/qt5base-0001-Force_egl_visual_ID_33.patch create mode 100644 package/qt5/qt5base/qt5base-0004-xcb-egl-fixes.patch create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-0001-Fix-LoadExtenions.patch create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk
Signature · 1 line
1.9.1
PATCH v2 1/13 mesa3d: Give possibility to external backends to enable DRI/Gallium
--- package/mesa3d/mesa3d.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
package/mesa3d/mesa3d.mk +2 -2
@@ -64,7 +64,7 @@ MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_I915) += i915 MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_I965) += i965 MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON) += radeon -ifeq ($(MESA3D_GALLIUM_DRIVERS-y),) +ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER),) MESA3D_CONF_OPTS += \ --without-gallium-drivers else
@@ -73,7 +73,7 @@ MESA3D_CONF_OPTS += \ --with-gallium-drivers=$(subst $(space),$(comma),$(MESA3D_GALLIUM_DRIVERS-y)) endif -ifeq ($(MESA3D_DRI_DRIVERS-y),) +ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),) MESA3D_CONF_OPTS += \ --without-dri-drivers --without-dri --disable-dri3 else
Signature · 1 line
1.9.1
PATCH v2 2/13 gpu-viv-bin-mx6q: provide libopenvg
In reply to Jérôme Pouiller--- package/freescale-imx/gpu-viv-bin-mx6q/Config.in | 4 ++++ package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-)
package/freescale-imx/gpu-viv-bin-mx6q/Config.in +4 -0
@@ -6,6 +6,7 @@ config BR2_PACKAGE_GPU_VIV_BIN_MX6Q bool "gpu-viv-bin-mx6q" select BR2_PACKAGE_HAS_LIBEGL select BR2_PACKAGE_HAS_LIBGLES + select BR2_PACKAGE_HAS_LIBOPENVG select BR2_PACKAGE_XLIB_LIBXDAMAGE if BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7 depends on BR2_arm # Only relevant for i.MX6
@@ -30,6 +31,9 @@ config BR2_PACKAGE_PROVIDES_LIBEGL config BR2_PACKAGE_PROVIDES_LIBGLES default "gpu-viv-bin-mx6q" +config BR2_PACKAGE_PROVIDES_LIBOPENVG + default "gpu-viv-bin-mx6q" + config BR2_PACKAGE_GPU_VIV_BIN_MX6Q_EXAMPLES bool "install examples" help
package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk +1 -1
@@ -23,7 +23,7 @@ GPU_VIV_BIN_MX6Q_LICENSE = Freescale Semiconductor Software License Agreement # for which a separate license is needed... GPU_VIV_BIN_MX6Q_REDISTRIBUTE = NO -GPU_VIV_BIN_MX6Q_PROVIDES = libegl libgles +GPU_VIV_BIN_MX6Q_PROVIDES = libegl libgles libopenvg # DirectFB is not supported (wrong version) ifeq ($(BR2_PACKAGE_XORG7),y)
Signature · 1 line
1.9.1
Thomas Petazzoni
AppliedPATCH v2 2/13 gpu-viv-bin-mx6q: provide libopenvg
Dear J?r?me Pouiller,
Quoted 5 lines · J?r?me Pouiller
Signed-off-by J?r?me Pouiller <[email protected]>--- package/freescale-imx/gpu-viv-bin-mx6q/Config.in | 4 ++++ package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-)
Applied, thanks.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v2 3/13 gpu-viv-bin-mx6q: fix compiling issues with EGL_API_FB
In reply to Jérôme PouillerTo compile with Vivante header and use framebuffer, it is necessary to pass option -DEGL_API_FB. This option is declared in pkg-config file of Vivante library. But many packages (especialy qt5 components) does not consider these flags.
So instead of patching every packages that use EGL, it is more convenient to patch Vivante headers.
This commit add #define EGL_API_FB on top of eglvivante.h when necessary.
--- package/freescale-imx/gpu-viv-bin-mx6q/egl.pc | 2 +- package/freescale-imx/gpu-viv-bin-mx6q/glesv2.pc | 2 +- package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 10 ++++++---- package/freescale-imx/gpu-viv-bin-mx6q/vg.pc | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-)
package/freescale-imx/gpu-viv-bin-mx6q/egl.pc +1 -1
@@ -7,4 +7,4 @@ Name: egl Description: Freescale gpu-viv-bin-mx6q implementation of EGL Version: 1.0 Libs: -L${libdir} -lGAL -lEGL -Cflags: -I${includedir}/ -DEGL_API_FB=1 +Cflags: -I${includedir}/
package/freescale-imx/gpu-viv-bin-mx6q/glesv2.pc +1 -1
@@ -7,4 +7,4 @@ Name: glesv2 Description: Freescale gpu-viv-bin-mx6q implementation of OpenGL ESv2 Version: 2.0 Libs: -L${libdir} -lGAL -lEGL -lGLESv2 -Cflags: -I${includedir}/ -DEGL_API_FB=1 +Cflags: -I${includedir}/
package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk +6 -4
@@ -58,14 +58,16 @@ endef define GPU_VIV_BIN_MX6Q_INSTALL_STAGING_CMDS cp -r $(@D)/usr/* $(STAGING_DIR)/usr + if [ $(GPU_VIV_BIN_MX6Q_LIB_TARGET) == fb ]; then \ + $(SED) '/#define EGLAPIENTRY/ a \ + #if !defined(EGL_API_X11) && !defined(EGL_API_DFB) && !defined(EGL_API_FB) \n\ + #define EGL_API_FB \n\ + #endif' $(STAGING_DIR)/usr/include/EGL/eglvivante.h; \ + fi for lib in egl glesv2 vg; do \ $(INSTALL) -m 0644 -D \ package/freescale-imx/gpu-viv-bin-mx6q/$${lib}.pc \ $(STAGING_DIR)/usr/lib/pkgconfig/$${lib}.pc; \ - if [ "$(GPU_VIV_BIN_MX6Q_LIB_TARGET)" != "fb" ]; then \ - $(SED) "s/-DEGL_API_FB=1//" \ - $(STAGING_DIR)/usr/lib/pkgconfig/$${lib}.pc; \ - fi; \ done endef
package/freescale-imx/gpu-viv-bin-mx6q/vg.pc +1 -1
@@ -7,4 +7,4 @@ Name: vg Description: Freescale gpu-viv-bin-mx6q implementation of OpenVG Version: 1.1 Libs: -L${libdir} -lGAL -lEGL -lOpenVG -Cflags: -I${includedir}/ -DEGL_API_FB=1 +Cflags: -I${includedir}/
Signature · 1 line
1.9.1
PATCH v2 4/13 gpu-viv-bin-mx6q: fix GLESv2 support
In reply to Jérôme PouillerTested with:
QMX6 board +
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://git.congatec.com/arm/qmx6_kernel.git"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="9bafbcba67f7bb2a48a5e05998cecb1165aa444f"
BR2_LINUX_KERNEL_DEFCONFIG="qmx6"
BR2_LINUX_KERNEL_APPENDED_UIMAGE=y
BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000"
BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-qmx6"
BR2_PACKAGE_QT5=y
BR2_PACKAGE_QT5BASE_LICENSE_APPROVED=y
BR2_PACKAGE_QT5BASE_EXAMPLES=y
BR2_PACKAGE_QT5BASE_OPENGL_LIB=y
BR2_PACKAGE_QT5BASE_EGLFS=y
BR2_PACKAGE_QT5BASE_DEFAULT_QPA="eglfs"
BR2_PACKAGE_QT5BASE_GIF=y
BR2_PACKAGE_QT5BASE_JPEG=y
BR2_PACKAGE_QT5BASE_PNG=y
BR2_PACKAGE_QT5QUICKCONTROLS=y
BR2_PACKAGE_FREESCALE_IMX=y
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q=y
BR2_PACKAGE_GPU_VIV_BIN_MX6Q=y
BR2_PACKAGE_GPU_VIV_BIN_MX6Q_EXAMPLES=y--- package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk +4 -3
@@ -48,12 +48,13 @@ endef # Make sure these commands are idempotent. define GPU_VIV_BIN_MX6Q_BUILD_CMDS $(SED) 's/defined(LINUX)/defined(__linux__)/g' $(@D)/usr/include/*/*.h - for lib in EGL GAL VIVANTE; do \ + for lib in EGL GAL VIVANTE GLESv2; do \ ln -sf lib$${lib}-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so \ $(@D)/usr/lib/lib$${lib}.so; \ done - ln -sf libGL.so.1.2 $(@D)/usr/lib/libGL.so.1 ln -sf libGL.so.1.2 $(@D)/usr/lib/libGL.so + ln -sf libGL.so.1.2 $(@D)/usr/lib/libGL.so.1 + ln -sf libGL.so.1.2 $(@D)/usr/lib/libGL.so.1.2.0 endef define GPU_VIV_BIN_MX6Q_INSTALL_STAGING_CMDS
@@ -84,7 +85,7 @@ endif define GPU_VIV_BIN_MX6Q_INSTALL_TARGET_CMDS $(GPU_VIV_BIN_MX6Q_INSTALL_EXAMPLES) cp -a $(@D)/usr/lib $(TARGET_DIR)/usr - for lib in EGL GAL VIVANTE; do \ + for lib in EGL GAL VIVANTE GLESv2; do \ for f in $(TARGET_DIR)/usr/lib/lib$${lib}-*.so; do \ case $$f in \ *-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so) : ;; \
Signature · 1 line
1.9.1
PATCH v2 5/13 gpu-viv-bin-mx6q: make fb/x11 choice explicit
In reply to Jérôme PouillerThis patch also prepare support for Wayland backend for gpu-viv-bin-mx6q.
--- package/freescale-imx/gpu-viv-bin-mx6q/Config.in | 24 ++++++++++++++++++++-- .../gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 2 +- 2 files changed, 23 insertions(+), 3 deletions(-)
package/freescale-imx/gpu-viv-bin-mx6q/Config.in +22 -2
@@ -7,8 +7,6 @@ config BR2_PACKAGE_GPU_VIV_BIN_MX6Q select BR2_PACKAGE_HAS_LIBEGL select BR2_PACKAGE_HAS_LIBGLES select BR2_PACKAGE_HAS_LIBOPENVG - select BR2_PACKAGE_XLIB_LIBXDAMAGE if BR2_PACKAGE_XORG7 - select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7 depends on BR2_arm # Only relevant for i.MX6 # Library binaries are linked against libc.so.6 depends on BR2_TOOLCHAIN_USES_GLIBC
@@ -25,6 +23,28 @@ config BR2_PACKAGE_GPU_VIV_BIN_MX6Q if BR2_PACKAGE_GPU_VIV_BIN_MX6Q +choice + prompt "Output option" + help + There are two versions of this library: one for + direct framebuffer access, one for X11 rendering. + Choose here which version to install. + +config BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT_X11 + depends on BR2_PACKAGE_XORG7 + select BR2_PACKAGE_XLIB_LIBXDAMAGE + select BR2_PACKAGE_XLIB_LIBXEXT + select BR2_PACKAGE_LIBDRM + bool "X11" + +comment "X11 backend needs Xorg package" + depends on !BR2_PACKAGE_XORG7 + +config BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT_FB + bool "Framebuffer" + +endchoice + config BR2_PACKAGE_PROVIDES_LIBEGL default "gpu-viv-bin-mx6q"
package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk +1 -1
@@ -26,7 +26,7 @@ GPU_VIV_BIN_MX6Q_REDISTRIBUTE = NO GPU_VIV_BIN_MX6Q_PROVIDES = libegl libgles libopenvg # DirectFB is not supported (wrong version) -ifeq ($(BR2_PACKAGE_XORG7),y) +ifeq ($(BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT_X11),y) GPU_VIV_BIN_MX6Q_DEPENDENCIES = xlib_libXdamage xlib_libXext GPU_VIV_BIN_MX6Q_LIB_TARGET = x11 else
Signature · 1 line
1.9.1
PATCH v2 6/13 gpu-viv-bin-mx6q: change output selection mecanism
In reply to Jérôme Pouiller--- package/freescale-imx/gpu-viv-bin-mx6q/Config.in | 5 +++++ .../gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 21 +++++++++------------ 2 files changed, 14 insertions(+), 12 deletions(-)
package/freescale-imx/gpu-viv-bin-mx6q/Config.in +5 -0
@@ -45,6 +45,11 @@ config BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT_FB endchoice +config BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT + string + default "x11" if BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT_X11 + default "fb" if BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT_FB + config BR2_PACKAGE_PROVIDES_LIBEGL default "gpu-viv-bin-mx6q"
package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk +9 -12
@@ -24,14 +24,7 @@ GPU_VIV_BIN_MX6Q_LICENSE = Freescale Semiconductor Software License Agreement GPU_VIV_BIN_MX6Q_REDISTRIBUTE = NO GPU_VIV_BIN_MX6Q_PROVIDES = libegl libgles libopenvg - -# DirectFB is not supported (wrong version) -ifeq ($(BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT_X11),y) -GPU_VIV_BIN_MX6Q_DEPENDENCIES = xlib_libXdamage xlib_libXext -GPU_VIV_BIN_MX6Q_LIB_TARGET = x11 -else -GPU_VIV_BIN_MX6Q_LIB_TARGET = fb -endif +GPU_VIV_BIN_MX6Q_LIB_TARGET = $(call qstrip,$(BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT)) # The archive is a shell-self-extractor of a bzipped tar. It happens # to extract in the correct directory (gpu-viv-bin-mx6q-x.y.z)
@@ -48,13 +41,17 @@ endef # Make sure these commands are idempotent. define GPU_VIV_BIN_MX6Q_BUILD_CMDS $(SED) 's/defined(LINUX)/defined(__linux__)/g' $(@D)/usr/include/*/*.h - for lib in EGL GAL VIVANTE GLESv2; do \ - ln -sf lib$${lib}-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so \ - $(@D)/usr/lib/lib$${lib}.so; \ - done ln -sf libGL.so.1.2 $(@D)/usr/lib/libGL.so ln -sf libGL.so.1.2 $(@D)/usr/lib/libGL.so.1 ln -sf libGL.so.1.2 $(@D)/usr/lib/libGL.so.1.2.0 + ln -sf libEGL-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so $(@D)/usr/lib/libEGL.so + ln -sf libEGL-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so $(@D)/usr/lib/libEGL.so.1 + ln -sf libEGL-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so $(@D)/usr/lib/libEGL.so.1.0 + ln -sf libGLESv2-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so $(@D)/usr/lib/libGLESv2.so + ln -sf libGLESv2-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so $(@D)/usr/lib/libGLESv2.so.2 + ln -sf libGLESv2-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so $(@D)/usr/lib/libGLESv2.so.2.0.0 + ln -sf libVIVANTE-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so $(@D)/usr/lib/libVIVANTE.so + ln -sf libGAL-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so $(@D)/usr/lib/libGAL.so endef define GPU_VIV_BIN_MX6Q_INSTALL_STAGING_CMDS
Signature · 1 line
1.9.1
PATCH v2 7/13 libdrm: fix support for xserver with Vivante drivers
In reply to Jérôme Pouiller--- package/libdrm/libdrm-0001-update-arm.patch | 37 +++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 package/libdrm/libdrm-0001-update-arm.patch
package/libdrm/libdrm-0001-update-arm.patch new file +37 -0
@@ -0,0 +1,37 @@ +(come from yocto) + +Add ARM support into xf86arm.h. This provides support for Xorg interface. +Without this the vivante samples will hang during close requiring a reboot + +Upstream-Status: Pending + +Signed-off-by: Lauren Post <[email protected]> +Signed-off-by: Evan Kotara <[email protected]> + +diff --git a/xf86drm.h b/xf86drm.h +--- a/xf86drm.h ++++ b/xf86drm.h +@@ -461,6 +461,23 @@ do { register unsigned int __old __asm(" + : "cr0", "memory"); \ + } while (0) + ++#elif defined(__arm__) ++ #undef DRM_DEV_MODE ++ #define DRM_DEV_MODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) ++ ++ #define DRM_CAS(lock,old,new,__ret) \ ++ do { \ ++ __asm__ __volatile__ ( \ ++ "1: ldrex %0, [%1]\n" \ ++ " teq %0, %2\n" \ ++ " ite eq\n" \ ++ " strexeq %0, %3, [%1]\n" \ ++ " movne %0, #1\n" \ ++ : "=&r" (__ret) \ ++ : "r" (lock), "r" (old), "r" (new) \ ++ : "cc","memory"); \ ++ } while (0) ++ + #endif /* architecture */ + #endif /* __GNUC__ >= 2 */ +
Signature · 1 line
1.9.1
PATCH v2 8/13 qt5base: fix Vivante x11/EGL configuration
In reply to Jérôme PouillerFix compilation with Vivante headers and bug at runtime.
--- .../qt5base-0001-Force_egl_visual_ID_33.patch | 23 ++++++++ .../qt5/qt5base/qt5base-0004-xcb-egl-fixes.patch | 63 ++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 package/qt5/qt5base/qt5base-0001-Force_egl_visual_ID_33.patch create mode 100644 package/qt5/qt5base/qt5base-0004-xcb-egl-fixes.patch
package/qt5/qt5base/qt5base-0001-Force_egl_visual_ID_33.patch new file +23 -0
@@ -0,0 +1,23 @@ +Workaround EGL initialization failure due visual mismatch + +Error: + +Warning: EGL suggested using X Visual ID 33 (RGB888) for EGL config 28 (RGB444), but this is incompatable +Unable to find an X11 visual which matches EGL config 28 +Could not initialize EGL +Aborted + +Upstream-Status: Inappropriate [workaround] + +Signed-off-by: Otavio Salvador <[email protected]> + +diff -Naur qtbase-opensource-src-5.1.1_original/src/platformsupport/eglconvenience/qxlibeglintegration.cpp qtbase-opensource-src-5.1.1/src/platformsupport/eglconvenience/qxlibeglintegration.cpp +--- qtbase-opensource-src-5.1.1_original/src/platformsupport/eglconvenience/qxlibeglintegration.cpp 2013-12-25 19:08:42.163895341 -0800 ++++ qtbase-opensource-src-5.1.1/src/platformsupport/eglconvenience/qxlibeglintegration.cpp 2013-12-25 19:09:37.207893799 -0800 +@@ -180,5 +180,5 @@ + } + + qWarning("Unable to find an X11 visual which matches EGL config %d", configId); +- return (VisualID)0; ++ return (VisualID)33; + }
package/qt5/qt5base/qt5base-0004-xcb-egl-fixes.patch new file +63 -0
63 lines not on this page · raw message
Signature · 1 line
1.9.1
PATCH v2 9/13 xdriver_xf86-video-imx-viv: new package
In reply to Jérôme PouillerXorg driver for imx6. Inspired from Yocto project.
I did not find any problem, but notice Yocto project force Xorg xserver 1.14.4 while we use 1.16.
Notice Vivante driver should be able to provide Desktop OpenGL implementation. However, this feature seems broken for a while. Yocto use Mesa3D/swraster to provide Desktop OpenGL API.
Tested with:
subsequent qt5base and libdrm fixes +
QMX6 board +
BR2_ARM_EABIHF= both tested
BR2_ARM_ENABLE_NEON=y
BR2_ARM_FPU_NEON=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://git.congatec.com/arm/qmx6_kernel.git"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="9bafbcba67f7bb2a48a5e05998cecb1165aa444f"
BR2_LINUX_KERNEL_DEFCONFIG="qmx6"
BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-qmx6"
BR2_PACKAGE_QT5=y
BR2_PACKAGE_QT5BASE_LICENSE_APPROVED=y
BR2_PACKAGE_QT5BASE_EXAMPLES=y
BR2_PACKAGE_QT5BASE_OPENGL_LIB=y
BR2_PACKAGE_QT5BASE_XCB=y
BR2_PACKAGE_QT5BASE_DEFAULT_QPA="xcb"
BR2_PACKAGE_QT5BASE_GIF=y
BR2_PACKAGE_QT5BASE_JPEG=y
BR2_PACKAGE_QT5BASE_PNG=y
BR2_PACKAGE_QT5QUICKCONTROLS=y
BR2_PACKAGE_XORG7=y
BR2_PACKAGE_XSERVER_XORG_SERVER=y
BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR=y
BR2_PACKAGE_XDRIVER_XF86_INPUT_EVDEV=y
BR2_PACKAGE_XDRIVER_XF86_VIDEO_IMX_VIV=y
BR2_PACKAGE_FREESCALE_IMX=y
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q=y
BR2_PACKAGE_GPU_VIV_BIN_MX6Q=y
BR2_PACKAGE_GPU_VIV_BIN_MX6Q_EXAMPLES=y--- package/x11r7/Config.in | 1 + package/x11r7/xdriver_xf86-video-imx-viv/Config.in | 32 ++++++++++++++++++++++ ...xf86-video-imx-viv-0001-Fix-LoadExtenions.patch | 15 ++++++++++ .../xdriver_xf86-video-imx-viv.mk | 32 ++++++++++++++++++++++ 4 files changed, 80 insertions(+) create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-0001-Fix-LoadExtenions.patch create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk
package/x11r7/Config.in +1 -0
@@ -161,6 +161,7 @@ if BR2_PACKAGE_XORG7 source package/x11r7/xdriver_xf86-video-glide/Config.in source package/x11r7/xdriver_xf86-video-glint/Config.in source package/x11r7/xdriver_xf86-video-i128/Config.in + source package/x11r7/xdriver_xf86-video-imx-viv/Config.in source package/x11r7/xdriver_xf86-video-intel/Config.in source package/x11r7/xdriver_xf86-video-mach64/Config.in source package/x11r7/xdriver_xf86-video-mga/Config.in
package/x11r7/xdriver_xf86-video-imx-viv/Config.in new file +32 -0
@@ -0,0 +1,32 @@ +if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q + +config BR2_PACKAGE_XDRIVER_XF86_VIDEO_IMX_VIV + bool "xf86-video-imx-viv" + depends on BR2_arm + depends on BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT_X11 + depends on BR2_TOOLCHAIN_USES_GLIBC # gpu-viv-bin-m6q + select BR2_PACKAGE_MESA3D # Needed in order to compile xorg with glx/dri + select BR2_PACKAGE_MESA3D_DRI_DRIVER + select BR2_PACKAGE_XPROTO_XPROTO + select BR2_PACKAGE_XPROTO_XF86DRIPROTO + help + X.Org driver for iMX6 GPU (Vivante) + + To use this driver, add correct configuration to your + /etc/X11/xorg.conf: + + Section "Device" + [...] + Driver "vivante" + Option "vivante_fbdev" "/dev/fbX" + EndSection + + Don't forget to load galcore.ko create /dev/galcore before to + use this driver (else, Xorg will exit with an obscur message + like "Segmentation fault at address 0xc"). + +comment "xf86-video-imx-viv needs an (e)glibc toolchain and gpu-viv-bin-mx6q with X11 output" + depends on BR2_arm + depends on (!BR2_TOOLCHAIN_USES_GLIBC || !BR2_PACKAGE_GPU_VIV_BIN_MX6Q_OUTPUT_X11) + +endif
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-0001-Fix-LoadExtenions.patch new file +15 -0
@@ -0,0 +1,15 @@ +Fix compilation with Xorg xserver 1.16. + +Signed-off-by: J?r?me Pouiller <[email protected]> + +--- a/EXA/src/vivante_fbdev/vivante_fbdev_driver.c 2014-07-25 15:38:24.000000000 +0200 ++++ b/EXA/src/vivante_fbdev/vivante_fbdev_driver.c 2014-10-02 21:00:58.755409342 +0200 +@@ -261,7 +261,7 @@ + setupDone = TRUE; + xf86AddDriver(&FBDEV, module, HaveDriverFuncs); + if(gVivFb) +- LoadExtension(&VIVExt, FALSE); ++ LoadExtensionList(&VIVExt, 1, FALSE); + return (pointer)1; + } else { + if (errmaj) *errmaj = LDR_ONCEONLY;
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk new file +32 -0
@@ -0,0 +1,32 @@ +################################################################################ +# +# xdriver_xf86-video-imx-viv +# +################################################################################ + +XDRIVER_XF86_VIDEO_IMX_VIV_VERSION = $(FREESCALE_IMX_VERSION) +XDRIVER_XF86_VIDEO_IMX_VIV_SITE = $(FREESCALE_IMX_SITE) +XDRIVER_XF86_VIDEO_IMX_VIV_SOURCE = xserver-xorg-video-imx-viv-$(XDRIVER_XF86_VIDEO_IMX_VIV_VERSION).tar.gz +XDRIVER_XF86_VIDEO_IMX_VIV_DEPENDENCIES = gpu-viv-bin-mx6q xserver_xorg-server \ + xproto_xproto xproto_xf86driproto +XDRIVER_XF86_VIDEO_IMX_VIV_INSTALL_STAGING = YES +XDRIVER_XF86_VIDEO_IMX_VIV_MAKE_CMD = $(TARGET_CONFIGURE_OPTS) $(MAKE1) -C $(@D)/EXA/src -f makefile.linux + +define XDRIVER_XF86_VIDEO_IMX_VIV_BUILD_CMDS + $(XDRIVER_XF86_VIDEO_IMX_VIV_MAKE_CMD) sysroot=$(STAGING_DIR) \ + BUSID_HAS_NUMBER=1 BUILD_IN_YOCTO=1 XSERVER_GREATER_THAN_13=1 \ + CFLAGS+="$(TARGET_CFLAGS) -I$(@D)/DRI_1.10.4/src" +endef + +define XDRIVER_XF86_VIDEO_IMX_VIV_INSTALL_STAGING_CMDS + $(XDRIVER_XF86_VIDEO_IMX_VIV_MAKE_CMD) prefix=$(STAGING_DIR)/usr install + $(INSTALL) -m 644 $(@D)/EXA/src/vivante_gal/vivante_priv.h $(STAGING_DIR)/usr/include + $(INSTALL) -m 644 $(@D)/EXA/src/vivante_gal/vivante_gal.h $(STAGING_DIR)/usr/include +endef + +define XDRIVER_XF86_VIDEO_IMX_VIV_INSTALL_TARGET_CMDS + $(XDRIVER_XF86_VIDEO_IMX_VIV_MAKE_CMD) prefix=$(TARGET_DIR)/usr install +endef + +$(eval $(generic-package)) +
Signature · 1 line
1.9.1
PATCH v2 10/13 Vivante drivers: bump to version 3.10.17-1.0.1
In reply to Jérôme Pouiller--- package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 5 +++-- .../x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-)
package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk +3 -2
@@ -4,10 +4,11 @@ # ################################################################################ +GPU_VIV_BIN_MX6Q_BASE_VERSION = 3.10.17-1.0.1 ifeq ($(BR2_ARM_EABIHF),y) -GPU_VIV_BIN_MX6Q_VERSION = $(FREESCALE_IMX_VERSION)-hfp +GPU_VIV_BIN_MX6Q_VERSION = $(GPU_VIV_BIN_MX6Q_BASE_VERSION)-hfp else -GPU_VIV_BIN_MX6Q_VERSION = $(FREESCALE_IMX_VERSION)-sfp +GPU_VIV_BIN_MX6Q_VERSION = $(GPU_VIV_BIN_MX6Q_BASE_VERSION)-sfp endif GPU_VIV_BIN_MX6Q_SITE = $(FREESCALE_IMX_SITE) GPU_VIV_BIN_MX6Q_SOURCE = gpu-viv-bin-mx6q-$(GPU_VIV_BIN_MX6Q_VERSION).bin
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk +1 -1
@@ -4,7 +4,7 @@ # ################################################################################ -XDRIVER_XF86_VIDEO_IMX_VIV_VERSION = $(FREESCALE_IMX_VERSION) +XDRIVER_XF86_VIDEO_IMX_VIV_VERSION = 3.10.17-1.0.1 XDRIVER_XF86_VIDEO_IMX_VIV_SITE = $(FREESCALE_IMX_SITE) XDRIVER_XF86_VIDEO_IMX_VIV_SOURCE = xserver-xorg-video-imx-viv-$(XDRIVER_XF86_VIDEO_IMX_VIV_VERSION).tar.gz XDRIVER_XF86_VIDEO_IMX_VIV_DEPENDENCIES = gpu-viv-bin-mx6q xserver_xorg-server \
Signature · 1 line
1.9.1
PATCH v2 11/13 nitrogen6x_defconfig: bump kernel to 3.10.17_1.0.1_ga
In reply to Jérôme Pouiller--- configs/nitrogen6x_defconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
configs/nitrogen6x_defconfig +2 -1
@@ -26,7 +26,8 @@ BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="http://github.com/boundarydevices/u-bo # kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y -BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="http://github.com/boundarydevices/linux-imx6/tarball/898627a/linux-imx6-898627a.tar.gz" +# Last version of branch boundary-imx_3.10.17_1.0.1_ga +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/linux-imx6/tarball/ea957c5/linux-imx6-ea957c5.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="nitrogen6x" BR2_LINUX_KERNEL_INSTALL_TARGET=y BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000"
Signature · 1 line
1.9.1
PATCH v2 12/13 freescale_imx6*_defconfig: bump kernel to 3.10.17_1.0.1_ga
In reply to Jérôme Pouiller--- configs/freescale_imx6dlsabresd_defconfig | 3 ++- configs/freescale_imx6qsabresd_defconfig | 3 ++- configs/freescale_imx6sololiteevk_defconfig | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-)
configs/freescale_imx6dlsabresd_defconfig +2 -1
@@ -17,7 +17,8 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.freescale.com/imx/linux-2.6-imx.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_3.10.17_1.0.0_ga" +# Last version of branch imx_3.10.17_1.0.1_ga +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="dac46dcf913585956a0e7a838e6f4b7465f00f57" BR2_LINUX_KERNEL_DEFCONFIG="imx_v7" BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000" BR2_LINUX_KERNEL_DTS_SUPPORT=y
configs/freescale_imx6qsabresd_defconfig +2 -1
@@ -17,7 +17,8 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.freescale.com/imx/linux-2.6-imx.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_3.10.17_1.0.0_ga" +# Last version of branch imx_3.10.17_1.0.1_ga +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="dac46dcf913585956a0e7a838e6f4b7465f00f57" BR2_LINUX_KERNEL_DEFCONFIG="imx_v7" BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000" BR2_LINUX_KERNEL_DTS_SUPPORT=y
configs/freescale_imx6sololiteevk_defconfig +2 -1
@@ -9,7 +9,8 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.freescale.com/imx/linux-2.6-imx.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_3.10.17_1.0.0_ga" +# Last version of branch imx_3.10.17_1.0.1_ga +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="dac46dcf913585956a0e7a838e6f4b7465f00f57" BR2_LINUX_KERNEL_DEFCONFIG="imx_v7" BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000" BR2_LINUX_KERNEL_DTS_SUPPORT=y
Signature · 1 line
1.9.1
PATCH v2 13/13 qmx6_defconfig: update
In reply to Jérôme Pouiller- Update kernel
- Add u-boot configuration
- Add support for graphical drivers
- Enable Qt5 (eglfs) since most of user will it with this configuration
- 6q_bootscript.txt is no more needed by new version of u-boot
--- board/congatec/qmx6/6q_bootscript.txt | 2 -- board/congatec/qmx6/post-build.sh | 7 ----- configs/qmx6_defconfig | 49 +++++++++++++++++++++++++++++++---- 3 files changed, 44 insertions(+), 14 deletions(-) delete mode 100644 board/congatec/qmx6/6q_bootscript.txt delete mode 100755 board/congatec/qmx6/post-build.sh
board/congatec/qmx6/6q_bootscript.txt deleted +0 -2
@@ -1,2 +0,0 @@ -set bootargs console=ttymxc1,115200 root=/dev/mmcblk0p1 rootwait consoleblank=0 -${fs}load mmc ${disk}:1 10800000 /boot/uImage && bootm 10800000 ; echo "Error loading kernel image"
board/congatec/qmx6/post-build.sh deleted +0 -7
@@ -1,7 +0,0 @@ -#!/bin/sh - -TARGET_DIR=$1 -BOARD_DIR="$(dirname $0)" - -mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "boot script" \ - -d $BOARD_DIR/6q_bootscript.txt $TARGET_DIR/6q_bootscript
configs/qmx6_defconfig +44 -5
60 lines not on this page · raw message
Signature · 1 line
1.9.1
v2 cover Add Xorg support for imx6
In reply to Jérôme PouillerJerome,
I've been able to build and test this set of patches on my i.MX6Q SabreLite board (nitrogen6x defconfig).
Everything is running fine although I only tried:
- Starting X server
- Launching xterm
- Launching Vivante 3D examples
Regarding X, I've used the following configuration:
https://github.com/Freescale/meta-fsl-arm/blob/master/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6/xorg.conf
However I have a few questions regarding the patches:
- 05/13: gpu-viv-bin-mx6q: make fb/x11 choice explicit
- Not sure to get the use case here. Are people interested in having fb libs on a X system?
- 06/13: gpu-viv-bin-mx6q: change output selection mecanism
- s/mecanism/mechanism
- Are the symbolic links changes related to the output selection? I would have seen this as part of the "04/13: gpu-viv-bin-mx6q: fix GLESv2 support" patch
Other than that it looks good. There's one test I haven't done yet: rebuild a system without X making sure 3D is still working.
Thanks,
Gary
Quoted 60 lines · J?r?me Pouiller
Hello,
Main purpose of this serie is to add support of Vivante GPU (found on imx6) to Xorg. This work is mainly adapted from Yocto.
v2:
- Rebase on new version of mesa3d
- Reorder some patches (in order to make examples I provide in commit message functional)
- Do not bump version of all freescale packages
- Bump kernel version of imx6 boardsJ?r?me Pouiller (13):
mesa3d: Give possibility to external backends to enable DRI/Gallium
gpu-viv-bin-mx6q: provide libopenvg
gpu-viv-bin-mx6q: fix compiling issues withEGL_API_FB
gpu-viv-bin-mx6q: fix GLESv2 support
gpu-viv-bin-mx6q: make fb/x11 choice explicit
gpu-viv-bin-mx6q: change output selection mecanism
libdrm: fix support for xserver with Vivante drivers
qt5base: fix Vivante x11/EGL configuration xdriver_xf86-video-imx-viv: new package
Vivante drivers: bump to version 3.10.17-1.0.1
nitrogen6x_defconfig: bump kernel to 3.10.17_1.0.1_ga freescale_imx6*_defconfig: bump kernel to 3.10.17_1.0.1_ga
qmx6_defconfig: updateboard/congatec/qmx6/6q_bootscript.txt | 2 - board/congatec/qmx6/post-build.sh | 7 --- configs/freescale_imx6dlsabresd_defconfig | 3 +- configs/freescale_imx6qsabresd_defconfig | 3 +- configs/freescale_imx6sololiteevk_defconfig | 3 +- configs/nitrogen6x_defconfig | 3 +- configs/qmx6_defconfig | 49 +++++++++++++++-- package/freescale-imx/gpu-viv-bin-mx6q/Config.in | 33 +++++++++++- package/freescale-imx/gpu-viv-bin-mx6q/egl.pc | 2 +- package/freescale-imx/gpu-viv-bin-mx6q/glesv2.pc | 2 +- .../gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 43 +++++++-------- package/freescale-imx/gpu-viv-bin-mx6q/vg.pc | 2 +- package/libdrm/libdrm-0001-update-arm.patch | 37 +++++++++++++ package/mesa3d/mesa3d.mk | 4 +- .../qt5base-0001-Force_egl_visual_ID_33.patch | 23 ++++++++ .../qt5/qt5base/qt5base-0004-xcb-egl-fixes.patch | 63 ++++++++++++++++++++++ package/x11r7/Config.in | 1 + package/x11r7/xdriver_xf86-video-imx-viv/Config.in | 32 +++++++++++ ...xf86-video-imx-viv-0001-Fix-LoadExtenions.patch | 15 ++++++ .../xdriver_xf86-video-imx-viv.mk | 32 +++++++++++ 20 files changed, 313 insertions(+), 46 deletions(-) delete mode 100644 board/congatec/qmx6/6q_bootscript.txt delete mode 100755 board/congatec/qmx6/post-build.sh create mode 100644 package/libdrm/libdrm-0001-update-arm.patch create mode 100644 package/qt5/qt5base/qt5base-0001-Force_egl_visual_ID_33.patch create mode 100644 package/qt5/qt5base/qt5base-0004-xcb-egl-fixes.patch create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-0001-Fix-LoadExtenions.patch create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mkSignature · 1 line
1.9.1
v2 cover Add Xorg support for imx6
Adding Jerome...
Quoted 89 lines · Gary Bisson
Jerome,
I've been able to build and test this set of patches on my i.MX6Q SabreLite board (nitrogen6x defconfig).
Everything is running fine although I only tried:
- Starting X server
- Launching xterm
- Launching Vivante 3D examplesRegarding X, I've used the following configuration:
https://github.com/Freescale/meta-fsl-arm/blob/master/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6/xorg.confHowever I have a few questions regarding the patches:
- 05/13: gpu-viv-bin-mx6q: make fb/x11 choice explicit
- Not sure to get the use case here. Are people interested in having fb libs on a X system?
- 06/13: gpu-viv-bin-mx6q: change output selection mecanism
- s/mecanism/mechanism
- Are the symbolic links changes related to the output selection? I would have seen this as part of the "04/13: gpu-viv-bin-mx6q: fix GLESv2 support" patchOther than that it looks good. There's one test I haven't done yet: rebuild a system without X making sure 3D is still working.
Thanks,
GaryQuoted 60 lines · J?r?me Pouiller
Hello,
Main purpose of this serie is to add support of Vivante GPU (found on imx6) to Xorg. This work is mainly adapted from Yocto.
v2:
- Rebase on new version of mesa3d
- Reorder some patches (in order to make examples I provide in commit message functional)
- Do not bump version of all freescale packages
- Bump kernel version of imx6 boardsJ?r?me Pouiller (13):
mesa3d: Give possibility to external backends to enable DRI/Gallium
gpu-viv-bin-mx6q: provide libopenvg
gpu-viv-bin-mx6q: fix compiling issues withEGL_API_FB
gpu-viv-bin-mx6q: fix GLESv2 support
gpu-viv-bin-mx6q: make fb/x11 choice explicit
gpu-viv-bin-mx6q: change output selection mecanism
libdrm: fix support for xserver with Vivante drivers
qt5base: fix Vivante x11/EGL configuration xdriver_xf86-video-imx-viv: new package
Vivante drivers: bump to version 3.10.17-1.0.1
nitrogen6x_defconfig: bump kernel to 3.10.17_1.0.1_ga freescale_imx6*_defconfig: bump kernel to 3.10.17_1.0.1_ga
qmx6_defconfig: updateboard/congatec/qmx6/6q_bootscript.txt | 2 - board/congatec/qmx6/post-build.sh | 7 --- configs/freescale_imx6dlsabresd_defconfig | 3 +- configs/freescale_imx6qsabresd_defconfig | 3 +- configs/freescale_imx6sololiteevk_defconfig | 3 +- configs/nitrogen6x_defconfig | 3 +- configs/qmx6_defconfig | 49 +++++++++++++++-- package/freescale-imx/gpu-viv-bin-mx6q/Config.in | 33 +++++++++++- package/freescale-imx/gpu-viv-bin-mx6q/egl.pc | 2 +- package/freescale-imx/gpu-viv-bin-mx6q/glesv2.pc | 2 +- .../gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 43 +++++++-------- package/freescale-imx/gpu-viv-bin-mx6q/vg.pc | 2 +- package/libdrm/libdrm-0001-update-arm.patch | 37 +++++++++++++ package/mesa3d/mesa3d.mk | 4 +- .../qt5base-0001-Force_egl_visual_ID_33.patch | 23 ++++++++ .../qt5/qt5base/qt5base-0004-xcb-egl-fixes.patch | 63 ++++++++++++++++++++++ package/x11r7/Config.in | 1 + package/x11r7/xdriver_xf86-video-imx-viv/Config.in | 32 +++++++++++ ...xf86-video-imx-viv-0001-Fix-LoadExtenions.patch | 15 ++++++ .../xdriver_xf86-video-imx-viv.mk | 32 +++++++++++ 20 files changed, 313 insertions(+), 46 deletions(-) delete mode 100644 board/congatec/qmx6/6q_bootscript.txt delete mode 100755 board/congatec/qmx6/post-build.sh create mode 100644 package/libdrm/libdrm-0001-update-arm.patch create mode 100644 package/qt5/qt5base/qt5base-0001-Force_egl_visual_ID_33.patch create mode 100644 package/qt5/qt5base/qt5base-0004-xcb-egl-fixes.patch create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/Config.in create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-0001-Fix-LoadExtenions.patch create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk--
1.9.1
v2 cover Add Xorg support for imx6
Quoted 21 lines · On Sunday 16 November 2014 00:37:53 Gary Bisson wrote:
Adding Jerome...
Quoted 18 lines · Gary Bisson
Jerome,
I've been able to build and test this set of patches on my i.MX6Q SabreLite board (nitrogen6x defconfig).
Everything is running fine although I only tried:
- Starting X server
- Launching xterm
- Launching Vivante 3D examplesRegarding X, I've used the following configuration:
https://github.com/Freescale/meta-fsl-arm/blob/master/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6/xorg.confHowever I have a few questions regarding the patches:
- 05/13: gpu-viv-bin-mx6q: make fb/x11 choice explicit- Not sure to get the use case here. Are people interested in having fb libs on a X system?
In fact, yes I think. During development, many developers try fb and Xorg to know which one match best for theirs objectives. I think, it is easy to make a mistakes without this patch.
In add, I think I will add wayland support in future. I found easier to select explicitly back-end.
Quoted 8 lines
Quoted 8 lines
- 06/13: gpu-viv-bin-mx6q: change output selection mecanism
- s/mecanism/mechanism
- Are the symbolic links changes related to the output selection? I would
have seen this as part of the "04/13: gpu-viv-bin-mx6q: fix GLESv2 support"
patch
Patch 04 fix a bug, while patch 06 is a style change. However, I admit patch description is not well chosen.
Quoted 2 lines
Quoted 2 lines
Other than that it looks good. There's one test I haven't done yet:
rebuild a system without X making sure 3D is still working.
[...]
Thanks for the test and the review.
Signature · 3 lines
J?r?me Pouiller, Sysmic Embedded Linux specialist http://www.sysmic.fr
v2 cover Add Xorg support for imx6
Jerome, all,
Quoted 4 lines · J?r?me Pouiller
Quoted 4 lines
Quoted 4 lines
[snip]
However I have a few questions regarding the patches:
- 05/13: gpu-viv-bin-mx6q: make fb/x11 choice explicit
Quoted 9 lines
Quoted 2 lines
Quoted 2 lines
- Not sure to get the use case here. Are people interested in having fb libs on a X system?
In fact, yes I think. During development, many developers try fb and Xorg to know which one match best for theirs objectives. I think, it is easy to make a mistakes without this patch.
In add, I think I will add wayland support in future. I found easier to select explicitly back-end.
Ok I now get it.
Quoted 9 lines
Quoted 8 lines
Quoted 8 lines
- 06/13: gpu-viv-bin-mx6q: change output selection mecanism
- s/mecanism/mechanism
- Are the symbolic links changes related to the output selection? I would
have seen this as part of the "04/13: gpu-viv-bin-mx6q: fix GLESv2 support"
patch
Quoted 5 lines
Patch 04 fix a bug, while patch 06 is a style change. However, I admit patch description is not well chosen.
Quoted 2 lines
Quoted 2 lines
Other than that it looks good. There's one test I haven't done yet:
rebuild a system without X making sure 3D is still working.
Sorry for the delay but I've finally tested your patchset without X (fb mode) and everything works fine!
Let me know if there's more testing to be done, it'd be great to have the latest GPU libs merged asap.
Thanks,
Gary