Re: GLS language errors (Was: Internal error: Error loading stock shader FillRoundRect_LinearGradient,_PAD on Vivante ARM)

2016-03-02 Thread Chien Yang

Hi Maurice,

Can you please file a JIRA on this issue?

Thanks,
- Chien

On 3/1/16, 11:45 PM, Maurice wrote:


Jim,

A solution in line of that of Johan Vos [1] works. JavaFX can be run 
and doesn't crash on startup when compiling the shaders. I think they 
should be taken into account for at least JavaFX 9, as it reduces a 
very serious bug to a possible optimization.


Maurice.

[1] 
https://bitbucket.org/javafxports/8u60-rt/commits/595633bbaae36f98d85d47d276294442ea43488c


Op 02-03-16 om 02:22 schreef Jim Graham:
The thing about this use of pixcoord is that the same information can 
be supplied much more efficiently as a pair of texture coordinates.  
The value of pixcoord ends up being a linear equation over the area 
of the primitive which is exactly what texture coordinate samples 
give you for free.


I believe some of the other gradient methods use that texture 
coordinate technique to avoid having to use pixcoord, but the issue 
is that we've hard-coded all of our VertexBuffer streams to have 
exactly 2 sets of texture coordinates and so you only get room to 
pass in so many values and these (i.e. this family of) shaders are 
already using those texture coordinates to pass in too many values to 
leave enough free for the gradient fractions.


This shader could be avoided, I believe, by rasterizing the shape 
into an alpha mask and using one of the alpha mask gradient shaders 
that doesn't rely on pixcoord.  In fact, in some embedded 
environments these shaders have so many computations per pixel that 
running the shape rasterizer on the CPU actually wins performance 
(and especially if you cache the alpha masks as some of our NGShape 
nodes do)...


...jim

On 3/1/16 9:10 AM, Maurice wrote:




Re: GLS language errors (Was: Internal error: Error loading stock shader FillRoundRect_LinearGradient,_PAD on Vivante ARM)

2016-03-01 Thread Maurice


Jim,

A solution in line of that of Johan Vos [1] works. JavaFX can be run and 
doesn't crash on startup when compiling the shaders. I think they should 
be taken into account for at least JavaFX 9, as it reduces a very 
serious bug to a possible optimization.


Maurice.

[1] 
https://bitbucket.org/javafxports/8u60-rt/commits/595633bbaae36f98d85d47d276294442ea43488c


Op 02-03-16 om 02:22 schreef Jim Graham:
The thing about this use of pixcoord is that the same information can 
be supplied much more efficiently as a pair of texture coordinates.  
The value of pixcoord ends up being a linear equation over the area of 
the primitive which is exactly what texture coordinate samples give 
you for free.


I believe some of the other gradient methods use that texture 
coordinate technique to avoid having to use pixcoord, but the issue is 
that we've hard-coded all of our VertexBuffer streams to have exactly 
2 sets of texture coordinates and so you only get room to pass in so 
many values and these (i.e. this family of) shaders are already using 
those texture coordinates to pass in too many values to leave enough 
free for the gradient fractions.


This shader could be avoided, I believe, by rasterizing the shape into 
an alpha mask and using one of the alpha mask gradient shaders that 
doesn't rely on pixcoord.  In fact, in some embedded environments 
these shaders have so many computations per pixel that running the 
shape rasterizer on the CPU actually wins performance (and especially 
if you cache the alpha masks as some of our NGShape nodes do)...


...jim

On 3/1/16 9:10 AM, Maurice wrote:




Re: GLS language errors (Was: Internal error: Error loading stock shader FillRoundRect_LinearGradient,_PAD on Vivante ARM)

2016-03-01 Thread Jim Graham
The thing about this use of pixcoord is that the same information can be 
supplied much more efficiently as a pair of texture coordinates.  The 
value of pixcoord ends up being a linear equation over the area of the 
primitive which is exactly what texture coordinate samples give you for 
free.


I believe some of the other gradient methods use that texture coordinate 
technique to avoid having to use pixcoord, but the issue is that we've 
hard-coded all of our VertexBuffer streams to have exactly 2 sets of 
texture coordinates and so you only get room to pass in so many values 
and these (i.e. this family of) shaders are already using those texture 
coordinates to pass in too many values to leave enough free for the 
gradient fractions.


