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:




[9] Review request for 8147851: jvm crash at javafx com.sun.webkit.WebPage.twkPrePaint

2016-03-01 Thread Nakul Natu

Hello,

Please review the webrev:

http://cr.openjdk.java.net/~kcr/nnatu/8147851/webrev.00/ 



JBS:

https://bugs.openjdk.java.net/browse/JDK-8147851

Regards,
Nakul


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?) 

Request Review: 8148654 [packager] Add support for module path when calling jdeps

2016-03-01 Thread Chris Bensen
Hi Kevin,

Small packager change to pass module path to to the call to JDEPS.

JIRA: https://bugs.openjdk.java.net/browse/JDK-8148654
Webrev: http://cr.openjdk.java.net/~cbensen/JDK-8148654/webrev.00/

Thanks,
Chris


Re: GLS language errors

2016-03-01 Thread Maurice
Not only does it reduce the amount of errors, but I'm able to run 
Ensemble, until now without any errors. Therefore it seems to be the 
right solution.


Maurice.

Prism pipeline init order: es2 sw
Using native-based Pisces rasterizer
Using dirty region optimizations
Using system sized mask for primitives
Not forcing power of 2 sizes for textures
Using hardware CLAMP_TO_ZERO mode
Opting in for HiDPI pixel scaling
Prism pipeline name = com.sun.prism.es2.ES2Pipeline
Loading ES2 native library ... prism_es2_monocle
Loaded /opt/cuhka/jre/lib/ext/../arm/libprism_es2_monocle.so from 
relative path

succeeded.
GLFactory using com.sun.prism.es2.MonocleGLFactory
Loaded /opt/cuhka/jre/lib/ext/../arm/libglass_monocle.so from relative path
(X) Got class = class com.sun.prism.es2.ES2Pipeline
Initialized prism pipeline: com.sun.prism.es2.ES2Pipeline
JavaFX: using com.sun.javafx.tk.quantum.QuantumToolkit
Maximum supported texture size: 8192
Maximum texture size clamped to 4096
Non power of two texture support = true
Maximum number of vertex attributes = 16
Maximum number of uniform vertex components = 1024
Maximum number of uniform fragment components = 896
Maximum number of varying components = 44
Maximum number of texture units usable in a vertex shader = 4
Maximum number of texture units usable in a fragment shader = 8
Graphics Vendor: Vivante Corporation
   Renderer: Vivante GC2000
Version: OpenGL ES 3.0 V5.0.11.p7.33433
 vsync: true vpipe: true
Calling main(String[]) method
Loaded /opt/cuhka/jre/lib/ext/../arm/libjavafx_font.so from relative path
Loaded /opt/cuhka/jre/lib/ext/../arm/libjavafx_font_freetype.so from 
relative path
Loaded /opt/cuhka/jre/lib/ext/../arm/libjavafx_font_pango.so from 
relative path

max rectangle texture cell size = 89
wrap rectangle texture = 2 x 2
ES2ResourceFactory: Prism - createStockShader: AlphaTexture_Color.frag
Feb 27, 2016 5:47:26 PM com.sun.javafx.css.StyleManager 
loadStylesheetUnPrivileged
INFO: Could not load @font-face font 
[http://fonts.gstatic.com/s/sourcesanspro/v9/toadOcfmlt9b38dHJxOBGEMbjGELOEJD5J8DUmxkO-A.ttf]

ES2ResourceFactory: Prism - createStockShader: Texture_Color.frag
Feb 27, 2016 5:47:27 PM com.sun.javafx.css.StyleManager 
loadStylesheetUnPrivileged
INFO: Could not load @font-face font 
[http://fonts.gstatic.com/s/sourcesanspro/v9/toadOcfmlt9b38dHJxOBGMw1o1eFRj7wYC6JbISqOjY.ttf]

ES2ResourceFactory: Prism - createStockShader: Solid_TextureRGB.frag
Feb 27, 2016 5:47:27 PM com.sun.javafx.css.StyleManager 
loadStylesheetUnPrivileged
INFO: Could not load @font-face font 
[http://fonts.gstatic.com/s/sourcesanspro/v9/ODelI1aHBYDBqgeIAH2zlNzbP97U9sKh0jjxbPbfOKg.ttf]
Feb 27, 2016 5:47:27 PM com.sun.javafx.css.StyleManager 
loadStylesheetUnPrivileged
INFO: Could not load @font-face font 
[http://fonts.gstatic.com/s/sourcesanspro/v9/toadOcfmlt9b38dHJxOBGNNE-IuDiR70wI4zXaKqWCM.ttf]
ES2ResourceFactory: Prism - createStockShader: 
AlphaTexture_LinearGradient.frag

ES2ResourceFactory: Prism - createStockShader: Mask_TextureSuper.frag
Loading Prism common native library ...
Loaded /opt/cuhka/jre/lib/ext/../arm/libprism_common.so from relative path
succeeded.
ES2ResourceFactory: Prism - createStockShader: FillRoundRect_Color.frag
ES2ResourceFactory: Prism - createStockShader: 
FillRoundRect_LinearGradient_PAD.frag

ES2ResourceFactory: Prism - createStockShader: AlphaOne_Color.frag
PPSRenderer: scenario.effect - createShader: LinearConvolveShadow_20
PPSRenderer: scenario.effect - createShader: PhongLighting_DISTANT
ES2ResourceFactory: Prism - createStockShader: 
AlphaTexture_RadialGradient.frag

PPSRenderer: scenario.effect - createShader: Blend_SRC_IN



Op 01-03-16 om 20:10 schreef Maurice:
Moving the declaration into the main() method reduces the amount of 
errors found by the glslangValidator drastically




Re: GLS language errors

2016-03-01 Thread Maurice
Moving the declaration into the main() method reduces the amount of 
errors found by the glslangValidator drastically, though it still finds 
several issues:


./modules/graphics/src/main/resources/com/sun/prism/es2/glsl/normalMap_texture.frag
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.


./modules/graphics/src/main/resources/com/sun/prism/es2/glsl/specular_texture.frag
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.


./modules/graphics/src/main/resources/com/sun/prism/es2/glsl/selfIllum_texture.frag
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.


./modules/graphics/src/main/resources/com/sun/prism/es2/glsl/specular_mix.frag
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.

./modules/graphics/build/resources/main/com/sun/prism/es2/glsl/normalMap_texture.frag
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.


./modules/graphics/build/resources/main/com/sun/prism/es2/glsl/specular_texture.frag
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.


./modules/graphics/build/resources/main/com/sun/prism/es2/glsl/selfIllum_texture.frag
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.


./modules/graphics/build/resources/main/com/sun/prism/es2/glsl/specular_mix.frag
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.



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

2016-03-01 Thread Maurice

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?) 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  >> wrote:


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.  

[9] RFR for 8149737:JRE crash in com.sun.webkit.network.URLLoader.twkDidFinishLoading

2016-03-01 Thread mikhail cherkasov

Hi Guru, Kevin,

Please review the webrev :
 http://cr.openjdk.java.net/~mcherkas/8149737/webrev/

Crash occurs during the page destroy and still there is are some pending 
sub-resource from network.
I added a check for null, see line 814 in CachedResourceLoader.cpp to 
prevent crash.


JBS:
https://bugs.openjdk.java.net/browse/JDK-8149737

Thanks,
Mikhail.