qt5, eglfs and xcb
Hello,
when you try to build qt5 with the X support (xcb), selecting one of the following modules: qtquick*, qt5declarative, qt5graphicaleffects and qt5multimedia, leads to force the selection of the eglfs support.
After three days of build failures (due to the same constants defined both from xbc and eglfs) I asked an aid to a company which offer a technical support about Qt. The says only qtquick2 requires the opengl acceleration and this one is provided also from xbc.
So it shouldn't required at all the eglfs plugin if you're using X.
Please, might you verify this?
If they are right, could you fix the dependencies so we can build a working buildroot image with Qt5 and xcb?
Thanks!
Marco
Dear Marco Trapanese,
Quoted 8 lines · Marco Trapanese
when you try to build qt5 with the X support (xcb), selecting one of the following modules: qtquick*, qt5declarative, qt5graphicaleffects and qt5multimedia, leads to force the selection of the eglfs support.
After three days of build failures (due to the same constants defined both from xbc and eglfs) I asked an aid to a company which offer a technical support about Qt. The says only qtquick2 requires the opengl acceleration and this one is provided also from xbc.
This is not quite correct (even though the general problem you raise actually exists).
First, it's actually qt5declarative that requires OpenGL (or OpenGL ES) support, and qt5quick1 depends on qt5declarative. Same for qt5graphicaleffects, it depends on qt5declarative.
Moreover, under X.org, having XCB is clearly not sufficient to get OpenGL support. XCB is merely a modern implementation of libX11, which allows to talk to the X server to do some rendering, but not direct, OpenGL rendering.
Quoted 1 line
So it shouldn't required at all the eglfs plugin if you're using X.
This is correct. eglfs is only needed for non-X.org situations.
Quoted 3 lines
Please, might you verify this?
If they are right, could you fix the dependencies so we can build a working buildroot image with Qt5 and xcb?
As explained above, this requires more than just XCB, contrary to what the company you requested support from is claiming. You need an OpenGL implementation that works under X.org, and this implementation is usually Mesa. And the support for making Mesa recognized as a proper OpenGL implementation has only been merged since yesterday, and is not yet completely ready.
It would certainly be interesting to fix this in Buildroot and allow Qt5 to build for X.org with OpenGL support. But if you want this to happen, you should either:
1) Do it yourself.
2) Wait for someone else to do it, but then you can't expect any particular deadline or guarantees. It may be something that will get done this summer as part of the Google Summer of Code.
3) Hire a third party to do it. Actually, it's a little bit strange that you've asked a company who isn't able to fix the problem in Buildroot, rather than a company that actually is able to do it.
BTW, what is your hardware platform? What type of graphics hardware are you using? What X.org driver are you using?
Anyway, thanks for the report, this is definitely something that should be improved.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
Il 30/03/2014 17:21, Thomas Petazzoni ha scritto:
Quoted 7 lines
As explained above, this requires more than just XCB, contrary to what the company you requested support from is claiming. You need an OpenGL implementation that works under X.org, and this implementation is usually Mesa. And the support for making Mesa recognized as a proper OpenGL implementation has only been merged since yesterday, and is not yet completely ready. It would certainly be interesting to fix this in Buildroot and allow Qt5 to build for X.org with OpenGL support.
Ok, as far as I understand it means nobody has successfully compiled Qt5
+ webkit + xcb + mesa yet.
Perhaps, people use only the framebuffer with buildroot.
Quoted 7 lines
But if you want this to happen, you should either: 1) Do it yourself.
2) Wait for someone else to do it, but then you can't expect any particular deadline or guarantees. It may be something that will get done this summer as part of the Google Summer of Code. 3) Hire a third party to do it. Actually, it's a little bit strange that you've asked a company who isn't able to fix the problem in Buildroot, rather than a company that actually is able to do it.
Unfortunately we have a dead-line for our project and my knowledge is too small to do it myself. I'm going for the third option, but with another company :-)
Quoted 3 lines
BTW, what is your hardware platform? What type of graphics hardware are you using? What X.org driver are you using? Anyway, thanks for the report, this is definitely something that should be improved. Thomas
We're using a Freescale iMX6 MARS board, with the modular X.org server. As drivers, I selected:
xf86-input-evdev
xf86-input-keyboard
xf86-input-mouse
xf86-input-tslib
xf86-video-fbdev
because I don't know which other video driver I should select for my platform...
Best regards
Marco
Dear Marco Trapanese,
Quoted 9 lines · Marco Trapanese
Il 30/03/2014 17:21, Thomas Petazzoni ha scritto:
Quoted 7 lines
As explained above, this requires more than just XCB, contrary to what the company you requested support from is claiming. You need an OpenGL implementation that works under X.org, and this implementation is usually Mesa. And the support for making Mesa recognized as a proper OpenGL implementation has only been merged since yesterday, and is not yet completely ready. It would certainly be interesting to fix this in Buildroot and allow Qt5 to build for X.org with OpenGL support.
Quoted 3 lines
Ok, as far as I understand it means nobody has successfully compiled Qt5
+ webkit + xcb + mesa yet.
Perhaps, people use only the framebuffer with buildroot.
Yes, on most embedded platforms, people use framebuffer + EGL + OpenGL ES I believe.
Quoted 6 lines
Quoted 3 lines
BTW, what is your hardware platform? What type of graphics hardware are you using? What X.org driver are you using? Anyway, thanks for the report, this is definitely something that should be improved. Thomas
We're using a Freescale iMX6 MARS board, with the modular X.org server. As drivers, I selected:
On i.MX6 you will clearly not want to use Mesa, as I believe there is no support for the i.MX6 GPU in the mainline Mesa (even though the etnaviv project has been making some interesting progress). So for the time being, you will have to use the OpenGL implementation available in the gpu-viv-bin-mx6q package. It has an X11 variant of the OpenGL implementation, so it should work with X.org. The only thing that remains is indeed fixing the Qt5 package to be able to build its X.org support with OpenGL support.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
Hello Marco,
Quoted 9 lines · On Tuesday 01 April 2014 12:05:32 Marco Trapanese wrote:
Il 30/03/2014 17:21, Thomas Petazzoni ha scritto:
Quoted 7 lines
As explained above, this requires more than just XCB, contrary to what the company you requested support from is claiming. You need an OpenGL implementation that works under X.org, and this implementation is usually Mesa. And the support for making Mesa recognized as a proper OpenGL implementation has only been merged since yesterday, and is not yet completely ready. It would certainly be interesting to fix this in Buildroot and allow Qt5 to build for X.org with OpenGL support.
Quoted 3 lines
Ok, as far as I understand it means nobody has successfully compiled Qt5
+ webkit + xcb + mesa yet.
Perhaps, people use only the framebuffer with buildroot.
You may want to test following patches:
[PATCH 1/2] qt5declarative: Reduce dependencies to GLes2 only [PATCH 2/2] Add supporit for Vivante xdriver
They are not yet ready for mainlining, but they should work with imx6 and Qt5 (I have quickly tested them with applications without OpenGL).
PATCH 1/2 qt5declarative: Reduce dependencies to GLes2 only
From: J?r?me Pouiller <[email protected]>
--- package/qt5/qt5base/qt5base.mk | 12 +++++++++--- package/qt5/qt5declarative/Config.in | 1 - 2 files changed, 9 insertions(+), 4 deletions(-)
package/qt5/qt5base/qt5base.mk +9 -3
@@ -96,9 +96,15 @@ else QT5BASE_CONFIGURE_OPTS += -no-xcb endif -ifeq ($(BR2_PACKAGE_QT5BASE_EGLFS),y) -QT5BASE_CONFIGURE_OPTS += -opengl es2 -eglfs +ifeq ($(BR2_PACKAGE_HAS_OPENGL_EGL)$(BR2_PACKAGE_HAS_OPENGL_ES),yy) +QT5BASE_CONFIGURE_OPTS += -opengl es2 QT5BASE_DEPENDENCIES += libgles libegl +else +QT5BASE_CONFIGURE_OPTS += -no-opengl +endif + +ifeq ($(BR2_PACKAGE_QT5BASE_EGLFS),y) +QT5BASE_CONFIGURE_OPTS += -eglfs ifeq ($(BR2_PACKAGE_GPU_VIV_BIN_MX6Q),y) QT5BASE_EGLFS_PLATFORM_HOOKS_SOURCES = \ $(@D)/mkspecs/devices/linux-imx6-g++/qeglfshooks_imx6.cpp
@@ -108,7 +114,7 @@ QT5BASE_EGLFS_PLATFORM_HOOKS_SOURCES = \ $(@D)/mkspecs/devices/linux-rasp-pi-g++/qeglfshooks_pi.cpp endif else -QT5BASE_CONFIGURE_OPTS += -no-opengl -no-eglfs +QT5BASE_CONFIGURE_OPTS += -no-eglfs endif QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_OPENSSL),-openssl,-no-openssl)
package/qt5/qt5declarative/Config.in +0 -1
@@ -3,7 +3,6 @@ config BR2_PACKAGE_QT5DECLARATIVE select BR2_PACKAGE_QT5XMLPATTERNS select BR2_PACKAGE_QT5BASE select BR2_PACKAGE_QT5BASE_GUI - select BR2_PACKAGE_QT5BASE_EGLFS depends on BR2_PACKAGE_HAS_OPENGL_EGL depends on BR2_PACKAGE_HAS_OPENGL_ES depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
Signature · 1 line
1.9.1
PATCH 1/2 qt5declarative: Reduce dependencies to GLes2 only
Fatih,
Since you are our Qt5 expert, could you comment on this patch, and give your Reviewed-by, Tested-by and/or Acked-by?
Thanks!
Thomas
Quoted 51 lines · J?r?me Pouiller
From: J?r?me Pouiller <[email protected]>
Signed-off-by J?r?me Pouiller <[email protected]>--- package/qt5/qt5base/qt5base.mk | 12 +++++++++--- package/qt5/qt5declarative/Config.in | 1 - 2 files changed, 9 insertions(+), 4 deletions(-)package/qt5/qt5base/qt5base.mk +9
-3@@ -96,9 +96,15 @@ else QT5BASE_CONFIGURE_OPTS += -no-xcb endif -ifeq ($(BR2_PACKAGE_QT5BASE_EGLFS),y) -QT5BASE_CONFIGURE_OPTS += -opengl es2 -eglfs +ifeq ($(BR2_PACKAGE_HAS_OPENGL_EGL)$(BR2_PACKAGE_HAS_OPENGL_ES),yy) +QT5BASE_CONFIGURE_OPTS += -opengl es2 QT5BASE_DEPENDENCIES += libgles libegl +else +QT5BASE_CONFIGURE_OPTS += -no-opengl +endif + +ifeq ($(BR2_PACKAGE_QT5BASE_EGLFS),y) +QT5BASE_CONFIGURE_OPTS += -eglfs ifeq ($(BR2_PACKAGE_GPU_VIV_BIN_MX6Q),y) QT5BASE_EGLFS_PLATFORM_HOOKS_SOURCES = \ $(@D)/mkspecs/devices/linux-imx6-g++/qeglfshooks_imx6.cpp@@ -108,7 +114,7 @@ QT5BASE_EGLFS_PLATFORM_HOOKS_SOURCES = \ $(@D)/mkspecs/devices/linux-rasp-pi-g++/qeglfshooks_pi.cpp endif else -QT5BASE_CONFIGURE_OPTS += -no-opengl -no-eglfs +QT5BASE_CONFIGURE_OPTS += -no-eglfs endif QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_OPENSSL),-openssl,-no-openssl)package/qt5/qt5declarative/Config.in +0
-1@@ -3,7 +3,6 @@ config BR2_PACKAGE_QT5DECLARATIVE select BR2_PACKAGE_QT5XMLPATTERNS select BR2_PACKAGE_QT5BASE select BR2_PACKAGE_QT5BASE_GUI - select BR2_PACKAGE_QT5BASE_EGLFS depends on BR2_PACKAGE_HAS_OPENGL_EGL depends on BR2_PACKAGE_HAS_OPENGL_ES depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/2 qt5declarative: Reduce dependencies to GLes2 only
Hello Fatih,
I'm mainlining some pending patches for the Google Summer of Code, and for this one I'm not really able to say if it is correct or not. It seems coherent for me but I'm not a Qt5 expert.
As Thomas said, since you are our Qt5 expert have you some comments on this patch?
Thanks!
Hadrien
Quoted 64 lines · Thomas Petazzoni
Fatih,
Since you are our Qt5 expert, could you comment on this patch, and give your Reviewed-by, Tested-by and/or Acked-by?
Thanks!
Thomas
Quoted 51 lines · J?r?me Pouiller
From: J?r?me Pouiller <[email protected]>
Signed-off-by J?r?me Pouiller <[email protected]>--- package/qt5/qt5base/qt5base.mk | 12 +++++++++--- package/qt5/qt5declarative/Config.in | 1 - 2 files changed, 9 insertions(+), 4 deletions(-)package/qt5/qt5base/qt5base.mk +9
-3@@ -96,9 +96,15 @@ else QT5BASE_CONFIGURE_OPTS += -no-xcb endif -ifeq ($(BR2_PACKAGE_QT5BASE_EGLFS),y) -QT5BASE_CONFIGURE_OPTS += -opengl es2 -eglfs +ifeq ($(BR2_PACKAGE_HAS_OPENGL_EGL)$(BR2_PACKAGE_HAS_OPENGL_ES),yy) +QT5BASE_CONFIGURE_OPTS += -opengl es2 QT5BASE_DEPENDENCIES += libgles libegl +else +QT5BASE_CONFIGURE_OPTS += -no-opengl +endif + +ifeq ($(BR2_PACKAGE_QT5BASE_EGLFS),y) +QT5BASE_CONFIGURE_OPTS += -eglfs ifeq ($(BR2_PACKAGE_GPU_VIV_BIN_MX6Q),y) QT5BASE_EGLFS_PLATFORM_HOOKS_SOURCES = \ $(@D)/mkspecs/devices/linux-imx6-g++/qeglfshooks_imx6.cpp@@ -108,7 +114,7 @@ QT5BASE_EGLFS_PLATFORM_HOOKS_SOURCES = \ $(@D)/mkspecs/devices/linux-rasp-pi-g++/qeglfshooks_pi.cpp endif else -QT5BASE_CONFIGURE_OPTS += -no-opengl -no-eglfs +QT5BASE_CONFIGURE_OPTS += -no-eglfs endif QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_OPENSSL),-openssl,-no-openssl)package/qt5/qt5declarative/Config.in +0
-1@@ -3,7 +3,6 @@ config BR2_PACKAGE_QT5DECLARATIVE select BR2_PACKAGE_QT5XMLPATTERNS select BR2_PACKAGE_QT5BASE select BR2_PACKAGE_QT5BASE_GUI - select BR2_PACKAGE_QT5BASE_EGLFS depends on BR2_PACKAGE_HAS_OPENGL_EGL depends on BR2_PACKAGE_HAS_OPENGL_ES depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
PATCH 1/2 qt5declarative: Reduce dependencies to GLes2 only
Quoted 1 line · On Tuesday 15 July 2014 11:26:06 Hadrien Boutteville wrote:
Hello Fatih,
Hi,
Quoted 6 lines
I'm mainlining some pending patches for the Google Summer of Code, and for this one I'm not really able to say if it is correct or not. It seems coherent for me but I'm not a Qt5 expert.
As Thomas said, since you are our Qt5 expert have you some comments on this patch?
Sorry for the late reply. Totally forgot this mail.
Desktop opengl and opengles2 implementations can be available at the same time. For -opengl option, we should allow the user to select the api. Each implementation option must depend on only the related library (_HAS_LIBGL for desktop and _HAS_LIBGLES for es2).
_QT5BASE_EGLFS must only depend on _HAS_LIBEGL. If selected, "-eglfs" must be passed.
At this time, Qt5OpenGL library is installed if _QT5BASE_EGLFS is selected. This must be changed, too. It should be installed to target, if (_HAS_LIBGL || _HAS_LIBGLES).
I will prepare a patch to fix all these issues.
Regards,
Fatih
PATCH 1/2 qt5declarative: Reduce dependencies to GLes2 only
Quoted 5 lines · On Tuesday 15 July 2014 17:03:27 Fatih A??c? wrote:
Quoted 1 line · On Tuesday 15 July 2014 11:26:06 Hadrien Boutteville wrote:
Hello Fatih,
Hi,
Quoted 8 lines
Quoted 6 lines
I'm mainlining some pending patches for the Google Summer of Code, and for this one I'm not really able to say if it is correct or not. It seems coherent for me but I'm not a Qt5 expert.
As Thomas said, since you are our Qt5 expert have you some comments on this patch?
Sorry for the late reply. Totally forgot this mail.
... and I totally forgot I sent it.
I initially sent it to Marco Trapanese in order to help him (may be I should have send it privately in order to not appear in Patchwork?).
Some work (as Fatih describe below) is necessary before it could be mainlined.
Quoted 11 lines
Desktop opengl and opengles2 implementations can be available at the same time. For -opengl option, we should allow the user to select the api. Each implementation option must depend on only the related library (
_HAS_LIBGLfor desktop and_HAS_LIBGLESfor es2).
_QT5BASE_EGLFSmust only depend on_HAS_LIBEGL. If selected, "-eglfs" must be passed.At this time, Qt5OpenGL library is installed if
_QT5BASE_EGLFSis selected. This must be changed, too. It should be installed to target, if (_HAS_LIBGL||_HAS_LIBGLES).
--
J?r?me Pouiller
PATCH 1/2 qt5declarative: Reduce dependencies to GLes2 only
Dear J?r?me Pouiller,
Quoted 4 lines · J?r?me Pouiller
I initially sent it to Marco Trapanese in order to help him (may be I should have send it privately in order to not appear in Patchwork?).
Some work (as Fatih describe below) is necessary before it could be mainlined.
In this case, you're definitely welcome to send the patch to the mailing list, but then mention in the commit log that the patch is not ready for mainline, so that we now what's the status of the patch.
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 2/2 Add supporit for Vivante xdriver
In reply to Jérôme Pouiller--- package/x11r7/Config.in | 1 + package/x11r7/xdriver_xf86-video-imx-viv/Config.in | 22 ++++++ ...mx-viv-001-Register-autotools-subprojects.patch | 31 +++++++++ ...driver_xf86-video-imx-viv-002-Fix-compile.patch | 80 ++++++++++++++++++++++ .../xdriver_xf86-video-imx-viv.mk | 17 +++++ 5 files changed, 151 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-001-Register-autotools-subprojects.patch create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-002-Fix-compile.patch create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk
package/x11r7/Config.in +1 -0
@@ -160,6 +160,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 +22 -0
@@ -0,0 +1,22 @@ +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 + 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"). +
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-001-Register-autotools-subprojects.patch new file +31 -0
@@ -0,0 +1,31 @@ +--- /dev/null 2013-10-21 17:17:33.000000000 +0000 ++++ b/configure.ac 2014-03-21 08:18:39.677026318 +0000 +@@ -0,0 +1,5 @@ ++AC_INIT([arm], [1.0]) ++AM_INIT_AUTOMAKE([foreign]) ++AC_CONFIG_FILES([Makefile]) ++AC_CONFIG_SUBDIRS([EXA DRI_1.10.4]) ++AC_OUTPUT +--- /dev/null 2013-10-21 17:17:33.000000000 +0000 ++++ b/Makefile.am 2014-03-21 08:18:13.436901930 +0000 +@@ -0,0 +1,1 @@ ++SUBDIRS = EXA DRI_1.10.4 +--- /dev/null 2013-10-21 17:17:33.000000000 +0000 ++++ b/DRI_1.10.4/m4/.empty 2014-03-21 08:18:13.436901930 +0000 +@@ -0,0 +1,1 @@ ++empty +--- /dev/null 2013-10-21 17:17:33.000000000 +0000 ++++ b/EXA/m4/.empty 2014-03-21 08:18:13.436901930 +0000 +@@ -0,0 +1,1 @@ ++empty +--- a/install.sh 2012-11-19 01:58:13.000000000 +0000 ++++ /dev/null 2013-10-21 17:17:33.000000000 +0000 +@@ -1,7 +0,0 @@ +-#!/bin/sh -e +- +-cd EXA +-make install +-cd ../DRI_1.10.4 +-make install +-cd .. +
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-002-Fix-compile.patch new file +80 -0
80 lines not on this page · raw message
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk new file +17 -0
@@ -0,0 +1,17 @@ +################################################################################ +# +# xdriver_xf86-video-imx-viv +# +################################################################################ + +# FIXME: Use $(FREESCALE_IMX_VERSION) +XDRIVER_XF86_VIDEO_IMX_VIV_VERSION = 1.1.0 +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 xlib_libpciaccess xproto_xf86driproto +XDRIVER_XF86_VIDEO_IMX_VIV_AUTORECONF = YES +XDRIVER_XF86_VIDEO_IMX_VIV_CONF_ENV += CFLAGS+=" -I../../DRI_1.10.4/src/ -I../../EXA/src/vivante_gal/" + +$(eval $(autotools-package)) +
Signature · 1 line
1.9.1
PATCH 2/2 Add supporit for Vivante xdriver
Dear J?r?me Pouiller,
There is a typo in the commit title, and we normally use the following commit title for package additions:
"<package name>: new package"
Quoted 18 lines · J?r?me Pouiller
package/x11r7/Config.in +1
-0@@ -160,6 +160,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.inpackage/x11r7/xdriver_xf86-video-imx-viv/Config.in new file +0
-0
package/x11r7/xdriver_xf86-video-imx-viv/Config.in line 4
Quoted 4 lines
package/x11r7/xdriver_xf86-video-imx-viv/Config.in new file +4
-0@@ -0,0 +1,22 @@ +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
I believe we could probably select BR2_PACKAGE_GPU_VIV_BIN_MX6Q here.
Quoted 5 lines
package/x11r7/xdriver_xf86-video-imx-viv/Config.in new file +5
-0+ select BR2_PACKAGE_XPROTO_XPROTO + select BR2_PACKAGE_XPROTO_XF86DRIPROTO + help + X.Org driver for iMX6 GPU (Vivante) +
package/x11r7/xdriver_xf86-video-imx-viv/Config.in line 19
Quoted 10 lines
package/x11r7/xdriver_xf86-video-imx-viv/Config.in new file +10
-0+ 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
to create
package/x11r7/xdriver_xf86-video-imx-viv/Config.in line 20
Quoted 1 line
package/x11r7/xdriver_xf86-video-imx-viv/Config.in new file +1
-0+ use this driver (else, Xorg will exit with an obscur message
before to use -> before using
else -> otherwise
obscur -> obscure
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-001-Register-autotools-subprojects.patch
Quoted 7 lines
package/x11r7/xdriver_xf86-video-imx-viv/Config.in new file +2
-0+ like "Segmentation fault at address 0xc"). +package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-001-Register-autotools-subprojects.patch new file +0
-0
All patches should have a description + Signed-off-by line.
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-002-Fix-compile.patch
Quoted 37 lines
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-001-Register-autotools-subprojects.patch new file +31
-0@@ -0,0 +1,31 @@ +--- /dev/null 2013-10-21 17:17:33.000000000 +0000 ++++ b/configure.ac 2014-03-21 08:18:39.677026318 +0000 +@@ -0,0 +1,5 @@ ++AC_INIT([arm], [1.0]) ++AM_INIT_AUTOMAKE([foreign]) ++AC_CONFIG_FILES([Makefile]) ++AC_CONFIG_SUBDIRS([EXA DRI_1.10.4]) ++AC_OUTPUT +--- /dev/null 2013-10-21 17:17:33.000000000 +0000 ++++ b/Makefile.am 2014-03-21 08:18:13.436901930 +0000 +@@ -0,0 +1,1 @@ ++SUBDIRS = EXA DRI_1.10.4 +--- /dev/null 2013-10-21 17:17:33.000000000 +0000 ++++ b/DRI_1.10.4/m4/.empty 2014-03-21 08:18:13.436901930 +0000 +@@ -0,0 +1,1 @@ ++empty +--- /dev/null 2013-10-21 17:17:33.000000000 +0000 ++++ b/EXA/m4/.empty 2014-03-21 08:18:13.436901930 +0000 +@@ -0,0 +1,1 @@ ++empty +--- a/install.sh 2012-11-19 01:58:13.000000000 +0000 ++++ /dev/null 2013-10-21 17:17:33.000000000 +0000 +@@ -1,7 +0,0 @@ +-#!/bin/sh -e +- +-cd EXA +-make install +-cd ../DRI_1.10.4 +-make install +-cd .. +package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-002-Fix-compile.patch new file +0
-0
Ditto.
Quoted 87 lines
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-002-Fix-compile.patch new file +80
-0@@ -0,0 +1,80 @@ +--- a/DRI_1.10.4/src/dri.c 2012-11-19 01:58:13.000000000 +0000 ++++ b/DRI_1.10.4/src/dri.c 2014-03-22 09:11:54.257608982 +0000 +@@ -70,7 +70,6 @@ + #include "mipointer.h" + #include "xf86_OSproc.h" + #include "inputstr.h" +-#include "xf86VGAarbiter.h" + #include "pixmapstr.h" + #include "pixmap.h" + #include "vivante_priv.h" +--- a/DRI_1.10.4/src/xf86dri.c 2012-11-19 01:58:13.000000000 +0000 ++++ b/DRI_1.10.4/src/xf86dri.c 2014-03-22 09:12:42.985839910 +0000 +@@ -89,7 +89,6 @@ + ) + { + xXF86DRIQueryVersionReply rep; +- register int n; + + REQUEST_SIZE_MATCH(xXF86DRIQueryVersionReq); + rep.type = X_Reply; +@@ -99,11 +98,11 @@ + rep.minorVersion = SERVER_XF86DRI_MINOR_VERSION; + rep.patchVersion = SERVER_XF86DRI_PATCH_VERSION; + if (client->swapped) { +- swaps(&rep.sequenceNumber, n); +- swapl(&rep.length, n); +- swaps(&rep.majorVersion, n); +- swaps(&rep.minorVersion, n); +- swapl(&rep.patchVersion, n); ++ swaps(&rep.sequenceNumber); ++ swapl(&rep.length); ++ swaps(&rep.majorVersion); ++ swaps(&rep.minorVersion); ++ swapl(&rep.patchVersion); + } + WriteToClient(client, sizeof(xXF86DRIQueryVersionReply), (char *)&rep); + return Success; +@@ -116,7 +115,6 @@ + { + xXF86DRIQueryDirectRenderingCapableReply rep; + Bool isCapable; +- register int n; + + REQUEST(xXF86DRIQueryDirectRenderingCapableReq); + REQUEST_SIZE_MATCH(xXF86DRIQueryDirectRenderingCapableReq); +@@ -139,8 +137,8 @@ + rep.isCapable = 0; + + if (client->swapped) { +- swaps(&rep.sequenceNumber, n); +- swapl(&rep.length, n); ++ swaps(&rep.sequenceNumber); ++ swapl(&rep.length); + } + + WriteToClient(client, +@@ -598,9 +596,8 @@ + register ClientPtr client + ) + { +- register int n; + REQUEST(xXF86DRIQueryVersionReq); +- swaps(&stuff->length, n); ++ swaps(&stuff->length); + return ProcXF86DRIQueryVersion(client); + } + +@@ -609,10 +606,9 @@ + register ClientPtr client + ) + { +- register int n; + REQUEST(xXF86DRIQueryDirectRenderingCapableReq); +- swaps(&stuff->length, n); +- swapl(&stuff->screen, n); ++ swaps(&stuff->length); ++ swapl(&stuff->screen); + return ProcXF86DRIQueryDirectRenderingCapable(client); + } +package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk new file +0
-0
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk line 7
Quoted 7 lines
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk new file +7
-0@@ -0,0 +1,17 @@ +################################################################################ +# +# xdriver_xf86-video-imx-viv +# +################################################################################ + +# FIXME: Use $(FREESCALE_IMX_VERSION)
Please don't leave FIXMEs in the code: implement them :)
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk line 12
Quoted 5 lines
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk new file +5
-0+XDRIVER_XF86_VIDEO_IMX_VIV_VERSION = 1.1.0 +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 xlib_libpciaccess xproto_xf86driproto
Here you depend on xlib_libpciaccess, but this dependency is not expressed in your Config.in file. Also, xlib_libpciaccess depends on largefile support, so you should propagate this dependency to your package when selecting xlib_libpciaccess.
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk line 14
Quoted 2 lines
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk new file +2
-0+XDRIVER_XF86_VIDEO_IMX_VIV_AUTORECONF = YES +XDRIVER_XF86_VIDEO_IMX_VIV_CONF_ENV += CFLAGS+=" -I../../DRI_1.10.4/src/ -I../../EXA/src/vivante_gal/"
This should be:
XDRIVER_XF86_VIDEO_IMX_VIV_CONF_ENV = \ CFLAGS="$(TARGET_CFLAGS) -I../../DRI_1.10.4/src/ -I../../EXA/src/vivante_gal/"
Could you fix these issues and resubmit an updated patch?
Thanks a lot!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 2/2 Add supporit for Vivante xdriver
In reply to Jérôme PouillerDear J?r?me Pouiller,
Quoted 12 lines · J?r?me Pouiller
Signed-off-by J?r?me Pouiller <[email protected]>--- package/x11r7/Config.in | 1 + package/x11r7/xdriver_xf86-video-imx-viv/Config.in | 22 ++++++ ...mx-viv-001-Register-autotools-subprojects.patch | 31 +++++++++ ...driver_xf86-video-imx-viv-002-Fix-compile.patch | 80 ++++++++++++++++++++++ .../xdriver_xf86-video-imx-viv.mk | 17 +++++ 5 files changed, 151 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-001-Register-autotools-subprojects.patch create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-002-Fix-compile.patch create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk
I did a review of this patch on April, 20th, making several comments and asking for a new version of the patch. Are you still interested in getting this merged into Buildroot?
I believe this would be a useful addition, but this patch has been sent 5 months ago, and never sent an updated version. Could you let us know what is the status of the patch, so that we can update our patch tracking system?
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 2/2 Add supporit for Vivante xdriver
Quoted 20 lines · On Tuesday 16 September 2014 16:46:55 Thomas Petazzoni wrote:
Dear J?r?me Pouiller,
Quoted 12 lines · J?r?me Pouiller
Signed-off-by J?r?me Pouiller <[email protected]>---
package/x11r7/Config.in | 1 + package/x11r7/xdriver_xf86-video-imx-viv/Config.in | 22 ++++++ ...mx-viv-001-Register-autotools-subprojects.patch | 31 +++++++++ ...driver_xf86-video-imx-viv-002-Fix-compile.patch | 80 ++++++++++++++++++++++ .../xdriver_xf86-video-imx-viv.mk | 17 +++++ 5 files changed, 151 insertions(+) create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/Config.in create mode 100644Quoted 5 lines
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-001- Register-autotools-subprojects.patch create mode 100644 package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-002- Fix-compile.patch create mode 100644
package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk
Quoted 8 lines
I did a review of this patch on April, 20th, making several comments and asking for a new version of the patch. Are you still interested in getting this merged into Buildroot?
I believe this would be a useful addition, but this patch has been sent 5 months ago, and never sent an updated version. Could you let us know what is the status of the patch, so that we can update our patch tracking system?
Initially, I sent this patch to answer to Marco's question (I should add in a comment that it was not destined to upstream).
I know it would be a nice addition (I have also imx5 support in stock). However, this package rely on specific versions of xorg, libdrm, kernel, etc... So, it was always broken.
Freescale developments seems to be stabilized now. I may try to respin this patch. In any case, new version will be completely different than this one.
Signature · 3 lines
J?r?me Pouiller, Sysmic Embedded Linux specialist http://www.sysmic.fr
PATCH 2/2 Add supporit for Vivante xdriver
Dear J?r?me Pouiller,
Quoted 9 lines · J?r?me Pouiller
Initially, I sent this patch to answer to Marco's question (I should add in a comment that it was not destined to upstream).
I know it would be a nice addition (I have also imx5 support in stock). However, this package rely on specific versions of xorg, libdrm, kernel, etc... So, it was always broken.
Freescale developments seems to be stabilized now. I may try to respin this patch. In any case, new version will be completely different than this one.
Thanks for the update. So I've marked this patch as "Deferred" in patchwork, waiting for your new version.
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
Il 01/04/2014 18:16, J?r?me Pouiller ha scritto:
Quoted 1 line
You may want to test following patches:
I will test them as soon as possible!
Quoted 6 lines
[PATCH 1/2] qt5declarative: Reduce dependencies to GLes2 only [PATCH 2/2] Add supporit for Vivante xdriver
They are not yet ready for mainlining, but they should work with imx6 and Qt5 (I have quickly tested them with applications without OpenGL).
I thank you very much!
Marco