This shader could be avoided, I believe, by rasterizing the shape into 
an alpha mask and using one of the alpha mask gradient shaders that 
doesn't rely on pixcoord.  In fact, in some embedded environments these 
shaders have so many computations per pixel that running the shape 
rasterizer on the CPU actually wins performance (and especially if you 
cache the alpha masks as some of our NGShape nodes do)...


...jim

On 3/1/16 9:10 AM, Maurice wrote:

Erik,

I've included the generated source code of
FillRoundRect_LinearGradient_PAD. I've made the offending lines bold.
I've experimented with adding some modifiers, but to no avail.

Maurice.

#ifdef GL_ES
#extension GL_OES_standard_derivatives : enable
#ifdef GL_FRAGMENT_PRECISION_HIGH
precision highp float;
precision highp int;
#else
precision mediump float;
precision mediump int;
#endif
#else
#define highp
#define mediump
#define lowp
#endif
varying vec2 texCoord0;
varying vec2 texCoord1;
varying lowp vec4 perVertexColor;
uniform vec4 jsl_pixCoordOffset;
*vec2 pixcoord = vec2*(
*gl_FragCoord.x-jsl_pixCoordOffset.x,**
**((jsl_pixCoordOffset.z-gl_FragCoord.y)*jsl_pixCoordOffset.w)-jsl_pixCoordOffset.y);**

*uniform vec2 oinvarcradii;
lowp float mask(vec2 tco, vec2 oflatdim) {
vec2 absecctco = max(abs(tco) - oflatdim, 0.001) * oinvarcradii;
float ecclensq = dot(absecctco, absecctco);
float pix = dot(absecctco / ecclensq, oinvarcradii);
return clamp(0.5 + (1.0 + 0.25 * pix * pix - ecclensq) / (2.0 * pix),
0.0, 1.0);
}
const int MAX_FRACTIONS = 12;
const float TEXTURE_WIDTH = 16.0;
const float FULL_TEXEL_X = 1.0 / TEXTURE_WIDTH;
const float HALF_TEXEL_X = FULL_TEXEL_X / 2.0;
uniform vec4 fractions[12];
uniform sampler2D colors;
uniform float offset;
vec4 sampleGradient(float dist) {
int i;
float relFraction = 0.0;
{
relFraction += clamp((dist - fractions[0].x) * fractions[0].y, 0.0, 1.0);
}
{
relFraction += clamp((dist - fractions[1].x) * fractions[1].y, 0.0, 1.0);
}
{
relFraction += clamp((dist - fractions[2].x) * fractions[2].y, 0.0, 1.0);
}
{
relFraction += clamp((dist - fractions[3].x) * fractions[3].y, 0.0, 1.0);
}
{
relFraction += clamp((dist - fractions[4].x) * fractions[4].y, 0.0, 1.0);
}
{
relFraction += clamp((dist - fractions[5].x) * fractions[5].y, 0.0, 1.0);
}
{
relFraction += clamp((dist - fractions[6].x) * fractions[6].y, 0.0, 1.0);
}
{
relFraction += clamp((dist - fractions[7].x) * fractions[7].y, 0.0, 1.0);
}
{
relFraction += clamp((dist - fractions[8].x) * fractions[8].y, 0.0, 1.0);
}
{
relFraction += clamp((dist - fractions[9].x) * fractions[9].y, 0.0, 1.0);
}
{
relFraction += clamp((dist - fractions[10].x) * fractions[10].y, 0.0, 1.0);
}
float tc = HALF_TEXEL_X + (FULL_TEXEL_X * relFraction);
return texture2D(colors, vec2(tc, offset));
}
vec4 cycleNone(float dist) {
if (dist <= 0.0){
return texture2D(colors, vec2(0.0, offset));
}
  else if (dist >= 1.0){
return texture2D(colors, vec2(1.0, offset));
}
  else {
return sampleGradient(dist);
}
}
vec4 cycleReflect(float dist) {
dist = 1.0 - (abs(fract(dist * 0.5) - 0.5) * 2.0);
return sampleGradient(dist);
}
vec4 cycleRepeat(float dist) {
dist = fract(dist);
return sampleGradient(dist);
}
uniform vec4 gradParams;
uniform vec3 perspVec;
lowp vec4 paint(vec2 winCoord) {
vec3 fragCoord = vec3(winCoord.x, winCoord.y, 1.0);
float dist = dot(fragCoord, gradParams.xyz);
float wdist = dot(fragCoord, perspVec);
return cycleNone(gradParams.w + dist / wdist);
}
void main() {
gl_FragColor = mask(texCoord0, texCoord1) * paint(pixcoord) *
perVertexColor;
}

