Imagination PowerVR SDK Blog

Question for PowerVR QScreen Driver in Qt 4.5


#1

When you build the qt4.5 with following script:


./configure -qvfb -platform qws/linux-x86-g++ -opengl es2 -host-big-endian -little-endian


-qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb


you will get information as follow:





The OpenGL ES 2.0 functionality test failed!


You might need to modify the include and library search paths by editing


QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in


{Your Own Path}/qt-embedded-linux-commercial-src-4.5.0-tp1/mkspecs/qws/linux-x86-g++.





From Technology Preview - Qt 4.5, we can get the new qt4.5 for test and valuation.With the README in qt-embedded-linux-commercial-src-4.5.0-tp1srcpluginsgfxdriverspowervr we get the information:




…**************************************************************************** IMPORTANT: To build the QScreen plugin and the WSEGL library it depends ** on, the pvr2d.h, wsegl.h headers for your platform are required. These ** can be obtained either through your platform provider or directly from ** Imagination Technologies.                                               ****************************************************************************…




I want to kown where I can get these headers. Thanks so much!













Is there anybody encounter the same problem as me?xkdzy20022008-10-23 06:58:20

#2

Hi,

 

Please, ask the platform manufacturer for these files. We are not allowed to deliver drivers for our customer's platforms.

 

Best regards.

 

Carlos.

#3

I’m having trouble getting these files from our manufacturer.  Does Imagination Technologies place any legal restrictions on the manufacturer regarding distribution of these two header files?


#4

Hello,

 

These are internal files which are part of the DDK license so, yes, there are some legal limitations. Our customers have the right to distribute them if they think it is necessary (and under license) but this does not seem to be the case.

 

Best regards.

 

Carlos.

 

#5

Hello,
I have the same problem; need that header files…Do you  mean  that; if freescale thinks that “you dont need to use hardware acceleration with qt applications”,  then they wont distribute the headers. Is that the case or i misunderstand…?

Regards…  


#6

I guess Freescale are technically correct, you don’t need to use hardware acceleration with Qt - but I guess it is a nice thing to have, especially when there’s a driver ready to go.





Did you mention the driver to your Freescale contact? If so, what did they say?



#7

Yes, i ve contacted to freescale about the driver. They told me that they sent my request to the factory and waiting for reply…


#8

The followings can act as an example, what you need to do is to modify them as your configuration. 

QMAKE_INCDIR_OPENGL     =/home/OpenGLES1/Include/ 
                         /home/OpenGLES1/LinuxOMAP3/Include/
QMAKE_LIBDIR_OPENGL     =/home/OGLES2/SDKPackage/Builds/OGLES2/LinuxOMAP3/Lib/

QMAKE_LIBS_OPENGL       = $$QMAKE_LIBDIR_OPENGLlibOpenVGU.so
$$QMAKE_LIBDIR_OPENGLlibsrv_um.so
$$QMAKE_LIBDIR_OPENGLlibEGL.so
$$QMAKE_LIBDIR_OPENGLlibpvr2d.so
 $$QMAKE_LIBDIR_OPENGLlibGLES_CM.so
 $$QMAKE_LIBDIR_OPENGLlibpvrPVR2D_BLITWSEGL.so
 $$QMAKE_LIBDIR_OPENGLlibGLESv2.so
 $$QMAKE_LIBDIR_OPENGLlibpvrPVR2D_FLIPWSEGL.so
$$QMAKE_LIBDIR_OPENGLlibglslcompiler.so
$$QMAKE_LIBDIR_OPENGLlibpvrPVR2D_FRONTWSEGL.so
$$QMAKE_LIBDIR_OPENGLlibIMGegl.so
#libpvrPVR2D_X11WSEGL.so
$$QMAKE_LIBDIR_OPENGLlibOpenVG.so
$$QMAKE_LIBDIR_OPENGLlibpvrscope.so

Though QT with OPGL can be built successfully, some QT OPGL examples can not be built because some stardard OPGL APIs seems not implemented in this SDK so far.

(I use the SDK for OMAP3).

#9

It looks like you’re building Qt for X11 using ImgTec’s existing X11WSEGL library, not Qt for Embedded Linux. Can you please confirm this?





If it is Qt for Embedded Linux have have built then the pvr2d.h & wsegl.h headers must be included in the SDK you have obtained.



#10

Thanks for your reply!


Does it mean that we also need to add -plugin-gfx-pvr option when build QTE4.5 with OPENGL-ES support? And if we want enable OPENGL-ES in QTE4.4.3, any extra modifications?

#11

Yes, you must pass -plugin-gfx-powervr to configure.





You can’t take the QScreen driver from 4.5.0 and use it with 4.4.3 - The internals of the QtOpenGL module have changed a lot with 4.5.0.


#12

I got pvr2d.h. But it is so hard to get wsegl.h. I have used egl.h to act as wsegl.h but so many build errores because some types are not defined.I think these type definitions are in wsegl.h.I hope some one can give me this file.:slight_smile:


#13

