Skip to contentSkip to conversation

qt5, eglfs and xcb

Buildroot New Marco Trapanese 5 participants 17 messages Mar 30, 2014 – Sep 16, 2014 Arm i.MX and Layerscape

lore
Share & tools
lore
#0 lore raw

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

#1 lore raw

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
#2 lore raw

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

#3 lore raw

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
#4 lore raw
In reply to Marco Trapanese

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).

#5 lore raw

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
index 618251e..b99733a 100644
@@ -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
index c5753b1..7f25999 100644
@@ -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
#6 lore raw

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]>

---
 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
index 618251e..b99733a 100644
@@ -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
index c5753b1..7f25999 100644
@@ -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
#7 lore raw

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]>

---
 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
index 618251e..b99733a 100644
@@ -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
index c5753b1..7f25999 100644
@@ -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
#8 lore raw

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

#9 lore raw

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_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).

--
J?r?me Pouiller

#10 lore raw

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
#11 lore raw

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
index 8685ca1..73dcc45 100644
@@ -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
new file mode 100644
index 0000000..3369d79
@@ -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
new file mode 100644
index 0000000..12fe96c
@@ -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
new file mode 100644
index 0000000..9fd24bc
@@ -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
#12 lore raw

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
index 8685ca1..73dcc45 100644
@@ -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 +0 -0
new file mode 100644
index 0000000..3369d79

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
new file mode 100644
index 0000000..12fe96c

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
new file mode 100644
index 0000000..1b13d4f

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
new file mode 100644
index 0000000..9fd24bc

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
#13 lore raw

PATCH 2/2 Add supporit for Vivante xdriver

In reply to Jérôme Pouiller

Dear J?r?me Pouiller,

Quoted 12 lines · 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

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
#14 lore raw

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

---

 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
Quoted 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
#15 lore raw

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
#16 lore raw
In reply to Jérôme Pouiller

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