Op 01-03-16 om 15:09 schreef Erik De Rijcke:

I'm not a shader expert  either but I have worked (and written some
myself) with them, so I'll give my 0.02$ (given that I have no idea
what the complete shader looks like)

It looks to me like the initialization of a default scoped global (eg
Johan's vec2 pixcoord) is done using non constant variables. What that
means is if those variables are  'varying' variables or basically
anything that is only know at the time the shader is invoked... well
that's a paddlin' because you are referring to per invocation scoped
variables (like 'gl_FragCoord' but anything with a 'varying' or maybe
even 'uniforms'storage qualifier might fail too I would assume?) 

Re: GLS language errors (Was: Internal error: Error loading stock shader FillRoundRect_LinearGradient,_PAD on Vivante ARM)

2016-03-01 Thread Erik De Rijcke
I'm not a shader expert  either but I have worked (and written some myself)
with them, so I'll give my 0.02$ (given that I have no idea what the
complete shader looks like)

It looks to me like the initialization of a default scoped global (eg
Johan's vec2 pixcoord) is done using non constant variables. What that
means is if those variables are  'varying' variables or basically anything
that is only know at the time the shader is invoked... well that's a
paddlin' because you are referring to per invocation scoped variables (like
'gl_FragCoord' but anything with a 'varying' or maybe
even 'uniforms'storage qualifier might fail too I would assume?) to
one-time initialize a global.

Mostly guessing on my part but defining a default scoped global that you
only need in your main is considered very naughty anyway (even if it works).

On Tue, Mar 1, 2016 at 2:23 PM, Maurice  wrote:

> I'm not very familiar with shader coding, but can't this be solved by
> putting a non-constant modifier in fron of it? I notice other variables are
> declared as 'varying' or 'uniform'.
>
> Maurice.
>
> Op 29-02-16 om 20:45 schreef Johan Vos:
>
>> Hi,
>>
>> It seems to me you might be running in the same issue we had on Android
>> with the recent Adreno drivers:
>> http://mail.openjdk.java.net/pipermail/openjfx-dev/2015-July/017575.html
>>
>> See that thread for discussion, and for a fix-proposal here:
>> https://bitbucket.org/javafxports/8u60-rt/commits/595633bbaae36f98d85d47d276294442ea43488c
>>
>> Reading back that thread, I still have a todo on trying to find a generic
>> solution for this...
>>
>> - Johan
>>
>> On Sun, Feb 28, 2016 at 6:33 PM, Maurice  i...@cuhka.com>> wrote:
>>
>>   When I run the glslangValidator on
>> FillRoundRect_LinearGradient_PAD.frag it gives the following error:
>> ERROR: 0:19: 'non-constant global initializer' : not supported
>> with this profile: es
>>
>> When I move pixcoord's declaration on line 19 into the main()
>> function it gives no errors.
>>
>> This is the full output of find -name "*.frag" -exec
>> glslangValidator {} \;
>>
>> ERROR: 0:53: 'oTexCoords' : undeclared identifier
>> ERROR: 0:53: 'texture2D' : no matching overloaded function found
>> ERROR: 0:53: '=' :  cannot convert from 'const float' to 'temp
>> highp 4-component vector of float'
>> ERROR: 3 compilation errors.  No code generated.
>>
>>
>> ERROR: 0:55: 'oTexCoords' : undeclared identifier
>> ERROR: 0:55: 'texture2D' : no matching overloaded function found
>> ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
>> ERROR: 0:55: 'rgb' : vector field selection out of range
>> ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp
>> highp 3-component vector of float'
>> ERROR: 5 compilation errors.  No code generated.
>>
>>
>> ERROR: 0:53: 'oTexCoords' : undeclared identifier
>> ERROR: 0:53: 'texture2D' : no matching overloaded function found
>> WARNING: 0:53: 'return' : type conversion on return values was not
>> explicitly allowed until version 420
>> ERROR: 2 compilation errors.  No code generated.
>>
>>
>> ERROR: 0:55: 'oTexCoords' : undeclared identifier
>> ERROR: 0:55: 'texture2D' : no matching overloaded function found
>> ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
>> ERROR: 0:55: 'rgb' : vector field selection out of range
>> ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp
>> highp 3-component vector of float'
>> ERROR: 5 compilation errors.  No code generated.
>>
>>
>> ERROR: 0:18: 'non-constant global initializer' : not supported
>> with this profile: es
>> ERROR: 1 compilation errors.  No code generated.
>>
>>
>> ERROR: 0:18: 'non-constant global initializer' : not supported
>> with this profile: es
>> ERROR: 1 compilation errors.  No code generated.
>>
>>
>> ERROR: 0:53: 'oTexCoords' : undeclared identifier
>> ERROR: 0:53: 'texture2D' : no matching overloaded function found
>> ERROR: 0:53: '=' :  cannot convert from 'const float' to 'temp
>> highp 4-component vector of float'
>> ERROR: 3 compilation errors.  No code generated.
>>
>>
>> ERROR: 0:55: 'oTexCoords' : undeclared identifier
>> ERROR: 0:55: 'texture2D' : no matching overloaded function found
>> ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
>> ERROR: 0:55: 'rgb' : vector field selection out of range
>> ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp
>> highp 3-component vector of float'
>> ERROR: 5 compilation errors.  No code generated.
>>
>>
>> ERROR: 0:53: 'oTexCoords' : undeclared identifier
>> ERROR: 0:53: 'texture2D' : no matching overloaded function found
>> WARNING: 0:53: 'return' : type conversion on return values was not
>> explicitly allowed until version 420
>> ERROR: 2 compilation errors.  No code 

Re: GLS language errors (Was: Internal error: Error loading stock shader FillRoundRect_LinearGradient,_PAD on Vivante ARM)

2016-03-01 Thread Maurice
I'm not very familiar with shader coding, but can't this be solved by 
putting a non-constant modifier in fron of it? I notice other variables 
are declared as 'varying' or 'uniform'.


Maurice.

Op 29-02-16 om 20:45 schreef Johan Vos:

Hi,

It seems to me you might be running in the same issue we had on 
Android with the recent Adreno drivers:

http://mail.openjdk.java.net/pipermail/openjfx-dev/2015-July/017575.html

See that thread for discussion, and for a fix-proposal here: 
https://bitbucket.org/javafxports/8u60-rt/commits/595633bbaae36f98d85d47d276294442ea43488c


Reading back that thread, I still have a todo on trying to find a 
generic solution for this...


- Johan

On Sun, Feb 28, 2016 at 6:33 PM, Maurice > wrote:


  When I run the glslangValidator on
FillRoundRect_LinearGradient_PAD.frag it gives the following error:
ERROR: 0:19: 'non-constant global initializer' : not supported
with this profile: es

When I move pixcoord's declaration on line 19 into the main()
function it gives no errors.

This is the full output of find -name "*.frag" -exec
glslangValidator {} \;

ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
ERROR: 0:53: '=' :  cannot convert from 'const float' to 'temp
highp 4-component vector of float'
ERROR: 3 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp
highp 3-component vector of float'
ERROR: 5 compilation errors.  No code generated.


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
WARNING: 0:53: 'return' : type conversion on return values was not
explicitly allowed until version 420
ERROR: 2 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp
highp 3-component vector of float'
ERROR: 5 compilation errors.  No code generated.


ERROR: 0:18: 'non-constant global initializer' : not supported
with this profile: es
ERROR: 1 compilation errors.  No code generated.