Hello,
I've received PowerVR SDK as a part of the software delivered by freescale when we've bot few Mplus5121 boards. Freescale's answer was that the two requested files are a part of the DDK so they are not made buplic for the moment.
We need the files for benchmarking purposes, Is there anyone able to give a clean answer about this question ? The copyright of using OpenGLES (OpenVG, WSEGL and all the provided PowerVR liraries as a part of the SDK) isnt clean. If you provide WSEGL and pvr2d libraries why can't you provide the header files too ? IMHO, providing the files is an excellent way to pomote PowerVR chips wich works just fine out of the box with QT.

(Can anyone update this post if some of the poster got new informations?)
Best regards.

gpgnews2009-03-02 18:08:29

#14

Has anybody succeeded enabling OPENGL-ES in QT4.5?


#15

After some considerable effort, the required pvr2d.h & wsegl.h will be included in the next patch release of Qt, 4.5.2. Thanks go to ImgTec for helping out.


#16

Good to know this. We are also working towards including the same in the OMAP35x EVM Graphics SDK releases, most likely happening end of May.


#17

The includes files pvr2d.h and wsegl.h are availables at:

http://qt.gitorious.org/qt/qt/trees/master/src/3rdparty/powervr

#18

Hi all,

I’m trying to build QT-embedded 4.5.1 for the i.MX31 platform, in order to exploit the PowerVR MBX acceleration.

I run configure with the following command line:

./configure -embedded arm -qt-mouse-tslib -plugin-gfx-powervr -opengl es1 -verbose

and I modified the QMAKE_INCDIR_OPENGL,  QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL to point to the files provided by the PowerVR OpenGL ES SDK ver. 2.01.

The configuration fails with the following message:
OpenGL ES 1.x auto-detection… ()
arm-linux-g++ -c -pipe -O2 -Wall -W  -I…/…/…/mkspecs/qws/linux-arm-g++ -I. -I. -I/home/piero/work/qong-nobk/tslib-1.0/src -I/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include -I/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/LinuxMX31/Include -o opengles1.o opengles1.cpp
In file included from opengles1.cpp:2:
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:185: error: expected initializer before ‘eglGetError’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:187: error: expected initializer before ‘eglGetDisplay’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:188: error: expected initializer before ‘eglInitialize’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:189: error: expected initializer before ‘eglTerminate’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:191: error: expected initializer before ‘eglQueryString’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:193: error: expected initializer before ‘eglGetConfigs’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:194: error: expected initializer before ‘eglChooseConfig’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:195: error: expected initializer before ‘eglGetConfigAttrib’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:197: error: expected initializer before ‘eglCreateWindowSurface’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:198: error: expected initializer before ‘eglCreatePbufferSurface’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:199: error: expected initializer before ‘eglCreatePixmapSurface’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:200: error: expected initializer before ‘eglDestroySurface’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:201: error: expected initializer before ‘eglQuerySurface’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:203: error: expected initializer before ‘eglBindAPI’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:204: error: expected initializer before ‘eglQueryAPI’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:206: error: expected initializer before ‘eglWaitClient’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:208: error: expected initializer before ‘eglReleaseThread’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:210: error: expected initializer before ‘eglCreatePbufferFromClientBuffer’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:212: error: expected initializer before ‘eglSurfaceAttrib’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:213: error: expected initializer before ‘eglBindTexImage’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:214: error: expected initializer before ‘eglReleaseTexImage’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:216: error: expected initializer before ‘eglSwapInterval’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:218: error: expected initializer before ‘eglCreateContext’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:219: error: expected initializer before ‘eglDestroyContext’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:220: error: expected initializer before ‘eglMakeCurrent’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:222: error: expected initializer before ‘eglGetCurrentContext’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:223: error: expected initializer before ‘eglGetCurrentSurface’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:224: error: expected initializer before ‘eglGetCurrentDisplay’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:225: error: expected initializer before ‘eglQueryContext’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:227: error: expected initializer before ‘eglWaitGL’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:228: error: expected initializer before ‘eglWaitNative’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:229: error: expected initializer before ‘eglSwapBuffers’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:230: error: expected initializer before ‘eglCopyBuffers’
/var/home-shared/devel/freescale/mx31/linux/mbx/SDKPackage_2.01/Builds/OGLES/Include/GLES/egl.h:232: error: expected `)’ before 'eglGetProcAddress’
opengles1.cpp: In function ‘int main(int, char**)’:
opengles1.cpp:7: error: ‘eglInitialize’ was not declared in this scope
make: *** [opengles1.o] Error 1
OpenGL ES 1.x disabled.
The OpenGL ES 1.x functionality test failed!

Could someone tell me what is the cause of this issue? Am I using a wrong egl.h header file?

Thanks in advance.

Regards,

Piero



#19

I can built the libs of opengles for QT4.5.1 after I download the pvr2d.h,WSEGL.h. But for the opengl-es demo:hello_gles, it can not be built successfully. I used the opengl es2 option to build QT4.5.1. Is hello_gles written with OPENGL-es1’ APIS?


#20

Hi all,

I solved the problem: Freescale provided me with the correct header files.

Regards,

Piero