[meta-freescale] Problem with shader compiler
Thomas Senyk
thomas.senyk at pelagicore.com
Thu Jan 17 06:37:46 PST 2013
On Thu, January 17, 2013 13:49:46 Erik Botö wrote:
> Hi,
>
> I'm using meta-fsl-arm with an imx6 sabrelite board, kernel 3.0.35
> + gpu-viv-bin-mx6q_12.09.01.
>
> I use the sysroot from poky to build Qt5, but then run in to some problems
> with shaders. They seem to stem from the fact that the shader compiler
> doesn't support #define and/or #ifdef.
>
> Example:
>
> QOpenGLShader::compile(Fragment): (5:0) : error : syntax error
>
> *** Problematic Fragment shader source code ***
> #ifndef GL_FRAGMENT_PRECISION_HIGH
> #define highp mediump
> #endif
> uniform sampler2D texture;
> varying highp vec2 textureCoord;
> void main() {
> gl_FragColor = texture2D(texture, textureCoord).bgra;
> }
>
> ***
>
> It can be manually fixed by exchanging all occurences of highp with
> mediump, instead of relying on the preprocessor macros. The shader compiler
> should support this, right?
Addition bug-report information:
A error looks like that:
Warning: QOpenGLShader::compile(Fragment): (4:0) : error : syntax error
Warning: *** Problematic Fragment shader source code ***
Warning: #ifndef GL_FRAGMENT_PRECISION_HIGH
#define highp mediump
#endif
varying highp vec2 qt_TexCoord;
uniform sampler2D qt_Texture;
void main() {
gl_FragColor = texture2D(qt_Texture, qt_TexCoord);
}
If one removes the the 3 "#ifndef ... #endif" lines it works.
Maybe the GLSL-preprocessor is broken?
Greets
Thomas
>
> Best Regards,
> Erik Botö
More information about the meta-freescale
mailing list