ERROR: 0:18: 'non-constant global initializer' : not supported
with this profile: es
ERROR: 1 compilation errors.  No code generated.


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
ERROR: 0:53: '=' :  cannot convert from 'const float' to 'temp
highp 4-component vector of float'
ERROR: 3 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp
highp 3-component vector of float'
ERROR: 5 compilation errors.  No code generated.


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
WARNING: 0:53: 'return' : type conversion on return values was not
explicitly allowed until version 420
ERROR: 2 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp
highp 3-component vector of float'
ERROR: 5 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported
with this profile: es
ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported
with this profile: es
ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported
with this profile: es
ERROR: 1 compilation errors.  No code generated.


ERROR: 0:17: 'non-constant global initializer' : not supported
with this profile: es
ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported
with this profile: es
ERROR: 1 compilation errors.  

Re: GLS language errors (Was: Internal error: Error loading stock shader FillRoundRect_LinearGradient,_PAD on Vivante ARM)

2016-02-29 Thread Maurice
It looks like the same issue indeed and I second the remark "Don't refer 
to e.g. gl_FragCoord in the header, but put it in main."


When running the egl language validator there were additional errors though:
ERROR: 0:53: 'texture2D' : no matching overloaded function found
WARNING: 0:53: 'return' : type conversion on return values was not 
explicitly allowed until version 420


Should I still file a bug, or put additional information in an existing one?

As an aside, for me to continue, should I try to build a Yocto image 
with an older driver?


Maurice.

Op 29-02-16 om 20:45 schreef Johan Vos:

Hi,

It seems to me you might be running in the same issue we had on 
Android with the recent Adreno drivers:

http://mail.openjdk.java.net/pipermail/openjfx-dev/2015-July/017575.html

See that thread for discussion, and for a fix-proposal here: 
https://bitbucket.org/javafxports/8u60-rt/commits/595633bbaae36f98d85d47d276294442ea43488c


Reading back that thread, I still have a todo on trying to find a 
generic solution for this...


- Johan

On Sun, Feb 28, 2016 at 6:33 PM, Maurice > wrote:


  When I run the glslangValidator on
FillRoundRect_LinearGradient_PAD.frag it gives the following error:
ERROR: 0:19: 'non-constant global initializer' : not supported
with this profile: es

When I move pixcoord's declaration on line 19 into the main()
function it gives no errors.

This is the full output of find -name "*.frag" -exec
glslangValidator {} \;

ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
ERROR: 0:53: '=' :  cannot convert from 'const float' to 'temp
highp 4-component vector of float'
ERROR: 3 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp
highp 3-component vector of float'
ERROR: 5 compilation errors.  No code generated.


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
WARNING: 0:53: 'return' : type conversion on return values was not
explicitly allowed until version 420
ERROR: 2 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp
highp 3-component vector of float'
ERROR: 5 compilation errors.  No code generated.


ERROR: 0:18: 'non-constant global initializer' : not supported
with this profile: es
ERROR: 1 compilation errors.  No code generated.


ERROR: 0:18: 'non-constant global initializer' : not supported
with this profile: es
ERROR: 1 compilation errors.  No code generated.


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
ERROR: 0:53: '=' :  cannot convert from 'const float' to 'temp
highp 4-component vector of float'
ERROR: 3 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp
highp 3-component vector of float'
ERROR: 5 compilation errors.  No code generated.


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
WARNING: 0:53: 'return' : type conversion on return values was not
explicitly allowed until version 420
ERROR: 2 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp
highp 3-component vector of float'
ERROR: 5 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported
with this profile: es
ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported
with this profile: es
ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : 

Re: GLS language errors (Was: Internal error: Error loading stock shader FillRoundRect_LinearGradient,_PAD on Vivante ARM)

2016-02-29 Thread Johan Vos
Hi,

It seems to me you might be running in the same issue we had on Android
with the recent Adreno drivers:
http://mail.openjdk.java.net/pipermail/openjfx-dev/2015-July/017575.html

See that thread for discussion, and for a fix-proposal here:
https://bitbucket.org/javafxports/8u60-rt/commits/595633bbaae36f98d85d47d276294442ea43488c

Reading back that thread, I still have a todo on trying to find a generic
solution for this...

- Johan

On Sun, Feb 28, 2016 at 6:33 PM, Maurice  wrote:

