[oe] [meta-qt5][PATCH V2 2/4] qtwayland: Fix build for raspberryPi

Khem Raj raj.khem at gmail.com
Tue Aug 25 08:04:56 UTC 2015


> On Aug 25, 2015, at 12:00 AM, Andreas Müller <schnitzeltony at googlemail.com> wrote:
> 
> On Mon, Aug 24, 2015 at 7:43 PM, Khem Raj <raj.khem at gmail.com> wrote:
>> rpi uses bcom EGL implementation and it has descrepency when it comes to
>> defining 'EGLNativePixmapType', lets typecast the ussage of this type to
>> avoid this sort of errors.
>> 
>> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> Upstream-Status?

Pending

>> ---
>> ...egl-Typecast-proper-EGLNativeWindowType-t.patch | 56 ++++++++++++++++++++++
>> recipes-qt/qt5/qtwayland_git.bb                    |  1 +
>> 2 files changed, 57 insertions(+)
>> create mode 100644 recipes-qt/qt5/qtwayland/0001-xcomposite-egl-Typecast-proper-EGLNativeWindowType-t.patch
>> 
>> diff --git a/recipes-qt/qt5/qtwayland/0001-xcomposite-egl-Typecast-proper-EGLNativeWindowType-t.patch b/recipes-qt/qt5/qtwayland/0001-xcomposite-egl-Typecast-proper-EGLNativeWindowType-t.patch
>> new file mode 100644
>> index 0000000..2e1f2c4
>> --- /dev/null
>> +++ b/recipes-qt/qt5/qtwayland/0001-xcomposite-egl-Typecast-proper-EGLNativeWindowType-t.patch
>> @@ -0,0 +1,56 @@
>> +From 91746518a0cd56d7b0bfda69ba6cf743bf051fb9 Mon Sep 17 00:00:00 2001
>> +From: Khem Raj <raj.khem at gmail.com>
>> +Date: Sun, 23 Aug 2015 17:33:25 -0700
>> +Subject: [PATCH] xcomposite-egl: Typecast proper EGLNativeWindowType to
>> + eglCreateWindowSurface params
>> +
>> +This surfaces on rpi which has slightly different definition of
>> +EGLNativeWindowType
>> +
>> +Fixes errors like
>> +
>> +/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/work/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/qtwayland/5.4.2+gitAUTOINC+182488129c-r0/git/src/hardwareintegration/compositor/xcomposite-egl/xcompositeeglintegration.cpp:117:26: error: no matching function for call
>> +      to 'eglCreatePixmapSurface'
>> +    EGLSurface surface = eglCreatePixmapSurface(mEglDisplay,config,pixmap,attribList.constData());
>> +                         ^~~~~~~~~~~~~~~~~~~~~~
>> +/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/sysroots/raspberrypi2/usr/include/EGL/egl.h:270:31: note: candidate function not viable: no known conversion from 'Pixmap' (aka 'unsigned long') to 'EGLNativePixmapType' (aka 'void *') for 3rd argument; take the
>> +      address of the argument with &
>> +EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config,
>> +                              ^
>> +1 error generated.
>> +
>> +Signed-off-by: Khem Raj <raj.khem at gmail.com>
>> +---
>> + .../client/xcomposite-egl/qwaylandxcompositeeglwindow.cpp               | 2 +-
>> + .../compositor/xcomposite-egl/xcompositeeglintegration.cpp              | 2 +-
>> + 2 files changed, 2 insertions(+), 2 deletions(-)
>> +
>> +diff --git a/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.cpp b/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.cpp
>> +index 01d6324..e268ede 100644
>> +--- a/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.cpp
>> ++++ b/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.cpp
>> +@@ -122,7 +122,7 @@ void QWaylandXCompositeEGLWindow::createEglSurface()
>> +     XCompositeRedirectWindow(m_glxIntegration->xDisplay(), m_xWindow, CompositeRedirectManual);
>> +     XMapWindow(m_glxIntegration->xDisplay(), m_xWindow);
>> +
>> +-    m_surface = eglCreateWindowSurface(m_glxIntegration->eglDisplay(), m_config, m_xWindow,0);
>> ++    m_surface = eglCreateWindowSurface(m_glxIntegration->eglDisplay(), m_config, (EGLNativeWindowType)m_xWindow,0);
>> +     if (m_surface == EGL_NO_SURFACE) {
>> +         qFatal("Could not make eglsurface");
>> +     }
>> +diff --git a/src/hardwareintegration/compositor/xcomposite-egl/xcompositeeglintegration.cpp b/src/hardwareintegration/compositor/xcomposite-egl/xcompositeeglintegration.cpp
>> +index 2401d67..61664b5 100644
>> +--- a/src/hardwareintegration/compositor/xcomposite-egl/xcompositeeglintegration.cpp
>> ++++ b/src/hardwareintegration/compositor/xcomposite-egl/xcompositeeglintegration.cpp
>> +@@ -114,7 +114,7 @@ void XCompositeEglClientBufferIntegration::bindTextureToBuffer(struct ::wl_resou
>> +     attribList.append(EGL_TEXTURE_2D);
>> +     attribList.append(EGL_NONE);
>> +
>> +-    EGLSurface surface = eglCreatePixmapSurface(mEglDisplay,config,pixmap,attribList.constData());
>> ++    EGLSurface surface = eglCreatePixmapSurface(mEglDisplay,config,(EGLNativeWindowType)pixmap,attribList.constData());
> ^ When looking at [1] this does not look correct to me.
> 
> Generally I think errors caused by a specific egl implementation
> should not be fixed in packets using egl - and yes I know we have
> these hacks in qt.
> 
> [1] https://www.khronos.org/registry/egl/sdk/docs/man/html/eglCreatePixmapSurface.xhtml
> 
> Andreas
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 204 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20150825/f101d905/attachment-0002.sig>


More information about the Openembedded-devel mailing list