I am facing the problem which I noticed has been faced by some other but haven't seen a resolution in any of the forums yet.
1) I am using a BeagleBoard xM running Ubuntu 11.04 with X11. I have installed Qt 4.8/X11 compiled with OpenGL ES 2.0 support on the BeagleBoard.
2) Running a Qt application (Qt 4.8) which uses QGraphicsView with viewport(QGLWidget(QGLFormat(QGL::SampleBuffers))) so that QGraphicsView uses the Beagleboard's SGX OpenGL PowerVR drivers to render scenes.
3) The hellogl_es2 Qt test application run OK (~60fps). The SGX demo apps (EvilSkull, CoverFlow etc.) also run OK.
4) However, when I run my application, I get the following errors. If I don't set the viewport of QGraphicsView to be a QGLWidget then there are no errors so clearly the issue is between Qt's QGraphicsView and the TI SGX PowerVR driver. Also when I run the exact same application compiled on Qt 4.8 for a x86 desktop it works without a problem.
QEglContext::makeCurrent( 0x161fce0 ): "Bad native window (0x300B)"
QGLShader::QGLShader: 'context' must be the current context or sharing with it.
Vertex shader for simpleShaderProg (MainVertexShader & PositionOnlyVertexShader) failed to compile
QGLShader::QGLShader: 'context' must be the current context or sharing with it.
Fragment shader for simpleShaderProg (MainFragmentShader & ShockingPinkSrcFragmentShader) failed to compile
QGLShaderProgram: could not create shader program
Errors linking simple shader: ""
QGLShader::QGLShader: 'context' must be the current context or sharing with it.
Vertex shader for blitShaderProg (MainWithTexCoordsVertexShader & UntransformedPositionVertexShader) failed to compile
QGLShader::QGLShader: 'context' must be the current context or sharing with it.
Fragment shader for blitShaderProg (MainFragmentShader & ImageSrcFragmentShader) failed to compile
QGLShaderProgram: could not create shader program
Errors linking blit shader: ""
QPixmap::scaled: Pixmap is a null pixmap
QPixmap::scaled: Pixmap is a null pixmap
QPixmap::scaled: Pixmap is a null pixmap
QPixmap::scaled: Pixmap is a null pixmap
...
...
(…loops infinitely…)
5) The output of sgxperf_check.sh is as follows:
root@omap:/home/ubuntu# ./sgxperf_check.sh
WSEGL settings
[default]
WindowSystem=libpvrPVR2D_DRIWSEGL.so
#WindowSystem=libpvrPVR2D_FLIPWSEGL.so
------
ARM CPU information
Processor : ARMv7 Processor rev 2 (v7l)
BogoMIPS : 687.96
Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x3
CPU part : 0xc08
CPU revision : 2
Hardware : OMAP3 Beagle Board
Revision : 0020
Serial : 0000000000000000
------
SGX driver information
Version 1.6.16.3977 (release) /home/tegra/Desktop/natty/stable-kernel/KERNEL
System Version String: SGX revision = 1.2.5
------
Framebuffer settings
mode "900x540-69"
# D: 36.731 MHz, H: 38.063 kHz, V: 69.206 Hz
geometry 900 540 900 540 16
timings 27225 1 60 3 4 4 3
rgba 5/11,6/5,5/0,0/0
endmode
Frame buffer device information:
Name : omapfb
Address : 0x9ec00000
Size : 8388608
Type : PACKED PIXELS
Visual : TRUECOLOR
XPanStep : 1
YPanStep : 1
YWrapStep : 0
LineLength : 1800
Accelerator : No
------
Rotation settings
1
------
Kernel Module information
Module Size Used by
bufferclass_ti 5757 0
omaplfb 8293 0
pvrsrvkm 149614 2 bufferclass_ti,omaplfb
smsc95xx 11606 0
rtc_twl 4426 0
rtc_ds1307 6410 0
rtc_core 18538 2 rtc_twl,rtc_ds1307
joydev 8810 0
twl4030_madc_hwmon 2554 0
gpio_keys 5688 0
------
Boot settings
omapfb.vram=0:8M,1:4M,2:2M console=ttyO2,115200n8 console=tty0 root=/dev/mmcblk0p2 rootwait ro vram=20MB omapfb.mode=540x900-16@30 fixrtc buddy= mpurate=800 omapfb.rotate=1
------
Linux Kernel version
Linux omap 2.6.39.1-x2 #113 Mon Oct 10 17:57:07 PDT 2011 armv7l armv7l armv7l GNU/Linux
Any help is much appreciated!
Thanks!
-Raja