>   When I run the glslangValidator on FillRoundRect_LinearGradient_PAD.frag
> it gives the following error:
> ERROR: 0:19: 'non-constant global initializer' : not supported with this
> profile: es
>
> When I move pixcoord's declaration on line 19 into the main() function it
> gives no errors.
>
> This is the full output of find -name "*.frag" -exec glslangValidator {} \;
>
> ERROR: 0:53: 'oTexCoords' : undeclared identifier
> ERROR: 0:53: 'texture2D' : no matching overloaded function found
> ERROR: 0:53: '=' :  cannot convert from 'const float' to 'temp highp
> 4-component vector of float'
> ERROR: 3 compilation errors.  No code generated.
>
>
> ERROR: 0:55: 'oTexCoords' : undeclared identifier
> ERROR: 0:55: 'texture2D' : no matching overloaded function found
> ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
> ERROR: 0:55: 'rgb' : vector field selection out of range
> ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp highp
> 3-component vector of float'
> ERROR: 5 compilation errors.  No code generated.
>
>
> ERROR: 0:53: 'oTexCoords' : undeclared identifier
> ERROR: 0:53: 'texture2D' : no matching overloaded function found
> WARNING: 0:53: 'return' : type conversion on return values was not
> explicitly allowed until version 420
> ERROR: 2 compilation errors.  No code generated.
>
>
> ERROR: 0:55: 'oTexCoords' : undeclared identifier
> ERROR: 0:55: 'texture2D' : no matching overloaded function found
> ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
> ERROR: 0:55: 'rgb' : vector field selection out of range
> ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp highp
> 3-component vector of float'
> ERROR: 5 compilation errors.  No code generated.
>
>
> ERROR: 0:18: 'non-constant global initializer' : not supported with this
> profile: es
> ERROR: 1 compilation errors.  No code generated.
>
>
> ERROR: 0:18: 'non-constant global initializer' : not supported with this
> profile: es
> ERROR: 1 compilation errors.  No code generated.
>
>
> ERROR: 0:53: 'oTexCoords' : undeclared identifier
> ERROR: 0:53: 'texture2D' : no matching overloaded function found
> ERROR: 0:53: '=' :  cannot convert from 'const float' to 'temp highp
> 4-component vector of float'
> ERROR: 3 compilation errors.  No code generated.
>
>
> ERROR: 0:55: 'oTexCoords' : undeclared identifier
> ERROR: 0:55: 'texture2D' : no matching overloaded function found
> ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
> ERROR: 0:55: 'rgb' : vector field selection out of range
> ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp highp
> 3-component vector of float'
> ERROR: 5 compilation errors.  No code generated.
>
>
> ERROR: 0:53: 'oTexCoords' : undeclared identifier
> ERROR: 0:53: 'texture2D' : no matching overloaded function found
> WARNING: 0:53: 'return' : type conversion on return values was not
> explicitly allowed until version 420
> ERROR: 2 compilation errors.  No code generated.
>
>
> ERROR: 0:55: 'oTexCoords' : undeclared identifier
> ERROR: 0:55: 'texture2D' : no matching overloaded function found
> ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
> ERROR: 0:55: 'rgb' : vector field selection out of range
> ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp highp
> 3-component vector of float'
> ERROR: 5 compilation errors.  No code generated.
>
>
> ERROR: 0:19: 'non-constant global initializer' : not supported with this
> profile: es
> ERROR: 1 compilation errors.  No code generated.
>
>
> ERROR: 0:19: 'non-constant global initializer' : not supported with this
> profile: es
> ERROR: 1 compilation errors.  No code generated.
>
>
> ERROR: 0:19: 'non-constant global initializer' : not supported with this
> profile: es
> ERROR: 1 compilation errors.  No code generated.
>
>
> ERROR: 0:17: 'non-constant global initializer' : not supported with this
> profile: es
> ERROR: 1 compilation errors.  No code generated.
>
>
> ERROR: 0:19: 'non-constant global initializer' : not supported with this
> profile: es
> ERROR: 1 compilation errors.  No code generated.
>
>
> ERROR: 0:19: 'non-constant global initializer' : not supported with this
> profile: es
> ERROR: 1 compilation errors.  No code generated.
>
>
> ERROR: 0:19: 'non-constant global initializer' : not supported with this
> profile: es
> ERROR: 1 compilation errors.  No code generated.
>
>
> ERROR: 0:19: 'non-constant global initializer' : not supported with this
> 

Re: GLS language errors (Was: Internal error: Error loading stock shader FillRoundRect_LinearGradient,_PAD on Vivante ARM)

2016-02-29 Thread Chien Yang
Thanks for the information. It is worth filing a JIRA with a detail 
information of your embedded device at this point.


https://wiki.openjdk.java.net/display/OpenJFX/Submitting+a+Bug+Report

Thanks,
- Chien

On 2/29/2016 10:35 AM, Maurice wrote:
No, I build them myself from the instructions on the Wiki 
. 



Maurice.

Op 29-02-16 om 17:49 schreef Chien Yang:
I have a quick question. Did you get your embedded JavaFX library 
from Glueon?


http://gluonhq.com/open-source/javafxports/downloads/

- Chien


On 2/29/16, 7:21 AM, Maurice wrote:
Should I file a bug? I can't determine whether this is a client 
platform issue or a major bug in the EGL that JavaFX is using. In 
any case, it does not work on my embedded device.


Maurice.

Op 28-02-16 om 18:33 schreef Maurice:
  When I run the glslangValidator on 
FillRoundRect_LinearGradient_PAD.frag it gives the following error:
ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es


When I move pixcoord's declaration on line 19 into the main() 
function it gives no errors.


This is the full output of find -name "*.frag" -exec 
glslangValidator {} \;


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
ERROR: 0:53: '=' :  cannot convert from 'const float' to 'temp 
highp 4-component vector of float'

ERROR: 3 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp 
highp 3-component vector of float'

ERROR: 5 compilation errors.  No code generated.


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
WARNING: 0:53: 'return' : type conversion on return values was not 
explicitly allowed until version 420

ERROR: 2 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp 
highp 3-component vector of float'

ERROR: 5 compilation errors.  No code generated.


ERROR: 0:18: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:18: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
ERROR: 0:53: '=' :  cannot convert from 'const float' to 'temp 
highp 4-component vector of float'

ERROR: 3 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp 
highp 3-component vector of float'

ERROR: 5 compilation errors.  No code generated.


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
WARNING: 0:53: 'return' : type conversion on return values was not 
explicitly allowed until version 420

ERROR: 2 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp 
highp 3-component vector of float'

ERROR: 5 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:17: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant 

Re: GLS language errors (Was: Internal error: Error loading stock shader FillRoundRect_LinearGradient,_PAD on Vivante ARM)

2016-02-29 Thread Chien Yang
I have a quick question. Did you get your embedded JavaFX library from 
Glueon?


http://gluonhq.com/open-source/javafxports/downloads/

- Chien


On 2/29/16, 7:21 AM, Maurice wrote:
Should I file a bug? I can't determine whether this is a client 
platform issue or a major bug in the EGL that JavaFX is using. In any 
case, it does not work on my embedded device.


Maurice.

Op 28-02-16 om 18:33 schreef Maurice:
  When I run the glslangValidator on 
FillRoundRect_LinearGradient_PAD.frag it gives the following error:
ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es


When I move pixcoord's declaration on line 19 into the main() 
function it gives no errors.


This is the full output of find -name "*.frag" -exec glslangValidator 
{} \;


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
ERROR: 0:53: '=' :  cannot convert from 'const float' to 'temp highp 
4-component vector of float'

ERROR: 3 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp highp 
3-component vector of float'

ERROR: 5 compilation errors.  No code generated.


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
WARNING: 0:53: 'return' : type conversion on return values was not 
explicitly allowed until version 420

ERROR: 2 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp highp 
3-component vector of float'

ERROR: 5 compilation errors.  No code generated.


ERROR: 0:18: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:18: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
ERROR: 0:53: '=' :  cannot convert from 'const float' to 'temp highp 
4-component vector of float'

ERROR: 3 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp highp 
3-component vector of float'

ERROR: 5 compilation errors.  No code generated.


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
WARNING: 0:53: 'return' : type conversion on return values was not 
explicitly allowed until version 420

ERROR: 2 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp highp 
3-component vector of float'

ERROR: 5 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:17: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not 

Re: GLS language errors (Was: Internal error: Error loading stock shader FillRoundRect_LinearGradient,_PAD on Vivante ARM)

2016-02-29 Thread Maurice
Should I file a bug? I can't determine whether this is a client platform 
issue or a major bug in the EGL that JavaFX is using. In any case, it 
does not work on my embedded device.


Maurice.

Op 28-02-16 om 18:33 schreef Maurice:
  When I run the glslangValidator on 
FillRoundRect_LinearGradient_PAD.frag it gives the following error:
ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es


When I move pixcoord's declaration on line 19 into the main() function 
it gives no errors.


This is the full output of find -name "*.frag" -exec glslangValidator 
{} \;


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
ERROR: 0:53: '=' :  cannot convert from 'const float' to 'temp highp 
4-component vector of float'

ERROR: 3 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp highp 
3-component vector of float'

ERROR: 5 compilation errors.  No code generated.


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
WARNING: 0:53: 'return' : type conversion on return values was not 
explicitly allowed until version 420

ERROR: 2 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp highp 
3-component vector of float'

ERROR: 5 compilation errors.  No code generated.


ERROR: 0:18: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:18: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
ERROR: 0:53: '=' :  cannot convert from 'const float' to 'temp highp 
4-component vector of float'

ERROR: 3 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp highp 
3-component vector of float'

ERROR: 5 compilation errors.  No code generated.


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
WARNING: 0:53: 'return' : type conversion on return values was not 
explicitly allowed until version 420

ERROR: 2 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp highp 
3-component vector of float'

ERROR: 5 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:17: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with 
this profile: es

ERROR: 1 

GLS language errors (Was: Internal error: Error loading stock shader FillRoundRect_LinearGradient,_PAD on Vivante ARM)

2016-02-28 Thread Maurice
  When I run the glslangValidator on 
FillRoundRect_LinearGradient_PAD.frag it gives the following error:
ERROR: 0:19: 'non-constant global initializer' : not supported with this 
profile: es


When I move pixcoord's declaration on line 19 into the main() function 
it gives no errors.


This is the full output of find -name "*.frag" -exec glslangValidator {} \;

ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
ERROR: 0:53: '=' :  cannot convert from 'const float' to 'temp highp 
4-component vector of float'

ERROR: 3 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp highp 
3-component vector of float'

ERROR: 5 compilation errors.  No code generated.


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
WARNING: 0:53: 'return' : type conversion on return values was not 
explicitly allowed until version 420

ERROR: 2 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp highp 
3-component vector of float'

ERROR: 5 compilation errors.  No code generated.


ERROR: 0:18: 'non-constant global initializer' : not supported with this 
profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:18: 'non-constant global initializer' : not supported with this 
profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
ERROR: 0:53: '=' :  cannot convert from 'const float' to 'temp highp 
4-component vector of float'

ERROR: 3 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp highp 
3-component vector of float'

ERROR: 5 compilation errors.  No code generated.


ERROR: 0:53: 'oTexCoords' : undeclared identifier
ERROR: 0:53: 'texture2D' : no matching overloaded function found
WARNING: 0:53: 'return' : type conversion on return values was not 
explicitly allowed until version 420

ERROR: 2 compilation errors.  No code generated.


ERROR: 0:55: 'oTexCoords' : undeclared identifier
ERROR: 0:55: 'texture2D' : no matching overloaded function found
ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es
ERROR: 0:55: 'rgb' : vector field selection out of range
ERROR: 0:55: '=' :  cannot convert from 'const float' to 'temp highp 
3-component vector of float'

ERROR: 5 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with this 
profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with this 
profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with this 
profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:17: 'non-constant global initializer' : not supported with this 
profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with this 
profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with this 
profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with this 
profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with this 
profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with this 
profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with this 
profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:19: 'non-constant global initializer' : not supported with this 
profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:17: 'non-constant global initializer' : not supported with this 
profile: es

ERROR: 1 compilation errors.  No code generated.


ERROR: 0:18: 'non-constant global initializer' : not