From kevin.rushforth at oracle.com Tue Mar 1 01:05:20 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 29 Feb 2016 17:05:20 -0800 Subject: HEADS-UP: switching to JDK 9 as boot JDK Message-ID: <56D4EAD0.9090405@oracle.com> As I mentioned during the review of JDK-8134709, we are working toward upgrading the boot JDK for FX to JDK 9. Our target is to do this after JDK 9 build 109 is promoted near the end of next week. As part of this, we will be moving to gradle 2.11 since version 2.9 does not support JDK 9. Developers are encouraged to get gradle 2.11 some time before then. I will send out more details about the switch later this week or early next. -- Kevin From mikhail.cherkasov at oracle.com Tue Mar 1 13:05:33 2016 From: mikhail.cherkasov at oracle.com (mikhail cherkasov) Date: Tue, 01 Mar 2016 16:05:33 +0300 Subject: [9] RFR for 8149737:JRE crash in com.sun.webkit.network.URLLoader.twkDidFinishLoading Message-ID: <56D5939D.7080505@oracle.com> 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. From info at cuhka.com Tue Mar 1 13:23:48 2016 From: info at cuhka.com (Maurice) Date: Tue, 1 Mar 2016 14:23:48 +0100 Subject: GLS language errors (Was: Internal error: Error loading stock shader FillRoundRect_LinearGradient,_PAD on Vivante ARM) In-Reply-To: References: <56D1E6A4.80301@cuhka.com> <56D32F81.7060708@cuhka.com> Message-ID: <56D597E4.2050805@cuhka.com> 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. 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 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: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: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:18: '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: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:18: '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:18: '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:18: '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: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: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: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: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: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: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:18: '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: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:18: '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: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: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: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: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: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:18: '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:18: '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 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:18: '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:18: '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: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: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: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 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: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: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:18: '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: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:18: '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:18: '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:18: '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: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: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: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: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: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: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:18: '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: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:18: '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: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: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: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: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: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:18: '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:18: '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 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:18: '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:18: '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: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. > > > > Op 27-02-16 om 19:10 schreef Maurice: > > I'm running into the following exception when I start a simple > JavaFX test program on my ARM based board: > > Shader compile log: (21:0) : error : In declarations of global > variables with no > storage qualifier or with a const qualifier, any initializer > must be a constant > expression > (103:0) : error : undefined identifier: 'pixcoord' > > java.lang.reflect.InvocationTargetException > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. > java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces > sorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:483) > at > com.sun.prism.es2.ES2ResourceFactory.createStockShader(ES2ResourceFac > tory.java:312) > at com.sun.prism.impl.ps > .BaseShaderContext.getPaintShader(BaseShaderCont > ext.java:256) > at com.sun.prism.impl.ps > .BaseShaderContext.validatePaintOp(BaseShaderCon > text.java:477) > at com.sun.prism.impl.ps > .BaseShaderContext.validatePaintOp(BaseShaderCon > text.java:374) > at com.sun.prism.impl.ps > .BaseShaderGraphics.renderGeneralRoundedPgram(Ba > seShaderGraphics.java:842) > at com.sun.prism.impl.ps > .BaseShaderGraphics.renderGeneralRoundedRect(Bas > eShaderGraphics.java:601) > at com.sun.prism.impl.ps > .BaseShaderGraphics.fillRoundRect(BaseShaderGrap > hics.java:1557) > at > com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectanglesDirectly(N > GRegion.java:1119) > at > com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectangle(NGRegion.j > ava:830) > at > com.sun.javafx.sg.prism.NGRegion.renderAsRectangle(NGRegion.java:751) > at > com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:572) > at > com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053) > at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945) > at > com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235) > at > com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053) > at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945) > at > com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:477) > at > com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:330) > at > com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.jav > a:91) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51 > 1) > at > java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) > at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. > java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor > .java:617) > at > com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(Quantu > mRenderer.java:125) > at java.lang.Thread.run(Thread.java:745) > Caused by: java.lang.RuntimeException: Error creating fragment > shader > at > com.sun.prism.es2.ES2Shader.createFromSource(ES2Shader.java:141) > at > com.sun.prism.es2.ES2Shader.createFromSource(ES2Shader.java:173) > at > com.sun.prism.es2.ES2ResourceFactory.createShader(ES2ResourceFactory. > java:224) > at > com.sun.prism.shader.FillRoundRect_LinearGradient_PAD_Loader.loadShad > er(FillRoundRect_LinearGradient_PAD_Loader.java:53) > ... 30 more > java.lang.InternalError: Error loading stock shader > FillRoundRect_LinearGradient > _PAD > at > com.sun.prism.es2.ES2ResourceFactory.createStockShader(ES2ResourceFac > tory.java:315) > at com.sun.prism.impl.ps > .BaseShaderContext.getPaintShader(BaseShaderCont > ext.java:256) > at com.sun.prism.impl.ps > .BaseShaderContext.validatePaintOp(BaseShaderCon > text.java:477) > at com.sun.prism.impl.ps > .BaseShaderContext.validatePaintOp(BaseShaderCon > text.java:374) > at com.sun.prism.impl.ps > .BaseShaderGraphics.renderGeneralRoundedPgram(Ba > seShaderGraphics.java:842) > at com.sun.prism.impl.ps > .BaseShaderGraphics.renderGeneralRoundedRect(Bas > eShaderGraphics.java:601) > at com.sun.prism.impl.ps > .BaseShaderGraphics.fillRoundRect(BaseShaderGrap > hics.java:1557) > at > com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectanglesDirectly(N > GRegion.java:1119) > at > com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectangle(NGRegion.j > ava:830) > at > com.sun.javafx.sg.prism.NGRegion.renderAsRectangle(NGRegion.java:751) > at > com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:572) > at > com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053) > at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945) > at > com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235) > at > com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053) > at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945) > at > com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:477) > at > com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:330) > at > com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.jav > a:91) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51 > 1) > at > java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) > at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. > java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor > .java:617) > at > com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(Quantu > mRenderer.java:125) > at java.lang.Thread.run(Thread.java:745) > > Maurice. > > > From derijcke.erik at gmail.com Tue Mar 1 14:09:34 2016 From: derijcke.erik at gmail.com (Erik De Rijcke) Date: Tue, 1 Mar 2016 15:09:34 +0100 Subject: GLS language errors (Was: Internal error: Error loading stock shader FillRoundRect_LinearGradient,_PAD on Vivante ARM) In-Reply-To: <56D597E4.2050805@cuhka.com> References: <56D1E6A4.80301@cuhka.com> <56D32F81.7060708@cuhka.com> <56D597E4.2050805@cuhka.com> Message-ID: 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 > info at 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 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 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: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: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:18: '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: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:18: '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:18: '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:18: '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: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: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: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: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: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: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:18: '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: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:18: '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: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: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: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: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: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:18: '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:18: '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 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:18: '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:18: '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: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: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: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 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: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: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:18: '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: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:18: '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:18: '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:18: '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: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: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: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: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: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: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:18: '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: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:18: '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: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: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: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: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: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:18: '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:18: '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 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:18: '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:18: '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: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. >> >> >> >> Op 27-02-16 om 19:10 schreef Maurice: >> >> I'm running into the following exception when I start a simple >> JavaFX test program on my ARM based board: >> >> Shader compile log: (21:0) : error : In declarations of global >> variables with no >> storage qualifier or with a const qualifier, any initializer >> must be a constant >> expression >> (103:0) : error : undefined identifier: 'pixcoord' >> >> java.lang.reflect.InvocationTargetException >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native >> Method) >> at >> >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. >> java:62) >> at >> >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces >> sorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:483) >> at >> >> com.sun.prism.es2.ES2ResourceFactory.createStockShader(ES2ResourceFac >> tory.java:312) >> at com.sun.prism.impl.ps >> > >.BaseShaderContext.getPaintShader(BaseShaderCont >> ext.java:256) >> at com.sun.prism.impl.ps >> > >.BaseShaderContext.validatePaintOp(BaseShaderCon >> text.java:477) >> at com.sun.prism.impl.ps >> > >.BaseShaderContext.validatePaintOp(BaseShaderCon >> text.java:374) >> at com.sun.prism.impl.ps >> > >.BaseShaderGraphics.renderGeneralRoundedPgram(Ba >> seShaderGraphics.java:842) >> at com.sun.prism.impl.ps >> > >.BaseShaderGraphics.renderGeneralRoundedRect(Bas >> eShaderGraphics.java:601) >> at com.sun.prism.impl.ps >> > >.BaseShaderGraphics.fillRoundRect(BaseShaderGrap >> >> hics.java:1557) >> at >> >> com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectanglesDirectly(N >> GRegion.java:1119) >> at >> >> com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectangle(NGRegion.j >> ava:830) >> at >> >> com.sun.javafx.sg.prism.NGRegion.renderAsRectangle(NGRegion.java:751) >> at >> com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:572) >> at >> com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053) >> at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945) >> at >> com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235) >> at >> com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053) >> at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945) >> at >> >> com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:477) >> at >> >> com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:330) >> at >> >> com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.jav >> a:91) >> at >> >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51 >> 1) >> at >> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) >> at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) >> at >> >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. >> java:1142) >> at >> >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor >> .java:617) >> at >> >> com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(Quantu >> mRenderer.java:125) >> at java.lang.Thread.run(Thread.java:745) >> Caused by: java.lang.RuntimeException: Error creating fragment >> shader >> at >> com.sun.prism.es2.ES2Shader.createFromSource(ES2Shader.java:141) >> at >> com.sun.prism.es2.ES2Shader.createFromSource(ES2Shader.java:173) >> at >> >> com.sun.prism.es2.ES2ResourceFactory.createShader(ES2ResourceFactory. >> java:224) >> at >> >> com.sun.prism.shader.FillRoundRect_LinearGradient_PAD_Loader.loadShad >> er(FillRoundRect_LinearGradient_PAD_Loader.java:53) >> ... 30 more >> java.lang.InternalError: Error loading stock shader >> FillRoundRect_LinearGradient >> _PAD >> at >> >> com.sun.prism.es2.ES2ResourceFactory.createStockShader(ES2ResourceFac >> tory.java:315) >> at com.sun.prism.impl.ps >> > >.BaseShaderContext.getPaintShader(BaseShaderCont >> ext.java:256) >> at com.sun.prism.impl.ps >> > >.BaseShaderContext.validatePaintOp(BaseShaderCon >> text.java:477) >> at com.sun.prism.impl.ps >> > >.BaseShaderContext.validatePaintOp(BaseShaderCon >> text.java:374) >> at com.sun.prism.impl.ps >> > >.BaseShaderGraphics.renderGeneralRoundedPgram(Ba >> seShaderGraphics.java:842) >> at com.sun.prism.impl.ps >> > >.BaseShaderGraphics.renderGeneralRoundedRect(Bas >> eShaderGraphics.java:601) >> at com.sun.prism.impl.ps >> > >.BaseShaderGraphics.fillRoundRect(BaseShaderGrap >> >> hics.java:1557) >> at >> >> com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectanglesDirectly(N >> GRegion.java:1119) >> at >> >> com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectangle(NGRegion.j >> ava:830) >> at >> >> com.sun.javafx.sg.prism.NGRegion.renderAsRectangle(NGRegion.java:751) >> at >> com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:572) >> at >> com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053) >> at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945) >> at >> com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235) >> at >> com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053) >> at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945) >> at >> >> com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:477) >> at >> >> com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:330) >> at >> >> com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.jav >> a:91) >> at >> >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51 >> 1) >> at >> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) >> at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) >> at >> >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. >> java:1142) >> at >> >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor >> .java:617) >> at >> >> com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(Quantu >> mRenderer.java:125) >> at java.lang.Thread.run(Thread.java:745) >> >> Maurice. >> >> >> >> > From info at cuhka.com Tue Mar 1 17:10:36 2016 From: info at cuhka.com (Maurice) Date: Tue, 1 Mar 2016 18:10:36 +0100 Subject: GLS language errors (Was: Internal error: Error loading stock shader FillRoundRect_LinearGradient,_PAD on Vivante ARM) In-Reply-To: References: <56D1E6A4.80301@cuhka.com> <56D32F81.7060708@cuhka.com> <56D597E4.2050805@cuhka.com> Message-ID: <56D5CD0C.3050704@cuhka.com> 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: > > 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 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: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: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:18: '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: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:18: '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:18: '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:18: '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: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: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: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: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: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: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:18: '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: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:18: '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: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: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: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: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: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:18: '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:18: '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 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:18: '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:18: '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: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: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: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 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: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: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:18: '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: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:18: '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:18: '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:18: '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: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: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: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: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: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: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:18: '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: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:18: '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: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: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: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: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: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:18: '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:18: '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 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:18: '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:18: '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: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. > > > > Op 27-02-16 om 19:10 schreef Maurice: > > I'm running into the following exception when I start > a simple > JavaFX test program on my ARM based board: > > Shader compile log: (21:0) : error : In declarations > of global > variables with no > storage qualifier or with a const qualifier, any > initializer > must be a constant > expression > (103:0) : error : undefined identifier: 'pixcoord' > > java.lang.reflect.InvocationTargetException > at > sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. > java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces > sorImpl.java:43) > at > java.lang.reflect.Method.invoke(Method.java:483) > at > com.sun.prism.es2.ES2ResourceFactory.createStockShader(ES2ResourceFac > tory.java:312) > at com.sun.prism.impl.ps > > > .BaseShaderContext.getPaintShader(BaseShaderCont > ext.java:256) > at com.sun.prism.impl.ps > > > .BaseShaderContext.validatePaintOp(BaseShaderCon > text.java:477) > at com.sun.prism.impl.ps > > > .BaseShaderContext.validatePaintOp(BaseShaderCon > text.java:374) > at com.sun.prism.impl.ps > > > .BaseShaderGraphics.renderGeneralRoundedPgram(Ba > seShaderGraphics.java:842) > at com.sun.prism.impl.ps > > > .BaseShaderGraphics.renderGeneralRoundedRect(Bas > eShaderGraphics.java:601) > at com.sun.prism.impl.ps > > > .BaseShaderGraphics.fillRoundRect(BaseShaderGrap > > > hics.java:1557) > at > com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectanglesDirectly(N > GRegion.java:1119) > at > com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectangle(NGRegion.j > ava:830) > at > com.sun.javafx.sg.prism.NGRegion.renderAsRectangle(NGRegion.java:751) > at > com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:572) > at > com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053) > at > com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945) > at > com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235) > at > com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053) > at > com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945) > at > com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:477) > at > com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:330) > at > com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.jav > a:91) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51 > 1) > at > java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) > at > com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. > java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor > .java:617) > at > com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(Quantu > mRenderer.java:125) > at java.lang.Thread.run(Thread.java:745) > Caused by: java.lang.RuntimeException: Error creating > fragment > shader > at > com.sun.prism.es2.ES2Shader.createFromSource(ES2Shader.java:141) > at > com.sun.prism.es2.ES2Shader.createFromSource(ES2Shader.java:173) > at > com.sun.prism.es2.ES2ResourceFactory.createShader(ES2ResourceFactory. > java:224) > at > com.sun.prism.shader.FillRoundRect_LinearGradient_PAD_Loader.loadShad > er(FillRoundRect_LinearGradient_PAD_Loader.java:53) > ... 30 more > java.lang.InternalError: Error loading stock shader > FillRoundRect_LinearGradient > _PAD > at > com.sun.prism.es2.ES2ResourceFactory.createStockShader(ES2ResourceFac > tory.java:315) > at com.sun.prism.impl.ps > > > .BaseShaderContext.getPaintShader(BaseShaderCont > ext.java:256) > at com.sun.prism.impl.ps > > > .BaseShaderContext.validatePaintOp(BaseShaderCon > text.java:477) > at com.sun.prism.impl.ps > > > .BaseShaderContext.validatePaintOp(BaseShaderCon > text.java:374) > at com.sun.prism.impl.ps > > > .BaseShaderGraphics.renderGeneralRoundedPgram(Ba > seShaderGraphics.java:842) > at com.sun.prism.impl.ps > > > .BaseShaderGraphics.renderGeneralRoundedRect(Bas > eShaderGraphics.java:601) > at com.sun.prism.impl.ps > > > .BaseShaderGraphics.fillRoundRect(BaseShaderGrap > > > hics.java:1557) > at > com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectanglesDirectly(N > GRegion.java:1119) > at > com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectangle(NGRegion.j > ava:830) > at > com.sun.javafx.sg.prism.NGRegion.renderAsRectangle(NGRegion.java:751) > at > com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:572) > at > com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053) > at > com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945) > at > com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235) > at > com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053) > at > com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945) > at > com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:477) > at > com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:330) > at > com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.jav > a:91) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51 > 1) > at > java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) > at > com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. > java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor > .java:617) > at > com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(Quantu > mRenderer.java:125) > at java.lang.Thread.run(Thread.java:745) > > Maurice. > > > > > From info at cuhka.com Tue Mar 1 19:10:45 2016 From: info at cuhka.com (Maurice) Date: Tue, 1 Mar 2016 20:10:45 +0100 Subject: GLS language errors In-Reply-To: <56D5CD0C.3050704@cuhka.com> References: <56D1E6A4.80301@cuhka.com> <56D32F81.7060708@cuhka.com> <56D597E4.2050805@cuhka.com> <56D5CD0C.3050704@cuhka.com> Message-ID: <56D5E935.3010102@cuhka.com> 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. From info at cuhka.com Tue Mar 1 19:59:19 2016 From: info at cuhka.com (Maurice) Date: Tue, 1 Mar 2016 20:59:19 +0100 Subject: GLS language errors In-Reply-To: <56D5E935.3010102@cuhka.com> References: <56D1E6A4.80301@cuhka.com> <56D32F81.7060708@cuhka.com> <56D597E4.2050805@cuhka.com> <56D5CD0C.3050704@cuhka.com> <56D5E935.3010102@cuhka.com> Message-ID: <56D5F497.3010109@cuhka.com> 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.... From chris.bensen at oracle.com Tue Mar 1 20:08:39 2016 From: chris.bensen at oracle.com (Chris Bensen) Date: Tue, 1 Mar 2016 12:08:39 -0800 Subject: Request Review: 8148654 [packager] Add support for module path when calling jdeps Message-ID: 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 From james.graham at oracle.com Wed Mar 2 01:22:42 2016 From: james.graham at oracle.com (Jim Graham) Date: Tue, 1 Mar 2016 17:22:42 -0800 Subject: GLS language errors (Was: Internal error: Error loading stock shader FillRoundRect_LinearGradient,_PAD on Vivante ARM) In-Reply-To: <56D5CD0C.3050704@cuhka.com> References: <56D1E6A4.80301@cuhka.com> <56D32F81.7060708@cuhka.com> <56D597E4.2050805@cuhka.com> <56D5CD0C.3050704@cuhka.com> Message-ID: <56D64062.5050105@oracle.com> 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?) 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: >> >> 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 >> 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: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: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:18: '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: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:18: '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:18: '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:18: '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: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: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: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: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: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: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:18: '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: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:18: '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: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: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: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: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: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:18: '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:18: '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 >> 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:18: '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:18: '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: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: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: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 >> 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: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: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:18: '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: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:18: '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:18: '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:18: '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: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: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: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: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: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: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:18: '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: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:18: '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: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: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: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: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: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:18: '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:18: '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 >> 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:18: '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:18: '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: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. >> >> >> >> Op 27-02-16 om 19:10 schreef Maurice: >> >> I'm running into the following exception when I start >> a simple >> JavaFX test program on my ARM based board: >> >> Shader compile log: (21:0) : error : In declarations >> of global >> variables with no >> storage qualifier or with a const qualifier, any >> initializer >> must be a constant >> expression >> (103:0) : error : undefined identifier: 'pixcoord' >> >> java.lang.reflect.InvocationTargetException >> at >> sun.reflect.NativeMethodAccessorImpl.invoke0(Native >> Method) >> at >> >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. >> java:62) >> at >> >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces >> sorImpl.java:43) >> at >> java.lang.reflect.Method.invoke(Method.java:483) >> at >> >> com.sun.prism.es2.ES2ResourceFactory.createStockShader(ES2ResourceFac >> tory.java:312) >> at com.sun.prism.impl.ps >> >> >> .BaseShaderContext.getPaintShader(BaseShaderCont >> >> ext.java:256) >> at com.sun.prism.impl.ps >> >> >> .BaseShaderContext.validatePaintOp(BaseShaderCon >> >> text.java:477) >> at com.sun.prism.impl.ps >> >> >> .BaseShaderContext.validatePaintOp(BaseShaderCon >> >> text.java:374) >> at com.sun.prism.impl.ps >> >> >> .BaseShaderGraphics.renderGeneralRoundedPgram(Ba >> >> seShaderGraphics.java:842) >> at com.sun.prism.impl.ps >> >> >> .BaseShaderGraphics.renderGeneralRoundedRect(Bas >> >> eShaderGraphics.java:601) >> at com.sun.prism.impl.ps >> >> >> .BaseShaderGraphics.fillRoundRect(BaseShaderGrap >> >> >> >> hics.java:1557) >> at >> >> com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectanglesDirectly(N >> GRegion.java:1119) >> at >> >> com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectangle(NGRegion.j >> ava:830) >> at >> >> com.sun.javafx.sg.prism.NGRegion.renderAsRectangle(NGRegion.java:751) >> at >> com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:572) >> at >> com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053) >> at >> com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945) >> at >> com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235) >> at >> com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053) >> at >> com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945) >> at >> >> com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:477) >> at >> >> com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:330) >> at >> >> com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.jav >> a:91) >> at >> >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51 >> 1) >> at >> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) >> at >> com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) >> at >> >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. >> java:1142) >> at >> >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor >> .java:617) >> at >> >> com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(Quantu >> mRenderer.java:125) >> at java.lang.Thread.run(Thread.java:745) >> Caused by: java.lang.RuntimeException: Error creating >> fragment >> shader >> at >> com.sun.prism.es2.ES2Shader.createFromSource(ES2Shader.java:141) >> at >> com.sun.prism.es2.ES2Shader.createFromSource(ES2Shader.java:173) >> at >> >> com.sun.prism.es2.ES2ResourceFactory.createShader(ES2ResourceFactory. >> java:224) >> at >> >> com.sun.prism.shader.FillRoundRect_LinearGradient_PAD_Loader.loadShad >> er(FillRoundRect_LinearGradient_PAD_Loader.java:53) >> ... 30 more >> java.lang.InternalError: Error loading stock shader >> FillRoundRect_LinearGradient >> _PAD >> at >> >> com.sun.prism.es2.ES2ResourceFactory.createStockShader(ES2ResourceFac >> tory.java:315) >> at com.sun.prism.impl.ps >> >> >> .BaseShaderContext.getPaintShader(BaseShaderCont >> >> ext.java:256) >> at com.sun.prism.impl.ps >> >> >> .BaseShaderContext.validatePaintOp(BaseShaderCon >> >> text.java:477) >> at com.sun.prism.impl.ps >> >> >> .BaseShaderContext.validatePaintOp(BaseShaderCon >> >> text.java:374) >> at com.sun.prism.impl.ps >> >> >> .BaseShaderGraphics.renderGeneralRoundedPgram(Ba >> >> seShaderGraphics.java:842) >> at com.sun.prism.impl.ps >> >> >> .BaseShaderGraphics.renderGeneralRoundedRect(Bas >> >> eShaderGraphics.java:601) >> at com.sun.prism.impl.ps >> >> >> .BaseShaderGraphics.fillRoundRect(BaseShaderGrap >> >> >> >> hics.java:1557) >> at >> >> com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectanglesDirectly(N >> GRegion.java:1119) >> at >> >> com.sun.javafx.sg.prism.NGRegion.renderBackgroundRectangle(NGRegion.j >> ava:830) >> at >> >> com.sun.javafx.sg.prism.NGRegion.renderAsRectangle(NGRegion.java:751) >> at >> com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:572) >> at >> com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053) >> at >> com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945) >> at >> com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235) >> at >> com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053) >> at >> com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945) >> at >> >> com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:477) >> at >> >> com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:330) >> at >> >> com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.jav >> a:91) >> at >> >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51 >> 1) >> at >> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) >> at >> com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) >> at >> >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. >> java:1142) >> at >> >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor >> .java:617) >> at >> >> com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(Quantu >> mRenderer.java:125) >> at java.lang.Thread.run(Thread.java:745) >> >> Maurice. >> >> >> >> >> > From nakul.natu at oracle.com Wed Mar 2 01:28:54 2016 From: nakul.natu at oracle.com (Nakul Natu) Date: Tue, 01 Mar 2016 17:28:54 -0800 Subject: [9] Review request for 8147851: jvm crash at javafx com.sun.webkit.WebPage.twkPrePaint Message-ID: <56D641D6.7080505@oracle.com> 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 From info at cuhka.com Wed Mar 2 07:45:03 2016 From: info at cuhka.com (Maurice) Date: Wed, 2 Mar 2016 08:45:03 +0100 Subject: GLS language errors (Was: Internal error: Error loading stock shader FillRoundRect_LinearGradient,_PAD on Vivante ARM) In-Reply-To: <56D64062.5050105@oracle.com> References: <56D1E6A4.80301@cuhka.com> <56D32F81.7060708@cuhka.com> <56D597E4.2050805@cuhka.com> <56D5CD0C.3050704@cuhka.com> <56D64062.5050105@oracle.com> Message-ID: <56D699FF.3010806@cuhka.com> 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: From info at cuhka.com Wed Mar 2 08:38:20 2016 From: info at cuhka.com (Maurice) Date: Wed, 2 Mar 2016 09:38:20 +0100 Subject: LinuxTouchTransform: wrong range on flipXY and continuus re-calculation Message-ID: <56D6A67C.3020000@cuhka.com> It seems to me that initTransform(int axis, int index) in LinuxTouchTransform calculates the wrong range. Regardless of the flipXY setting it uses for the ABS_X the device's width and for the ABS_Y the device's height. While in case with flipXY it should use for ABS_X the device's height and for ABS_Y as the device's width. Without this correction it becomes impossible to 'calibrate' a touch screen, especially if the minX and minY aren't zero. As an aside, I noticed that the LinuxTouchTransform's initTransform is called every time a touch event is delivered to the system. This seems unnecessary, as long as the screen is the same screen all transforms and scalars will remain the same for each touch event. Regards, Maurice. From powers.anirvan at gmail.com Wed Mar 2 12:26:04 2016 From: powers.anirvan at gmail.com (Anirvan Sarkar) Date: Wed, 2 Mar 2016 17:56:04 +0530 Subject: Javadoc tool version used to build JavaFX documentation Message-ID: Hi, Is the Javadoc tool used to build JavaFX documentation not from the JDK used to build JavaFX ? If you view the javafx.event.Event 'Uses' webpage [1] source, you will see the comment: So it looks like the documentation is built using jdk1.8.0 while JavaFX itself is built using jdk1.8.0_40 [2]. The alignment in the concerned webpage is messed up. (Description column is all the way to the right and its width is very small). When I built the documentation locally using jdk1.8.0_40 the webpage is displayed properly. Seems like there was some Javadoc bug in 1.8.0 which was resolved in some subsequent releases. [1] : https://docs.oracle.com/javase/8/javafx/api/javafx/event/class-use/Event.html [2] : https://bugs.openjdk.java.net/browse/JDK-8097930 -- Anirvan From powers.anirvan at gmail.com Wed Mar 2 13:43:53 2016 From: powers.anirvan at gmail.com (Anirvan Sarkar) Date: Wed, 2 Mar 2016 19:13:53 +0530 Subject: Javadoc tool version used to build JavaFX documentation In-Reply-To: References: Message-ID: I messed up before. I hadn't cleaned up my Javadoc directory before building the documentation with jdk1.8.0_40. The alignment issue exists with jdk1.8.0_40. After some searching in JBS I found the javadoc bug JDK-8072461 [1]. According to the bug report the issue has been fixed in atleast jdk1.8.0_60. Created JBS enhancement issue [2] to update javadoc tool version to 1.8.0_60 for generating JavaFX documentation [1] : https://bugs.openjdk.java.net/browse/JDK-8072461 [2] : https://bugs.openjdk.java.net/browse/JDK-8151038 On 2 March 2016 at 17:56, Anirvan Sarkar wrote: > Hi, > > Is the Javadoc tool used to build JavaFX documentation not from the JDK > used to build JavaFX ? > > If you view the javafx.event.Event 'Uses' webpage [1] source, you will see > the comment: > > > > So it looks like the documentation is built using jdk1.8.0 while JavaFX > itself is built using jdk1.8.0_40 [2]. > > The alignment in the concerned webpage is messed up. (Description column > is all the way to the right and its width is very small). > > When I built the documentation locally using jdk1.8.0_40 the webpage is > displayed properly. > > Seems like there was some Javadoc bug in 1.8.0 which was resolved in some > subsequent releases. > > > [1] : > https://docs.oracle.com/javase/8/javafx/api/javafx/event/class-use/Event.html > [2] : https://bugs.openjdk.java.net/browse/JDK-8097930 > > -- > Anirvan > -- Anirvan From kevin.rushforth at oracle.com Wed Mar 2 14:12:48 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 02 Mar 2016 06:12:48 -0800 Subject: Javadoc tool version used to build JavaFX documentation In-Reply-To: References: Message-ID: <56D6F4E0.70307@oracle.com> We use javadoc from 8u40, too (at least for FX 8u60 and later). However, it looks like an old version of the docs was published on the docs.oracle.com web site. I will file a bug for that. -- Kevin Anirvan Sarkar wrote: > Hi, > > Is the Javadoc tool used to build JavaFX documentation not from the JDK > used to build JavaFX ? > > If you view the javafx.event.Event 'Uses' webpage [1] source, you will see > the comment: > > > > So it looks like the documentation is built using jdk1.8.0 while JavaFX > itself is built using jdk1.8.0_40 [2]. > > The alignment in the concerned webpage is messed up. (Description column is > all the way to the right and its width is very small). > > When I built the documentation locally using jdk1.8.0_40 the webpage is > displayed properly. > > Seems like there was some Javadoc bug in 1.8.0 which was resolved in some > subsequent releases. > > > [1] : > https://docs.oracle.com/javase/8/javafx/api/javafx/event/class-use/Event.html > [2] : https://bugs.openjdk.java.net/browse/JDK-8097930 > > From kevin.rushforth at oracle.com Wed Mar 2 14:17:55 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 02 Mar 2016 06:17:55 -0800 Subject: Javadoc tool version used to build JavaFX documentation In-Reply-To: References: Message-ID: <56D6F613.1010802@oracle.com> Thanks for reporting this. -- Kevin Anirvan Sarkar wrote: > I messed up before. I hadn't cleaned up my Javadoc directory before > building the documentation with jdk1.8.0_40. > > The alignment issue exists with jdk1.8.0_40. After some searching in JBS I > found the javadoc bug JDK-8072461 [1]. > > According to the bug report the issue has been fixed in atleast jdk1.8.0_60. > > Created JBS enhancement issue [2] to update javadoc tool version to > 1.8.0_60 for generating JavaFX documentation > > [1] : https://bugs.openjdk.java.net/browse/JDK-8072461 > [2] : https://bugs.openjdk.java.net/browse/JDK-8151038 > > > On 2 March 2016 at 17:56, Anirvan Sarkar wrote: > > >> Hi, >> >> Is the Javadoc tool used to build JavaFX documentation not from the JDK >> used to build JavaFX ? >> >> If you view the javafx.event.Event 'Uses' webpage [1] source, you will see >> the comment: >> >> >> >> So it looks like the documentation is built using jdk1.8.0 while JavaFX >> itself is built using jdk1.8.0_40 [2]. >> >> The alignment in the concerned webpage is messed up. (Description column >> is all the way to the right and its width is very small). >> >> When I built the documentation locally using jdk1.8.0_40 the webpage is >> displayed properly. >> >> Seems like there was some Javadoc bug in 1.8.0 which was resolved in some >> subsequent releases. >> >> >> [1] : >> https://docs.oracle.com/javase/8/javafx/api/javafx/event/class-use/Event.html >> [2] : https://bugs.openjdk.java.net/browse/JDK-8097930 >> >> -- >> Anirvan >> >> > > > > From chien.yang at oracle.com Wed Mar 2 17:36:11 2016 From: chien.yang at oracle.com (Chien Yang) Date: Wed, 02 Mar 2016 09:36:11 -0800 Subject: GLS language errors (Was: Internal error: Error loading stock shader FillRoundRect_LinearGradient,_PAD on Vivante ARM) In-Reply-To: <56D699FF.3010806@cuhka.com> References: <56D1E6A4.80301@cuhka.com> <56D32F81.7060708@cuhka.com> <56D597E4.2050805@cuhka.com> <56D5CD0C.3050704@cuhka.com> <56D64062.5050105@oracle.com> <56D699FF.3010806@cuhka.com> Message-ID: <56D7248B.8090400@oracle.com> 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: > From danielhilst at gmail.com Wed Mar 2 19:57:31 2016 From: danielhilst at gmail.com (Daniel.) Date: Wed, 2 Mar 2016 16:57:31 -0300 Subject: VNC alternative for JavaFX running directly on framebuffer. In-Reply-To: References: Message-ID: Hi everybody, Is there any further schedule for FX fully supporting VNC? Now I really need input support :( Best regards and thanks in advance! 2016-02-05 11:07 GMT-02:00 Daniel. : > Hi everybody, > > I've succesfully build and using framebuffer-vncserver. The only drawback is > that it hasn't input support, but seeing the screen is already enough to me, > here is it: https://github.com/ponty/framebuffer-vncserver > > If there is anybody using Yocto, you may find usefull this two recipes: > https://gist.github.com/gkos/9ed87cad62d72c599761 > > Cheers, > > 2016-01-20 16:28 GMT-02:00 Daniel. : >> >> I've also tried running with these: >> >> -Dglass.platform=Monocle -Dmonocle.platform=VNC -Dprism.order=sw >> >> I can see the 5901 port in listening, can connect to it but got a >> blackscreen. At the console I got this flood BufferOverflowException:, >> any idea? >> >> >> Here is the full line and first messages: >> java -Dglass.platform=Monocle -Dmonocle.platform=VNC -Dprism.order=sw >> -Dprism.verbose=true -Xms256m -Xmx256m -Duser.timezone=GMT >> br.ind.csi.andon.ui.MainApp andon.ini >> Prism pipeline init order: 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 >> *** Fallback to Prism SW pipeline >> Prism pipeline name = com.sun.prism.sw.SWPipeline >> (X) Got class = class com.sun.prism.sw.SWPipeline >> Initialized prism pipeline: com.sun.prism.sw.SWPipeline >> vsync: true vpipe: false >> Loading Prism common native library ... >> succeeded. >> Exception in thread "JavaFX Application Thread" >> java.nio.BufferOverflowException >> at java.nio.IntBuffer.put(IntBuffer.java:769) >> at >> com.sun.glass.ui.monocle.Framebuffer.composePixels(Framebuffer.java:168) >> at >> com.sun.glass.ui.monocle.HeadlessScreen.uploadPixels(HeadlessScreen.java:118) >> at >> com.sun.glass.ui.monocle.MonocleView._uploadPixels(MonocleView.java:95) >> at com.sun.glass.ui.View.uploadPixels(View.java:771) >> at >> com.sun.prism.PresentableState.uploadPixels(PresentableState.java:295) >> at com.sun.javafx.tk.quantum.SceneState.access$001(SceneState.java:40) >> at >> com.sun.javafx.tk.quantum.SceneState.lambda$uploadPixels$307(SceneState.java:123) >> at >> com.sun.glass.ui.monocle.RunnableProcessor.runLoop(RunnableProcessor.java:92) >> at >> com.sun.glass.ui.monocle.RunnableProcessor.run(RunnableProcessor.java:51) >> at java.lang.Thread.run(Thread.java:745) >> java.nio.BufferOverflowException >> at java.nio.DirectIntBufferU.put(DirectIntBufferU.java:363) >> at >> com.sun.javafx.tk.quantum.UploadingPainter.run(UploadingPainter.java:153) >> at >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) >> .... >> >> >> >> Best regards, >> >> 2016-01-20 14:43 GMT-02:00 Daniel. : >> > Hi Dell, thanks for the reply >> > >> > I have both versions of libegl.so compiled and installed, the >> > framebuffer variants are at /opt/VIVANTE-fb. When I run it with x11 >> > variants and run x11vnc I can connect to the vnc server, can see the >> > application screen, but the inputs doesn't work. I've tested with: >> > >> > SERVER: x11vnc: 0.9.13 lastmod: 2011-08-10 >> > CLIENTS: Vinagre(3.19.2 @ linux) and UltraVNC(1.0.2 @ windows) >> > >> > I'll try to monitor X input events to see what is happening, >> > >> > Best regards, >> > >> > 2016-01-20 3:22 GMT-02:00 Dell Green : >> >> >> >> >> >> I am pretty sure that when i built an operating system for mx6 using >> >> yocto project I had the option for it to spit out x11 versions of libegl.so >> >> libs instead of framebuffer, although I was only interested in framebuffer >> >> option. >> >> >> >> Dell Green >> >> R&D Software Manager >> >> t: (+44)203 668 9870 >> >> >> >> >> >> >> >> >> >> 206 Great Portland Street >> >> London W1W 5QJ >> >> >> >> This email and any files transmitted with it are confidential and >> >> intended solely for the use of the individual or entity to whom they are >> >> addressed. If you are not the intended recipient or the person responsible >> >> for delivering the email to the intended recipient, be advised that you have >> >> received this email in error and that any use, dissemination, forwarding, >> >> printing, or copying of this email is strictly prohibited. Any views or >> >> opinions presented are solely those of the author and do not necessarily >> >> represent those of Ideaworks Limited. Ideaworks (London) Limited, 206 Great >> >> Portland Street, London, W1W 5QJ. Company Registration No. 3943726 >> > >> > >> > >> > -- >> > "Do or do not. There is no try" >> > Yoda Master >> >> >> >> -- >> "Do or do not. There is no try" >> Yoda Master > > > > > -- > "Do or do not. There is no try" > Yoda Master -- "Do or do not. There is no try" Yoda Master From andrey.rusakov at oracle.com Thu Mar 3 11:39:01 2016 From: andrey.rusakov at oracle.com (Andrey Rusakov) Date: Thu, 3 Mar 2016 14:39:01 +0300 Subject: 8151148: [TEST BUG] Fix imports for com.sun.javafx.Utils Message-ID: <56D82255.20902@oracle.com> Hello, everyone! I've found that test workspace fixes for JDK-8093068 were not integrated into tests files and that need to be done. Please look at my small fix: http://cr.openjdk.java.net/~arusakov/8151148/webrev.00/ and commit it. Changeset is also applicable for 9u-dev tests. From info at cuhka.com Thu Mar 3 13:48:27 2016 From: info at cuhka.com (Maurice) Date: Thu, 3 Mar 2016 14:48:27 +0100 Subject: FTFactory.java: Fonts loaded by Pango are never registered and always return Message-ID: <56D840AB.5020408@cuhka.com> At the moment the embedded environment I'm using is not able to use downloaded or external supplied fonts. I've traced through the system and found that it looks like it fails in pango.c FcConfigAppFontAddFile, at least OSPango.FcConfigAppFontAddFile returns false, thus propagating a null all the way up. Checking the pango.c file I noticed something very interesting: JNIEXPORT jboolean JNICALL OS_NATIVE(FcConfigAppFontAddFile) (JNIEnv *env, jclass that, jlong arg0, jstring arg1) { static void *fp = NULL; if (!fp) { void* handle = dlopen(LIB_FONTCONFIG, RTLD_LAZY); if (handle) fp = dlsym(handle, "FcConfigAppFontAddFile"); } jboolean rc = 0; if (arg1) { const char *text = (*env)->GetStringUTFChars(env, arg1, NULL); if (text) { // rc = (jboolean)FcConfigAppFontAddFile(arg0, text); if (fp) { rc = (jboolean)((jboolean (*)(jlong, const char *))fp)(arg0, text); } (*env)->ReleaseStringUTFChars(env, arg1, text); } } return rc; } Yes, you see it correctly! The line that actually should register the font with pango is commented out! I removed the comment, but still the result is false. I then overruled the return code in FTFactory.java registerEmbeddedFont to be always true after it has called the native function, and voil?, there are my external fonts. What a journey.... :-) Maurice. From neugens at redhat.com Thu Mar 3 15:36:58 2016 From: neugens at redhat.com (Mario Torre) Date: Thu, 3 Mar 2016 16:36:58 +0100 Subject: FTFactory.java: Fonts loaded by Pango are never registered and always return In-Reply-To: <56D840AB.5020408@cuhka.com> References: <56D840AB.5020408@cuhka.com> Message-ID: On Thu, Mar 3, 2016 at 2:48 PM, Maurice wrote: > At the moment the embedded environment I'm using is not able to use > downloaded or external supplied fonts. I've traced through the system and > found that it looks like it fails in pango.c FcConfigAppFontAddFile, at > least OSPango.FcConfigAppFontAddFile returns false, thus propagating a null > all the way up. > > Checking the pango.c file I noticed something very interesting: > JNIEXPORT jboolean JNICALL OS_NATIVE(FcConfigAppFontAddFile) > (JNIEnv *env, jclass that, jlong arg0, jstring arg1) > { > static void *fp = NULL; > if (!fp) { > void* handle = dlopen(LIB_FONTCONFIG, RTLD_LAZY); > if (handle) fp = dlsym(handle, "FcConfigAppFontAddFile"); > } > jboolean rc = 0; > if (arg1) { > const char *text = (*env)->GetStringUTFChars(env, arg1, NULL); > if (text) { > // rc = (jboolean)FcConfigAppFontAddFile(arg0, text); > if (fp) { > rc = (jboolean)((jboolean (*)(jlong, const char *))fp)(arg0, > text); > } > (*env)->ReleaseStringUTFChars(env, arg1, text); > } > } > return rc; > } > > Yes, you see it correctly! The line that actually should register the font Pointer to functions make me blind too, but If I'm not reading it wrong, I think this is not a commented code call, it's meant to tell what the code below it does (apparently, it made blind also the author!): FcConfigAppFontAddFile is dloaded into fp, so this totally incomprehensible line: ((jboolean (*)(jlong, const char *))fp)(arg0, text); it's just casting fp to a function that returns a jboolean and takes a jlong and a const char array as argument, hence it becomes again: (jboolean)FcConfigAppFontAddFile(arg0, text); Cheers, Mario From info at cuhka.com Thu Mar 3 15:43:14 2016 From: info at cuhka.com (Maurice) Date: Thu, 3 Mar 2016 16:43:14 +0100 Subject: FTFactory.java: Fonts loaded by Pango are never registered and always return In-Reply-To: References: <56D840AB.5020408@cuhka.com> Message-ID: <56D85B92.4010403@cuhka.com> Hmm.... I think I have to agree with you... you are right. Commenting it in didn't give a compiler or linkage error, and it made it work. I'm happy at the moment and tired of the debugging process, but I'll give it more thought later. Op 03-03-16 om 16:36 schreef Mario Torre: > On Thu, Mar 3, 2016 at 2:48 PM, Maurice wrote: >> At the moment the embedded environment I'm using is not able to use >> downloaded or external supplied fonts. I've traced through the system and >> found that it looks like it fails in pango.c FcConfigAppFontAddFile, at >> least OSPango.FcConfigAppFontAddFile returns false, thus propagating a null >> all the way up. >> >> Checking the pango.c file I noticed something very interesting: >> JNIEXPORT jboolean JNICALL OS_NATIVE(FcConfigAppFontAddFile) >> (JNIEnv *env, jclass that, jlong arg0, jstring arg1) >> { >> static void *fp = NULL; >> if (!fp) { >> void* handle = dlopen(LIB_FONTCONFIG, RTLD_LAZY); >> if (handle) fp = dlsym(handle, "FcConfigAppFontAddFile"); >> } >> jboolean rc = 0; >> if (arg1) { >> const char *text = (*env)->GetStringUTFChars(env, arg1, NULL); >> if (text) { >> // rc = (jboolean)FcConfigAppFontAddFile(arg0, text); >> if (fp) { >> rc = (jboolean)((jboolean (*)(jlong, const char *))fp)(arg0, >> text); >> } >> (*env)->ReleaseStringUTFChars(env, arg1, text); >> } >> } >> return rc; >> } >> >> Yes, you see it correctly! The line that actually should register the font > Pointer to functions make me blind too, but If I'm not reading it > wrong, I think this is not a commented code call, it's meant to tell > what the code below it does (apparently, it made blind also the > author!): > > FcConfigAppFontAddFile is dloaded into fp, so this totally > incomprehensible line: > > ((jboolean (*)(jlong, const char *))fp)(arg0, text); > > it's just casting fp to a function that returns a jboolean and takes a > jlong and a const char array as argument, hence it becomes again: > > (jboolean)FcConfigAppFontAddFile(arg0, text); > > Cheers, > Mario From morris.meyer at oracle.com Thu Mar 3 15:58:36 2016 From: morris.meyer at oracle.com (Morris Meyer) Date: Thu, 3 Mar 2016 10:58:36 -0500 Subject: [9-dev] RFR(XS): 8088809: MenuItem.setText() is broken (Mac) Message-ID: <56D85F2C.5050509@oracle.com> Kevin, David and David, Please review this small patch for changing a Mac system menu item, where that item is a top level menu in the [NSApp mainMenu] menu bar. The fix is to look specifically in the main menu for these items, and to use the appropriate mechanism to set the title of that top-level menu. Thanks, --morris WEBREV - http://cr.openjdk.java.net/~morris/JDK-8088809.01/ BUG - https://bugs.openjdk.java.net/browse/JDK-8088809 From philip.race at oracle.com Thu Mar 3 16:20:19 2016 From: philip.race at oracle.com (Philip Race) Date: Thu, 03 Mar 2016 08:20:19 -0800 Subject: FTFactory.java: Fonts loaded by Pango are never registered and always return In-Reply-To: <56D85B92.4010403@cuhka.com> References: <56D840AB.5020408@cuhka.com> <56D85B92.4010403@cuhka.com> Message-ID: <56D86443.2040601@oracle.com> Since I don't see any code here that looks like it would run only on an embedded environment then I wonder why Linux desktop users are not reporting the same problem ? Did your instrumentation check that both dlopen & dlsym succeeeded ? -phil. On 3/3/16, 7:43 AM, Maurice wrote: > Hmm.... I think I have to agree with you... you are right. Commenting > it in didn't give a compiler or linkage error, and it made it work. > I'm happy at the moment and tired of the debugging process, but I'll > give it more thought later. > > Op 03-03-16 om 16:36 schreef Mario Torre: >> On Thu, Mar 3, 2016 at 2:48 PM, Maurice wrote: >>> At the moment the embedded environment I'm using is not able to use >>> downloaded or external supplied fonts. I've traced through the >>> system and >>> found that it looks like it fails in pango.c FcConfigAppFontAddFile, at >>> least OSPango.FcConfigAppFontAddFile returns false, thus propagating >>> a null >>> all the way up. >>> >>> Checking the pango.c file I noticed something very interesting: >>> JNIEXPORT jboolean JNICALL OS_NATIVE(FcConfigAppFontAddFile) >>> (JNIEnv *env, jclass that, jlong arg0, jstring arg1) >>> { >>> static void *fp = NULL; >>> if (!fp) { >>> void* handle = dlopen(LIB_FONTCONFIG, RTLD_LAZY); >>> if (handle) fp = dlsym(handle, "FcConfigAppFontAddFile"); >>> } >>> jboolean rc = 0; >>> if (arg1) { >>> const char *text = (*env)->GetStringUTFChars(env, arg1, NULL); >>> if (text) { >>> // rc = (jboolean)FcConfigAppFontAddFile(arg0, text); >>> if (fp) { >>> rc = (jboolean)((jboolean (*)(jlong, const char >>> *))fp)(arg0, >>> text); >>> } >>> (*env)->ReleaseStringUTFChars(env, arg1, text); >>> } >>> } >>> return rc; >>> } >>> >>> Yes, you see it correctly! The line that actually should register >>> the font >> Pointer to functions make me blind too, but If I'm not reading it >> wrong, I think this is not a commented code call, it's meant to tell >> what the code below it does (apparently, it made blind also the >> author!): >> >> FcConfigAppFontAddFile is dloaded into fp, so this totally >> incomprehensible line: >> >> ((jboolean (*)(jlong, const char *))fp)(arg0, text); >> >> it's just casting fp to a function that returns a jboolean and takes a >> jlong and a const char array as argument, hence it becomes again: >> >> (jboolean)FcConfigAppFontAddFile(arg0, text); >> >> Cheers, >> Mario > From info at cuhka.com Thu Mar 3 16:40:27 2016 From: info at cuhka.com (Maurice) Date: Thu, 3 Mar 2016 17:40:27 +0100 Subject: FTFactory.java: Fonts loaded by Pango are never registered and always return In-Reply-To: <56D86443.2040601@oracle.com> References: <56D840AB.5020408@cuhka.com> <56D85B92.4010403@cuhka.com> <56D86443.2040601@oracle.com> Message-ID: <56D868FB.10809@cuhka.com> I'm running on Ubuntu desktop, and I can gladly report that it works fine. I think I saw fp wasn't null, but I'll check later. Maybe my only fix was ignoring a 'false'. According to https://www.freebsd.org/cgi/man.cgi?query=fontconfig&sektion=3&apropos=0&manpath=XFree86+4.5.0 FcConfigAppFontAddFile returns a FcBool, and I did see the rc is 0. Although ignoring the result does work, can it be something that is lacking in the environment? The Yocto embedded Linux is naked from the start, so it is totally possible that something else is missing. Maurice. (my pride on finding the flaw is quickly diminishing...) Op 03-03-16 om 17:20 schreef Philip Race: > Since I don't see any code here that looks like it would run only on > an embedded environment then I wonder why Linux desktop users > are not reporting the same problem ? > > Did your instrumentation check that both dlopen & dlsym succeeeded ? > > -phil. > > On 3/3/16, 7:43 AM, Maurice wrote: >> Hmm.... I think I have to agree with you... you are right. >> Commenting it in didn't give a compiler or linkage error, and it made >> it work. I'm happy at the moment and tired of the debugging process, >> but I'll give it more thought later. >> >> Op 03-03-16 om 16:36 schreef Mario Torre: >>> On Thu, Mar 3, 2016 at 2:48 PM, Maurice wrote: >>>> At the moment the embedded environment I'm using is not able to use >>>> downloaded or external supplied fonts. I've traced through the >>>> system and >>>> found that it looks like it fails in pango.c >>>> FcConfigAppFontAddFile, at >>>> least OSPango.FcConfigAppFontAddFile returns false, thus >>>> propagating a null >>>> all the way up. >>>> >>>> Checking the pango.c file I noticed something very interesting: >>>> JNIEXPORT jboolean JNICALL OS_NATIVE(FcConfigAppFontAddFile) >>>> (JNIEnv *env, jclass that, jlong arg0, jstring arg1) >>>> { >>>> static void *fp = NULL; >>>> if (!fp) { >>>> void* handle = dlopen(LIB_FONTCONFIG, RTLD_LAZY); >>>> if (handle) fp = dlsym(handle, "FcConfigAppFontAddFile"); >>>> } >>>> jboolean rc = 0; >>>> if (arg1) { >>>> const char *text = (*env)->GetStringUTFChars(env, arg1, >>>> NULL); >>>> if (text) { >>>> // rc = (jboolean)FcConfigAppFontAddFile(arg0, text); >>>> if (fp) { >>>> rc = (jboolean)((jboolean (*)(jlong, const char >>>> *))fp)(arg0, >>>> text); >>>> } >>>> (*env)->ReleaseStringUTFChars(env, arg1, text); >>>> } >>>> } >>>> return rc; >>>> } >>>> >>>> Yes, you see it correctly! The line that actually should register >>>> the font >>> Pointer to functions make me blind too, but If I'm not reading it >>> wrong, I think this is not a commented code call, it's meant to tell >>> what the code below it does (apparently, it made blind also the >>> author!): >>> >>> FcConfigAppFontAddFile is dloaded into fp, so this totally >>> incomprehensible line: >>> >>> ((jboolean (*)(jlong, const char *))fp)(arg0, text); >>> >>> it's just casting fp to a function that returns a jboolean and takes a >>> jlong and a const char array as argument, hence it becomes again: >>> >>> (jboolean)FcConfigAppFontAddFile(arg0, text); >>> >>> Cheers, >>> Mario >> From chris.bensen at oracle.com Thu Mar 3 18:22:52 2016 From: chris.bensen at oracle.com (Chris Bensen) Date: Thu, 3 Mar 2016 10:22:52 -0800 Subject: Request Review: 8150991 [packager] Module Path Packager Arguments Message-ID: Hi Kevin, Small packager change to pass module path to to the call to JDEPS. JIRA: https://bugs.openjdk.java.net/browse/JDK-8150991 Webrev: http://cr.openjdk.java.net/~cbensen/JDK-8150991/webrev.00/ Thanks, Chris From felipe.heidrich at oracle.com Thu Mar 3 18:59:33 2016 From: felipe.heidrich at oracle.com (Felipe Heidrich) Date: Thu, 3 Mar 2016 10:59:33 -0800 Subject: FTFactory.java: Fonts loaded by Pango are never registered and always return In-Reply-To: <56D85B92.4010403@cuhka.com> References: <56D840AB.5020408@cuhka.com> <56D85B92.4010403@cuhka.com> Message-ID: Mario is correct. Basically we want to be able to compile and load this library in systems where libfontconfig is not available (or system where the given symbol, FcConfigAppFontAddFile, is not there - maybe system using old version of libfontconfig). If it works for you, it just means your system has all the right versions of the libraries, but it doesn't mean it works on supported platforms. Not sure why the common code didn't work for you. does dlopen(LIB_FONTCONFIG, RTLD_LAZY) return a non-null value ? does dlsym(handle, "FcConfigAppFontAddFile") return a non-null value ? Felipe > On Mar 3, 2016, at 7:43 AM, Maurice wrote: > > Hmm.... I think I have to agree with you... you are right. Commenting it in didn't give a compiler or linkage error, and it made it work. I'm happy at the moment and tired of the debugging process, but I'll give it more thought later. > > Op 03-03-16 om 16:36 schreef Mario Torre: >> On Thu, Mar 3, 2016 at 2:48 PM, Maurice wrote: >>> At the moment the embedded environment I'm using is not able to use >>> downloaded or external supplied fonts. I've traced through the system and >>> found that it looks like it fails in pango.c FcConfigAppFontAddFile, at >>> least OSPango.FcConfigAppFontAddFile returns false, thus propagating a null >>> all the way up. >>> >>> Checking the pango.c file I noticed something very interesting: >>> JNIEXPORT jboolean JNICALL OS_NATIVE(FcConfigAppFontAddFile) >>> (JNIEnv *env, jclass that, jlong arg0, jstring arg1) >>> { >>> static void *fp = NULL; >>> if (!fp) { >>> void* handle = dlopen(LIB_FONTCONFIG, RTLD_LAZY); >>> if (handle) fp = dlsym(handle, "FcConfigAppFontAddFile"); >>> } >>> jboolean rc = 0; >>> if (arg1) { >>> const char *text = (*env)->GetStringUTFChars(env, arg1, NULL); >>> if (text) { >>> // rc = (jboolean)FcConfigAppFontAddFile(arg0, text); >>> if (fp) { >>> rc = (jboolean)((jboolean (*)(jlong, const char *))fp)(arg0, >>> text); >>> } >>> (*env)->ReleaseStringUTFChars(env, arg1, text); >>> } >>> } >>> return rc; >>> } >>> >>> Yes, you see it correctly! The line that actually should register the font >> Pointer to functions make me blind too, but If I'm not reading it >> wrong, I think this is not a commented code call, it's meant to tell >> what the code below it does (apparently, it made blind also the >> author!): >> >> FcConfigAppFontAddFile is dloaded into fp, so this totally >> incomprehensible line: >> >> ((jboolean (*)(jlong, const char *))fp)(arg0, text); >> >> it's just casting fp to a function that returns a jboolean and takes a >> jlong and a const char array as argument, hence it becomes again: >> >> (jboolean)FcConfigAppFontAddFile(arg0, text); >> >> Cheers, >> Mario > From vadim.pakhnushev at oracle.com Fri Mar 4 14:31:23 2016 From: vadim.pakhnushev at oracle.com (Vadim Pakhnushev) Date: Fri, 4 Mar 2016 17:31:23 +0300 Subject: In(Sanity) Testing Mondays Message-ID: <56D99C3B.8040706@oracle.com> Reminder, Monday is our weekly sanity testing. You can find your testing assignment at: https://wiki.openjdk.java.net/display/OpenJFX/Sanity+Testing Also please remember that the repo will be locked from 1am PST until 1pm PST. Happy testing! Thanks, Vadim From chris.bensen at oracle.com Fri Mar 4 15:57:39 2016 From: chris.bensen at oracle.com (Chris Bensen) Date: Fri, 4 Mar 2016 07:57:39 -0800 Subject: Request Review: 8150991 [packager] Module Path Packager Arguments In-Reply-To: References: Message-ID: Wrong comment. What I meant to say is ?small packager change to add new arguments for the module path?. Chris > On Mar 3, 2016, at 10:22 AM, Chris Bensen wrote: > > Hi Kevin, > > Small packager change to pass module path to to the call to JDEPS. > > JIRA: https://bugs.openjdk.java.net/browse/JDK-8150991 > Webrev: http://cr.openjdk.java.net/~cbensen/JDK-8150991/webrev.00/ > > Thanks, > Chris From leif.samuelsson at oracle.com Fri Mar 4 19:40:07 2016 From: leif.samuelsson at oracle.com (Leif Samuelsson) Date: Fri, 4 Mar 2016 11:40:07 -0800 Subject: [8u82] review request: 8088397: [Dialog] ButtonType text not updated when Locale changes Message-ID: <56D9E497.9000206@oracle.com> Hi Kevin, Please review this backport to 8u-dev. https://bugs.openjdk.java.net/browse/JDK-8088397 http://cr.openjdk.java.net/~leifs/8088397/webrev.8u.00/ Compare to change in JDK 9: http://cr.openjdk.java.net/~leifs/8088397/webrev.00/ http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/6bd5c06d9d0f Thanks, Leif From kevin.rushforth at oracle.com Sat Mar 5 23:31:02 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Sat, 05 Mar 2016 15:31:02 -0800 Subject: [9-jake] Review request: 8151320: Remove unnecessary addReads from JavaFX Message-ID: <56DB6C36.9050904@oracle.com> Please review the following: https://bugs.openjdk.java.net/browse/JDK-8151320 http://cr.openjdk.java.net/~kcr/8151320/webrev.00/ Now that addReads are no longer necessary in cases where we use core reflection [1] we will eliminate these unneeded calls in the FX jake repo. -- Kevin [1] http://mail.openjdk.java.net/pipermail/jpms-spec-experts/2016-March/000231.html From hrcrnjak at gmail.com Sun Mar 6 18:06:27 2016 From: hrcrnjak at gmail.com (Hrvoje Crnjak) Date: Sun, 6 Mar 2016 19:06:27 +0100 Subject: ELF class problems when Video playback on RaspberryPI Message-ID: Hi all, first of all, sorry for spamming your mailing list. Recently I started building JavaFX appllication on RaspberryPi. The idea of this application is to play .*mp4* videos on demand. But when I try to use FX Media components (player, view, etc.) in order to play the Video, I get the following problem : Java HotSpot(TM) Client VM warning: You have loaded library /home/pi/java/jdk1.8.0_73/jre/lib/arm/libjfxmedia.so which might have disabled stack guard. The VM will try to fix the stack guard now. It's highly recommended that you fix the library with 'execstack -c ', or link it with '-z noexecstack'. Caused by: java.lang.UnsatisfiedLinkError: /home/pi/java/jdk1.8.0_73/jre/lib/arm/libjfxmedia.so: /home/pi/java/jdk1.8.0_73/jre/lib/arm/libjfxmedia.so: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch) I wrote about it in detail here : https://www.raspberrypi.org/forums/viewtopic.php?f=81&t=138698&p=920390#p920390 I used JavaFX build from @chriswhocodes (http://108.61.191.178/) Could you help me out please? I really don't know where to go from here. If you could at least point me out in the right direction I would be very grateful. Thanks for your time and sorry for the spam! Best regards, Hrvoje Crnjak From info at cuhka.com Sun Mar 6 18:09:48 2016 From: info at cuhka.com (Maurice) Date: Sun, 6 Mar 2016 19:09:48 +0100 Subject: ELF class problems when Video playback on RaspberryPI In-Reply-To: References: Message-ID: <56DC726C.5060804@cuhka.com> Looks like you are using a 64-bit library on a 32-bit ARM. Maurice. Op 06-03-16 om 19:06 schreef Hrvoje Crnjak: > Hi all, > > first of all, sorry for spamming your mailing list. > Recently I started building JavaFX appllication on RaspberryPi. > The idea of this application is to play .*mp4* videos on demand. > > But when I try to use FX Media components (player, view, etc.) in order to > play the Video, I get the following problem : > > Java HotSpot(TM) Client VM warning: You have loaded library > /home/pi/java/jdk1.8.0_73/jre/lib/arm/libjfxmedia.so which might have > disabled stack guard. The VM will try to fix the stack guard now. > It's highly recommended that you fix the library with 'execstack -c > ', or link it with '-z noexecstack'. > > Caused by: java.lang.UnsatisfiedLinkError: > /home/pi/java/jdk1.8.0_73/jre/lib/arm/libjfxmedia.so: > /home/pi/java/jdk1.8.0_73/jre/lib/arm/libjfxmedia.so: wrong ELF class: > ELFCLASS64 (Possible cause: architecture word width mismatch) > > I wrote about it in detail here : > https://www.raspberrypi.org/forums/viewtopic.php?f=81&t=138698&p=920390#p920390 > > I used JavaFX build from @chriswhocodes (http://108.61.191.178/) > > Could you help me out please? > I really don't know where to go from here. > If you could at least point me out in the right direction I would be very > grateful. > > Thanks for your time and sorry for the spam! > > Best regards, > Hrvoje Crnjak From kevin.rushforth at oracle.com Mon Mar 7 21:02:08 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 07 Mar 2016 13:02:08 -0800 Subject: 9-dev unlocked following sanity testing Message-ID: <56DDEC50.9000307@oracle.com> From kevin.rushforth at oracle.com Tue Mar 8 00:10:48 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 07 Mar 2016 16:10:48 -0800 Subject: [9-jake] Review request: 8151320: Remove unnecessary addReads from JavaFX In-Reply-To: References: <56DB6C36.9050904@oracle.com> Message-ID: <56DE1888.7010600@oracle.com> Yes, I'll deal with all of the "FIXME" comments (and not just the ones you see in the webrev) separately. Thanks. -- Kevin Mandy Chung wrote: >> On Mar 5, 2016, at 3:31 PM, Kevin Rushforth wrote: >> >> Please review the following: >> >> https://bugs.openjdk.java.net/browse/JDK-8151320 >> http://cr.openjdk.java.net/~kcr/8151320/webrev.00/ >> >> Now that addReads are no longer necessary in cases where we use core reflection [1] we will eliminate these unneeded calls in the FX jake repo. >> >> > > The patch looks fine to me. There are some FIXME comments that I assume you will clean up separately. > > Mandy > > >> -- Kevin >> >> [1] http://mail.openjdk.java.net/pipermail/jpms-spec-experts/2016-March/000231.html >> >> > > From mandy.chung at oracle.com Mon Mar 7 23:52:26 2016 From: mandy.chung at oracle.com (Mandy Chung) Date: Mon, 7 Mar 2016 15:52:26 -0800 Subject: [9-jake] Review request: 8151320: Remove unnecessary addReads from JavaFX In-Reply-To: <56DB6C36.9050904@oracle.com> References: <56DB6C36.9050904@oracle.com> Message-ID: > On Mar 5, 2016, at 3:31 PM, Kevin Rushforth wrote: > > Please review the following: > > https://bugs.openjdk.java.net/browse/JDK-8151320 > http://cr.openjdk.java.net/~kcr/8151320/webrev.00/ > > Now that addReads are no longer necessary in cases where we use core reflection [1] we will eliminate these unneeded calls in the FX jake repo. > The patch looks fine to me. There are some FIXME comments that I assume you will clean up separately. Mandy > -- Kevin > > [1] http://mail.openjdk.java.net/pipermail/jpms-spec-experts/2016-March/000231.html > From guenther.jeffrey at gmail.com Tue Mar 8 03:45:14 2016 From: guenther.jeffrey at gmail.com (Jeffrey Guenther) Date: Mon, 7 Mar 2016 19:45:14 -0800 Subject: Learning Prism Message-ID: <13B9043F-73E1-45B2-B43A-ED3FEDB737F4@gmail.com> Hi Devs, I?m interested in learning more about JavaFX?s low level graphics implementation. I?ve spent a couple afternoons source diving in the modules/graphics folder to get the lay of the land and now I think I need some help. Can anyone point me to documentation describing the system?s high level design? Let?s say one or two levels deeper than http://docs.oracle.com/javafx/2/architecture/jfxpub-architecture.htm? Ultimately, I?d like to gain a better understanding on how JavaFX lays out and renders text for the purposes of understanding how I might be able to contribute to a more advanced text API with support for things like kerning. Secondly, can anyone explain to me how shaders are compiled and passed down to the graphics layer? I?d like to gain a better understanding of how a JavaFX programmer could leverage/add to Prism such that we can write custom shaders/GPU kernels for Effects nodes. I realize the graphics system in JavaFX is not for the faint of heart. There?s much going on beneath the surface. I?m willing to dive deep and do the learning to understand the design. Can anyone point me to docs where I can get started? Or maybe which class to start with and work out from when I?m source diving? Jeff From felix.bembrick at gmail.com Tue Mar 8 04:34:58 2016 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Tue, 8 Mar 2016 15:34:58 +1100 Subject: Learning Prism In-Reply-To: <13B9043F-73E1-45B2-B43A-ED3FEDB737F4@gmail.com> References: <13B9043F-73E1-45B2-B43A-ED3FEDB737F4@gmail.com> Message-ID: +1 I too would love to dive as deep as possible and improve anything that needs improving so some guidance would help greatly! Felix On 8 March 2016 at 14:45, Jeffrey Guenther wrote: > Hi Devs, > > I?m interested in learning more about JavaFX?s low level graphics > implementation. I?ve spent a couple afternoons source diving in the > modules/graphics folder to get the lay of the land and now I think I need > some help. Can anyone point me to documentation describing the system?s > high level design? Let?s say one or two levels deeper than > http://docs.oracle.com/javafx/2/architecture/jfxpub-architecture.htm? < > http://docs.oracle.com/javafx/2/architecture/jfxpub-architecture.htm?> > > Ultimately, I?d like to gain a better understanding on how JavaFX lays out > and renders text for the purposes of understanding how I might be able to > contribute to a more advanced text API with support for things like kerning. > > Secondly, can anyone explain to me how shaders are compiled and passed > down to the graphics layer? I?d like to gain a better understanding of how > a JavaFX programmer could leverage/add to Prism such that we can write > custom shaders/GPU kernels for Effects nodes. > > I realize the graphics system in JavaFX is not for the faint of heart. > There?s much going on beneath the surface. I?m willing to dive deep and do > the learning to understand the design. Can anyone point me to docs where I > can get started? Or maybe which class to start with and work out from when > I?m source diving? > > Jeff From diego.cirujano-cuesta at zeiss.com Tue Mar 8 08:53:07 2016 From: diego.cirujano-cuesta at zeiss.com (Cirujano Cuesta, Diego) Date: Tue, 8 Mar 2016 08:53:07 +0000 Subject: ProgressIndicator indeterminate transition bugs In-Reply-To: <56D36C5A.3080500@oracle.com> References: <56D36C5A.3080500@oracle.com> Message-ID: Hi all, As I understood in the comments(JDK-8094829, JDK-8094078), treeVisible is buggy. Is it still buggy? If yes, is there intention to fix the treeVisible behavior? In case of fixing this it could be used to fix this issue. If I am not wrong, treeVisible is still used by Node, SwingNode and MediaView. @Jonathan As you mentioned in JDK-8094829 "having a correctly working treeVisible property would be immensely useful." And I am completely agree and I would like to add that having in the public API would be even better :-). Thank you, Diego -----Original Message----- From: Jonathan Giles [mailto:jonathan.giles at oracle.com] Sent: Sonntag, 28. Februar 2016 22:54 To: Cirujano Cuesta, Diego; openjfx-dev at openjdk.java.net Subject: Re: ProgressIndicator indeterminate transition bugs If you can, are you able to file bug reports for these? -- Jonathan On 29/02/16 10:49 AM, Cirujano Cuesta, Diego wrote: > Hi all, > > We found two important bugs in ProgressIndicator that are related with the following tickets: > > https://bugs.openjdk.java.net/browse/JDK-8094829 > https://bugs.openjdk.java.net/browse/JDK-8094078 > > Now are quite critical because in a 4K monitor may cause OutOfMemoryException. > > Using the following example: > " > public class JFXMain extends Application{ > > @Override > public void start(Stage primaryStage) throws Exception { > HBox root = new HBox(); > ToggleButton toggleButton = new ToggleButton(); > ProgressIndicator progressIndicator = new ProgressIndicator(ProgressIndicator.INDETERMINATE_PROGRESS); > StackPane stackPane = new StackPane(progressIndicator); > stackPane.visibleProperty().bind(toggleButton.selectedProperty()); > root.getChildren().addAll(toggleButton, stackPane); > primaryStage.setScene(new Scene(root)); > primaryStage.show(); > } > } > " > > ** First bug ** > > Starting the Progress Indicator with indeterminate progress will > trigger: rebuildTimeline by ProgressIndicatorSkin and in line 599 > start the animation even is not shown already: > indeterminateTransition.playFromStart(); > > ** Second bug ** > > With the last commits in ProgressIndicator, as commented in JDK-8094829, the listeners do not care about the real visibility of the node(before it was used impl_treeVisibleProperty()). The consequence is that the ProgressIndicator in the example won?t be stopped. > > I can imagine that impl_treeVisibleProperty() should not be used and Jonathan G. said: " but I can't reliably fix that without an API such as what I expect the treeVisible API should do." But we did not find such alternative property. > > The solution we though is the usage of internal tree visible property like this: > > 1. Modify method: > " > protected void updateAnimation(boolean isTreeVisible) { " > 2. Remove current calls to method in > " > @Override protected void handleControlPropertyChanged(String p) { > super.handleControlPropertyChanged(p); > > if ("INDETERMINATE".equals(p)) { > initialize(); > } else if ("PROGRESS".equals(p)) { > updateProgress(); > } > } > " > 3. Add listener at the end of the IndeterminateSpinner contructor the visibility listener: > " > private IndeterminateSpinner(boolean spinEnabled, Paint fillOverride) { > [...] > impl_treeVisibleProperty().addListener((obs, oldVal, newVal) ->{ > updateAnimation(newVal); > }); > } > " > > What do you think? > > Additional note: I would like to add one more thing. I think that could be very good a property ReadOnlyBooleanProperty treeVisibleProperty() available in all Nodes. > > Please let me know if we can do something else. > > Diego From jonathan.giles at oracle.com Tue Mar 8 09:00:39 2016 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Tue, 08 Mar 2016 22:00:39 +1300 Subject: ProgressIndicator indeterminate transition bugs In-Reply-To: References: <56D36C5A.3080500@oracle.com> Message-ID: <73247A66-A5E4-4D28-9EB2-539CA8FC2CBD@oracle.com> The plan is that a new public API will be developed that matches the expectations, whilst retaining the existing treeVisible semantics in that API. Chien will be looking into this in the coming weeks. At that point we can properly fix these issues. -- Jonathan Sent from a touch device. Please excuse my brevity. On 8 March 2016 21:53:07 GMT+13:00, "Cirujano Cuesta, Diego" wrote: >Hi all, > >As I understood in the comments(JDK-8094829, JDK-8094078), treeVisible >is buggy. Is it still buggy? If yes, is there intention to fix the >treeVisible behavior? In case of fixing this it could be used to fix >this issue. If I am not wrong, treeVisible is still used by Node, >SwingNode and MediaView. > >@Jonathan As you mentioned in JDK-8094829 "having a correctly working >treeVisible property would be immensely useful." And I am completely >agree and I would like to add that having in the public API would be >even better :-). > >Thank you, >Diego > >-----Original Message----- >From: Jonathan Giles [mailto:jonathan.giles at oracle.com] >Sent: Sonntag, 28. Februar 2016 22:54 >To: Cirujano Cuesta, Diego; openjfx-dev at openjdk.java.net >Subject: Re: ProgressIndicator indeterminate transition bugs > >If you can, are you able to file bug reports for these? > >-- Jonathan > >On 29/02/16 10:49 AM, Cirujano Cuesta, Diego wrote: >> Hi all, >> >> We found two important bugs in ProgressIndicator that are related >with the following tickets: >> >> https://bugs.openjdk.java.net/browse/JDK-8094829 >> https://bugs.openjdk.java.net/browse/JDK-8094078 >> >> Now are quite critical because in a 4K monitor may cause >OutOfMemoryException. >> >> Using the following example: >> " >> public class JFXMain extends Application{ >> >> @Override >> public void start(Stage primaryStage) throws Exception { >> HBox root = new HBox(); >> ToggleButton toggleButton = new ToggleButton(); >> ProgressIndicator progressIndicator = new >ProgressIndicator(ProgressIndicator.INDETERMINATE_PROGRESS); >> StackPane stackPane = new StackPane(progressIndicator); >> >stackPane.visibleProperty().bind(toggleButton.selectedProperty()); >> root.getChildren().addAll(toggleButton, stackPane); >> primaryStage.setScene(new Scene(root)); >> primaryStage.show(); >> } >> } >> " >> >> ** First bug ** >> >> Starting the Progress Indicator with indeterminate progress will >> trigger: rebuildTimeline by ProgressIndicatorSkin and in line 599 >> start the animation even is not shown already: >> indeterminateTransition.playFromStart(); >> >> ** Second bug ** >> >> With the last commits in ProgressIndicator, as commented in >JDK-8094829, the listeners do not care about the real visibility of the >node(before it was used impl_treeVisibleProperty()). The consequence is >that the ProgressIndicator in the example won?t be stopped. >> >> I can imagine that impl_treeVisibleProperty() should not be used and >Jonathan G. said: " but I can't reliably fix that without an API such >as what I expect the treeVisible API should do." But we did not find >such alternative property. >> >> The solution we though is the usage of internal tree visible property >like this: >> >> 1. Modify method: >> " >> protected void updateAnimation(boolean isTreeVisible) { " >> 2. Remove current calls to method in >> " >> @Override protected void handleControlPropertyChanged(String p) { >> super.handleControlPropertyChanged(p); >> >> if ("INDETERMINATE".equals(p)) { >> initialize(); >> } else if ("PROGRESS".equals(p)) { >> updateProgress(); >> } >> } >> " >> 3. Add listener at the end of the IndeterminateSpinner contructor the >visibility listener: >> " >> private IndeterminateSpinner(boolean spinEnabled, Paint >fillOverride) { >> [...] >> impl_treeVisibleProperty().addListener((obs, oldVal, >newVal) ->{ >> updateAnimation(newVal); >> }); >> } >> " >> >> What do you think? >> >> Additional note: I would like to add one more thing. I think that >could be very good a property ReadOnlyBooleanProperty >treeVisibleProperty() available in all Nodes. >> >> Please let me know if we can do something else. >> >> Diego From diego.cirujano-cuesta at zeiss.com Tue Mar 8 09:58:50 2016 From: diego.cirujano-cuesta at zeiss.com (Cirujano Cuesta, Diego) Date: Tue, 8 Mar 2016 09:58:50 +0000 Subject: ProgressIndicator indeterminate transition bugs In-Reply-To: <73247A66-A5E4-4D28-9EB2-539CA8FC2CBD@oracle.com> References: <56D36C5A.3080500@oracle.com> <73247A66-A5E4-4D28-9EB2-539CA8FC2CBD@oracle.com> Message-ID: Great! In that case forget the patch I made, it doesn?t make sense until the treeVisible property is implemented. Is there any jira ticket that I could follow? Thank you Jonathan. From: Jonathan Giles [mailto:jonathan.giles at oracle.com] Sent: Dienstag, 8. M?rz 2016 10:01 To: Cirujano Cuesta, Diego; openjfx-dev at openjdk.java.net Subject: RE: ProgressIndicator indeterminate transition bugs The plan is that a new public API will be developed that matches the expectations, whilst retaining the existing treeVisible semantics in that API. Chien will be looking into this in the coming weeks. At that point we can properly fix these issues. -- Jonathan Sent from a touch device. Please excuse my brevity. On 8 March 2016 21:53:07 GMT+13:00, "Cirujano Cuesta, Diego" > wrote: Hi all, As I understood in the comments(JDK-8094829, JDK-8094078), treeVisible is buggy. Is it still buggy? If yes, is there intention to fix the treeVisible behavior? In case of fixing this it could be used to fix this issue. If I am not wrong, treeVisible is still used by Node, SwingNode and MediaView. @Jonathan As you mentioned in JDK-8094829 "having a correctly working treeVisible property would be immensely useful." And I am completely agree and I would like to add that having in the public API would be even better :-). Thank you, Diego -----Original Message----- From: Jonathan Giles [mailto:jonathan.giles at oracle.com] Sent: Sonntag, 28. Februar 2016 22:54 To: Cirujano Cuesta, Diego; openjfx-dev at openjdk.java.net Subject: Re: ProgressIndicator indeterminate transition bugs If you can, are you able to file bug reports for these? -- Jonathan On 29/02/16 10:49 AM, Cirujano Cuesta, Diego wrote: Hi all, We found two important bugs in ProgressIndicator that are related with the following tickets: https://bugs.openjdk.java.net/browse/JDK-8094829 https://bugs.openjdk.java.net/browse/JDK-8094078 Now are quite critical because in a 4K monitor may cause OutOfMemoryException. Using the following example: " public class JFXMain extends Application{ @Override public void start(Stage primaryStage) throws Exception { HBox root = new HBox(); ToggleButton toggleButton = new ToggleButton(); ProgressIndicator progressIndicator = new ProgressIndicator(ProgressIndicator.INDETERMINATE_PROGRESS); StackPane stackPane = new StackPane(progressIndicator); stackPane.visibleProperty().bind(toggleButton.selectedProperty()); root.getChildren().addAll(toggleButton, stackPane); primaryStage.setScene(new Scene(root)); primaryStage.show(); } } " ** First bug ** Starting the Progress Indicator with indeterminate progress will trigger: rebuildTimeline by ProgressIndicatorSkin and in line 599 start the animation even is not shown already: indeterminateTransition.playFromStart(); ** Second bug ** With the last commits in ProgressIndicator, as commented in JDK-8094829, the listeners do not care about the real visibility of the node(before it was used impl_treeVisibleProperty()). The consequence is that the ProgressIndicator in the example won?t be stopped. I can imagine that impl_treeVisibleProperty() should not be used and Jonathan G. said: " but I can't reliably fix that without an API such as what I expect the treeVisible API should do." But we did not find such alternative property. The solution we though is the usage of internal tree visible property like this: 1. Modify method: " protected void updateAnimation(boolean isTreeVisible) { " 2. Remove current calls to method in " @Override protected void handleControlPropertyChanged(String p) { super.handleControlPropertyChanged(p); if ("INDETERMINATE".equals(p)) { initialize(); } else if ("PROGRESS".equals(p)) { updateProgress(); } } " 3. Add listener at the end of the IndeterminateSpinner contructor the visibility listener: " private IndeterminateSpinner(boolean spinEnabled, Paint fillOverride) { [...] impl_treeVisibleProperty().addListener((obs, oldVal, newVal) ->{ updateAnimation(newVal); }); } " What do you think? Additional note: I would like to add one more thing. I think that could be very good a property ReadOnlyBooleanProperty treeVisibleProperty() available in all Nodes. Please let me know if we can do something else. Diego From johan.vos at gluonhq.com Tue Mar 8 11:22:30 2016 From: johan.vos at gluonhq.com (Johan Vos) Date: Tue, 8 Mar 2016 12:22:30 +0100 Subject: Learning Prism In-Reply-To: References: <13B9043F-73E1-45B2-B43A-ED3FEDB737F4@gmail.com> Message-ID: Hi, I think the best way to get started really depends on your personal preferences (e.g. do you like to read code, docs, diagrams,...). I can only comment on how I do it, but others may have other approaches: First of all, you can run a simple JavaFX apps with lots of verbose info. See com.sun.prism.impl.PrismSettings for a list, and have at least prism.verbose set to true. This already gives you lots of insight in what is happening. Second, you want to know what happens on a pulse. Although many complex things are happening, this is not very hard to detect from the code: start from QuantumToolkit.pulse() and follow it from there. There are basically two main parts: * do the calculations (on the FX Thread) (e.g. look at Scene.ScenePulseListener.pulse()) * do the rendering (PaintCollector.renderAll() which will ultimately call QuantumRenderer.submitRenderJob() which runs on the Prism thread). - Johan On Tue, Mar 8, 2016 at 5:34 AM, Felix Bembrick wrote: > +1 > > I too would love to dive as deep as possible and improve anything that > needs improving so some guidance would help greatly! > > Felix > > On 8 March 2016 at 14:45, Jeffrey Guenther > wrote: > > > Hi Devs, > > > > I?m interested in learning more about JavaFX?s low level graphics > > implementation. I?ve spent a couple afternoons source diving in the > > modules/graphics folder to get the lay of the land and now I think I need > > some help. Can anyone point me to documentation describing the system?s > > high level design? Let?s say one or two levels deeper than > > http://docs.oracle.com/javafx/2/architecture/jfxpub-architecture.htm? < > > http://docs.oracle.com/javafx/2/architecture/jfxpub-architecture.htm?> > > > > Ultimately, I?d like to gain a better understanding on how JavaFX lays > out > > and renders text for the purposes of understanding how I might be able to > > contribute to a more advanced text API with support for things like > kerning. > > > > Secondly, can anyone explain to me how shaders are compiled and passed > > down to the graphics layer? I?d like to gain a better understanding of > how > > a JavaFX programmer could leverage/add to Prism such that we can write > > custom shaders/GPU kernels for Effects nodes. > > > > I realize the graphics system in JavaFX is not for the faint of heart. > > There?s much going on beneath the surface. I?m willing to dive deep and > do > > the learning to understand the design. Can anyone point me to docs where > I > > can get started? Or maybe which class to start with and work out from > when > > I?m source diving? > > > > Jeff > From johan.vos at gluonhq.com Tue Mar 8 14:14:08 2016 From: johan.vos at gluonhq.com (Johan Vos) Date: Tue, 8 Mar 2016 15:14:08 +0100 Subject: buffer too small Message-ID: We got a number of bug reports (on Android and iOS) reported by developers using large images: java.lang.IllegalArgumentException: Upload requires 2475266 elements, but only 1549938 elements remain in the buffer at com.sun.prism.impl.BaseTexture.checkUpdateParams(BaseTexture.java:354) at com.sun.prism.es2.ES2Texture.update(ES2Texture.java:640) at com.sun.prism.impl.BaseContext.flushVertexBuffer(BaseContext.java:106) at com.sun.prism.impl.BaseContext.updateMaskTexture(BaseContext.java:248) at com.sun.prism.impl.ps.BaseShaderGraphics.renderShape(BaseShaderGraphics.java:482) I traced this down to the following: initially, a buffer of [1024 * 1024] is allocated by BaseContext.validateMaskTexture. When the MaskData becomes bigger than 1024 (w or h), a new buffer is allocated with capacity [newTexW * newTexH] with newTexW and newTexH the new width/height that are passed when creating a new Texture. However, the physical size of the texture can be different -- e.g. ES2Texture.create (ES2Context, PixelFormat, WrapMode, int, int, bool) will in some cases set the real texWidth/height to the next power of 2. Subsequently, in next rendering loops when the Texture needs to be updated, it is checked whether the capacity of the buffer is large enough to hold the texture. In this case, the physical width is passed and the buffer is not large enough. Adding the following two lines in BaseContext.validateMaskTexture() (line 220) fixes the problem: newTexW = Math.max(newTexW, maskTex.getPhysicalWidth()); newTexH = Math.max(newTexH, maskTex.getPhysicalHeight()); Using this patch, the size of the buffer will take the physical size of the texture into account. I'm not sure this is the best approach though. - Johan From info at cuhka.com Tue Mar 8 14:55:23 2016 From: info at cuhka.com (Maurice) Date: Tue, 8 Mar 2016 15:55:23 +0100 Subject: JavaFX 9 / JRE 9 on ARMv7 Message-ID: <56DEE7DB.2080802@cuhka.com> Given that development of JavaFX 9 will switch to JRE 9 completely anytime soon I'm thinking of switching to JavaFX 9 and a JRE 9. However, do the freely available JVMs for ARMv7 32bit have a JIT? Maurice. From morris.meyer at oracle.com Tue Mar 8 15:37:31 2016 From: morris.meyer at oracle.com (Morris Meyer) Date: Tue, 8 Mar 2016 10:37:31 -0500 Subject: Learning Prism In-Reply-To: <13B9043F-73E1-45B2-B43A-ED3FEDB737F4@gmail.com> References: <13B9043F-73E1-45B2-B43A-ED3FEDB737F4@gmail.com> Message-ID: <56DEF1BB.50508@oracle.com> As the Quantum author I will echo Johan that looking at the QuantumToolkit.pulse() and QuantumRenderer.submitRenderJob() are good places to start. Ignore the PaintCollector (Pain Collector :-) ) and pay attention to the View Painters. This article has good background. http://fxexperience.com/2012/02/a-short-tour-through-javafx-ui-common/ The SceneGraph converts SG nodes to Prism NG nodes. The painters convert Prism NG nodes into graphics operations. That node graph is rendered onto a Prism hardware (or software prism-sw) pipeline. This winds up at the GPU layer in places like native-prism-es2/macosx or native-prism-d3d. Glass manages operating system resources like menu bars, events, dragging, pasteboard, screens and graphical layers. On Mac OSX drawing winds up in native-glass/mac in places like GlassView3D.m (begin, end) and GlassLayer3D.m (drawInCGLContext) - a good way to see what is going on at the low level is uncommenting VERBOSE in these Glass classes in native-glass/mac and seeing the flow at the native level. There is sort of a separation of Church and State thing going on with the Prism native layers (native-prism-es2/macosx vs native-glass/mac) that has been very well designed over various iterations by Chein Yang in the Java Client Group. One final note about time from the Quantum dude. Our JavaFX timebase is not driven by a time that is going off at 16 ms to simulate a 60 Hertz retrace. Our pulsed painting timebase (since RT-13660) is driven from the vertical retrace interval. Quantum queues up the pulses from the Glass timer at 16 ms (faster than 60 Hz), such that a pulse is waiting its turn for the graphics vertical retrace to happen (on Mac, Linux-GPU, Windows-D3D and iOS). The pulse is kicked off immediately after the vertical retrace which ensures a rock solid 60 Hz timebase for JavaFX animations. --morris NP - Young the Giant, Young the Giant, My Body On 3/7/16 10:45 PM, Jeffrey Guenther wrote: > Hi Devs, > > I?m interested in learning more about JavaFX?s low level graphics implementation. I?ve spent a couple afternoons source diving in the modules/graphics folder to get the lay of the land and now I think I need some help. Can anyone point me to documentation describing the system?s high level design? Let?s say one or two levels deeper than http://docs.oracle.com/javafx/2/architecture/jfxpub-architecture.htm? > > Ultimately, I?d like to gain a better understanding on how JavaFX lays out and renders text for the purposes of understanding how I might be able to contribute to a more advanced text API with support for things like kerning. > > Secondly, can anyone explain to me how shaders are compiled and passed down to the graphics layer? I?d like to gain a better understanding of how a JavaFX programmer could leverage/add to Prism such that we can write custom shaders/GPU kernels for Effects nodes. > > I realize the graphics system in JavaFX is not for the faint of heart. There?s much going on beneath the surface. I?m willing to dive deep and do the learning to understand the design. Can anyone point me to docs where I can get started? Or maybe which class to start with and work out from when I?m source diving? > > Jeff From David.Hill at Oracle.com Tue Mar 8 16:49:22 2016 From: David.Hill at Oracle.com (David Hill) Date: Tue, 08 Mar 2016 11:49:22 -0500 Subject: review for enabling systemTest with Jake Message-ID: <56DF0292.1030803@Oracle.com> Kevin, (finally....) https://bugs.openjdk.java.net/browse/JDK-8147399 http://cr.openjdk.java.net/~ddhill/8147399/ -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From chien.yang at oracle.com Tue Mar 8 19:40:39 2016 From: chien.yang at oracle.com (Chien Yang) Date: Tue, 8 Mar 2016 11:40:39 -0800 Subject: ProgressIndicator indeterminate transition bugs In-Reply-To: References: <56D36C5A.3080500@oracle.com> <73247A66-A5E4-4D28-9EB2-539CA8FC2CBD@oracle.com> Message-ID: <56DF2AB7.6070903@oracle.com> You may track the progress of this work with this JIRA for now. We are still investigating the scope and impact of this work. We may decide to create a new JIRA and resolve this as a duplicate if we decide to go with a better naming. https://bugs.openjdk.java.net/browse/JDK-8090322 - Chien On 03/08/16 01:58, Cirujano Cuesta, Diego wrote: > Great! In that case forget the patch I made, it doesn?t make sense until the treeVisible property is implemented. Is there any jira ticket that I could follow? > > Thank you Jonathan. > > From: Jonathan Giles [mailto:jonathan.giles at oracle.com] > Sent: Dienstag, 8. M?rz 2016 10:01 > To: Cirujano Cuesta, Diego; openjfx-dev at openjdk.java.net > Subject: RE: ProgressIndicator indeterminate transition bugs > > The plan is that a new public API will be developed that matches the expectations, whilst retaining the existing treeVisible semantics in that API. Chien will be looking into this in the coming weeks. At that point we can properly fix these issues. > > -- Jonathan > Sent from a touch device. Please excuse my brevity. > On 8 March 2016 21:53:07 GMT+13:00, "Cirujano Cuesta, Diego" > wrote: > > Hi all, > > As I understood in the comments(JDK-8094829, JDK-8094078), treeVisible is buggy. Is it still buggy? If yes, is there intention to fix the treeVisible behavior? In case of fixing this it could be used to fix this issue. If I am not wrong, treeVisible is still used by Node, SwingNode and MediaView. > > @Jonathan As you mentioned in JDK-8094829 "having a correctly working treeVisible property would be immensely useful." And I am completely agree and I would like to add that having in the public API would be even better :-). > > Thank you, > Diego > > -----Original Message----- > From: Jonathan Giles [mailto:jonathan.giles at oracle.com] > Sent: Sonntag, 28. Februar 2016 22:54 > To: Cirujano Cuesta, Diego; openjfx-dev at openjdk.java.net > Subject: Re: ProgressIndicator indeterminate transition bugs > > If you can, are you able to file bug reports for these? > > -- Jonathan > > On 29/02/16 10:49 AM, Cirujano Cuesta, Diego wrote: > > Hi all, > > We found two important bugs in ProgressIndicator that are related with the following tickets: > > https://bugs.openjdk.java.net/browse/JDK-8094829 > https://bugs.openjdk.java.net/browse/JDK-8094078 > > Now are quite critical because in a 4K monitor may cause OutOfMemoryException. > > Using the following example: > " > public class JFXMain extends Application{ > > @Override > public void start(Stage primaryStage) throws Exception { > HBox root = new HBox(); > ToggleButton toggleButton = new ToggleButton(); > ProgressIndicator progressIndicator = new ProgressIndicator(ProgressIndicator.INDETERMINATE_PROGRESS); > StackPane stackPane = new StackPane(progressIndicator); > stackPane.visibleProperty().bind(toggleButton.selectedProperty()); > root.getChildren().addAll(toggleButton, stackPane); > primaryStage.setScene(new Scene(root)); > primaryStage.show(); > } > } > " > > ** First bug ** > > Starting the Progress Indicator with indeterminate progress will > trigger: rebuildTimeline by ProgressIndicatorSkin and in line 599 > start the animation even is not shown already: > indeterminateTransition.playFromStart(); > > ** Second bug ** > > With the last commits in ProgressIndicator, as commented in JDK-8094829, the listeners do not care about the real visibility of the node(before it was used impl_treeVisibleProperty()). The consequence is that the ProgressIndicator in the example won?t be stopped. > > I can imagine that impl_treeVisibleProperty() should not be used and Jonathan G. said: " but I can't reliably fix that without an API such as what I expect the treeVisible API should do." But we did not find such alternative property. > > The solution we though is the usage of internal tree visible property like this: > > 1. Modify method: > " > protected void updateAnimation(boolean isTreeVisible) { " > 2. Remove current calls to method in > " > @Override protected void handleControlPropertyChanged(String p) { > super.handleControlPropertyChanged(p); > > if ("INDETERMINATE".equals(p)) { > initialize(); > } else if ("PROGRESS".equals(p)) { > updateProgress(); > } > } > " > 3. Add listener at the end of the IndeterminateSpinner contructor the visibility listener: > " > private IndeterminateSpinner(boolean spinEnabled, Paint fillOverride) { > [...] > impl_treeVisibleProperty().addListener((obs, oldVal, newVal) ->{ > updateAnimation(newVal); > }); > } > " > > What do you think? > > Additional note: I would like to add one more thing. I think that could be very good a property ReadOnlyBooleanProperty treeVisibleProperty() available in all Nodes. > > Please let me know if we can do something else. > > Diego > > From danielhilst at gmail.com Tue Mar 8 20:57:19 2016 From: danielhilst at gmail.com (Daniel.) Date: Tue, 8 Mar 2016 17:57:19 -0300 Subject: iMX.6 X11 limitations. Message-ID: Hi everybody, At wiki there is this statement: Using X11 to obtain the EGL context, but acting as if we are the only application. This path was implemented in the "Monocle" windowing subsystem, which is available in the OpenJFX build, and will be part of a future JDK for ARM release. This path was added to enable us to demonstrate JavaFX on platforms where the direct to Framebuffer drivers are not easily available. There are limitations inherent to using this path, and so it is not recommenced for production use. I would like to know what are the limitations of ussing X11 path? Best regards and thanks in advance -- "Do or do not. There is no try" Yoda Master From james.graham at oracle.com Tue Mar 8 21:36:35 2016 From: james.graham at oracle.com (Jim Graham) Date: Tue, 8 Mar 2016 13:36:35 -0800 Subject: buffer too small In-Reply-To: References: Message-ID: <56DF45E3.9010608@oracle.com> Hi Johan, Notes in line below... On 3/8/16 6:14 AM, Johan Vos wrote: > We got a number of bug reports (on Android and iOS) reported by developers > using large images: > > java.lang.IllegalArgumentException: Upload requires 2475266 elements, but > only 1549938 elements remain in the buffer > > at com.sun.prism.impl.BaseTexture.checkUpdateParams(BaseTexture.java:354) > > at com.sun.prism.es2.ES2Texture.update(ES2Texture.java:640) > > at com.sun.prism.impl.BaseContext.flushVertexBuffer(BaseContext.java:106) > > at com.sun.prism.impl.BaseContext.updateMaskTexture(BaseContext.java:248) > > at > com.sun.prism.impl.ps.BaseShaderGraphics.renderShape(BaseShaderGraphics.java:482) > > > I traced this down to the following: > > initially, a buffer of [1024 * 1024] is allocated by > BaseContext.validateMaskTexture. When the MaskData becomes bigger than 1024 > (w or h), a new buffer is allocated with capacity [newTexW * newTexH] with > newTexW and newTexH the new width/height that are passed when creating a > new Texture. However, the physical size of the texture can be different -- > e.g. > > ES2Texture.create (ES2Context, PixelFormat, WrapMode, int, int, bool) will > in some cases set the real texWidth/height to the next power of 2. This is one of the primary reasons why content dimensions and physical dimensions are not the same. > Subsequently, in next rendering loops when the Texture needs to be updated, > it is checked whether the capacity of the buffer is large enough to hold > the texture. In this case, the physical width is passed and the buffer is > not large enough. Where is this code that you referred to above? Where is the physical width passed from/to? Lines of code? The capacity checks at the top of updateMaskTexture() are all using content dimensions which are appropriate, so where are the capacity checks you see which are using the physical width? > Adding the following two lines in BaseContext.validateMaskTexture() (line > 220) fixes the problem: > > newTexW = Math.max(newTexW, maskTex.getPhysicalWidth()); > > newTexH = Math.max(newTexH, maskTex.getPhysicalHeight()); That may mask the problem, but it doesn't fix the underlying problem. newTexWH are supposed to be the new content dimensions and should not be based on the old phyiscal dimensions or we will grow the texture unnecessarily large in many cases. > Using this patch, the size of the buffer will take the physical size of the > texture into account. I'm not sure this is the best approach though. The buffer is used to update the content portion of the texture, it should only ever take the content dimensions of the texture into account. The physical dimensions are not relevant to the discussion here. There is an optimization that could avoid allocating a new texture that could be based on physical dimensions, but you aren't tying into it with the above analysis. I want to get up to speed on what you've found above before I can recommend a more appropriate solution... ...jim From james.graham at oracle.com Tue Mar 8 21:43:47 2016 From: james.graham at oracle.com (Jim Graham) Date: Tue, 8 Mar 2016 13:43:47 -0800 Subject: buffer too small In-Reply-To: References: Message-ID: <56DF4793.9040401@oracle.com> I think I see the issue. In the code that calls maskTex.update(...) it passes maskTex.physicalWidth() as the scan stride of the buffer, but the scan stride of the buffer is based on the content size, not the physical size. Thus, the checkUpdateParams() method overestimates how many bytes are consumed by the operation. Changing that to maskTex.getContentWidth() should be fine... ...jim On 3/8/16 6:14 AM, Johan Vos wrote: > We got a number of bug reports (on Android and iOS) reported by developers > using large images: > > java.lang.IllegalArgumentException: Upload requires 2475266 elements, but > only 1549938 elements remain in the buffer > > at com.sun.prism.impl.BaseTexture.checkUpdateParams(BaseTexture.java:354) > > at com.sun.prism.es2.ES2Texture.update(ES2Texture.java:640) > > at com.sun.prism.impl.BaseContext.flushVertexBuffer(BaseContext.java:106) > > at com.sun.prism.impl.BaseContext.updateMaskTexture(BaseContext.java:248) > > at > com.sun.prism.impl.ps.BaseShaderGraphics.renderShape(BaseShaderGraphics.java:482) > > > I traced this down to the following: > > initially, a buffer of [1024 * 1024] is allocated by > BaseContext.validateMaskTexture. When the MaskData becomes bigger than 1024 > (w or h), a new buffer is allocated with capacity [newTexW * newTexH] with > newTexW and newTexH the new width/height that are passed when creating a > new Texture. However, the physical size of the texture can be different -- > e.g. > > ES2Texture.create (ES2Context, PixelFormat, WrapMode, int, int, bool) will > in some cases set the real texWidth/height to the next power of 2. > > Subsequently, in next rendering loops when the Texture needs to be updated, > it is checked whether the capacity of the buffer is large enough to hold > the texture. In this case, the physical width is passed and the buffer is > not large enough. > > Adding the following two lines in BaseContext.validateMaskTexture() (line > 220) fixes the problem: > > newTexW = Math.max(newTexW, maskTex.getPhysicalWidth()); > > newTexH = Math.max(newTexH, maskTex.getPhysicalHeight()); > > Using this patch, the size of the buffer will take the physical size of the > texture into account. I'm not sure this is the best approach though. > > - Johan > From johan.vos at gluonhq.com Wed Mar 9 10:01:57 2016 From: johan.vos at gluonhq.com (Johan Vos) Date: Wed, 9 Mar 2016 11:01:57 +0100 Subject: buffer too small In-Reply-To: <56DF4793.9040401@oracle.com> References: <56DF4793.9040401@oracle.com> Message-ID: Hi Jim, Passing the contentWidth to the update() fixes the problem as well, and if the excessive memory is not needed (as in my proposal), this is of course much better. Can I create an issue and suggest the following patch (this is for 8, but I can do a similar for 9)? - Johan --- a/modules/graphics/src/main/java/com/sun/prism/impl/BaseContext.java Thu Mar 03 03:22:09 2016 +0100 +++ b/modules/graphics/src/main/java/com/sun/prism/impl/BaseContext.java Wed Mar 09 10:59:35 2016 +0100 @@ -104,7 +104,7 @@ // since it was bound and unflushed... maskTex.update(maskBuffer, maskTex.getPixelFormat(), 0, 0, 0, 0, highMaskCol, nextMaskRow, - maskTex.getPhysicalWidth(), true); + maskTex.getContentWidth(), true); maskTex.unlock(); curMaskRow = curMaskCol = nextMaskRow = highMaskCol = 0; } On Tue, Mar 8, 2016 at 10:43 PM, Jim Graham wrote: > I think I see the issue. > > In the code that calls maskTex.update(...) it passes > maskTex.physicalWidth() as the scan stride of the buffer, but the scan > stride of the buffer is based on the content size, not the physical size. > Thus, the checkUpdateParams() method overestimates how many bytes are > consumed by the operation. > > Changing that to maskTex.getContentWidth() should be fine... > > ...jim > > On 3/8/16 6:14 AM, Johan Vos wrote: > >> We got a number of bug reports (on Android and iOS) reported by developers >> using large images: >> >> java.lang.IllegalArgumentException: Upload requires 2475266 elements, but >> only 1549938 elements remain in the buffer >> >> at com.sun.prism.impl.BaseTexture.checkUpdateParams(BaseTexture.java:354) >> >> at com.sun.prism.es2.ES2Texture.update(ES2Texture.java:640) >> >> at com.sun.prism.impl.BaseContext.flushVertexBuffer(BaseContext.java:106) >> >> at com.sun.prism.impl.BaseContext.updateMaskTexture(BaseContext.java:248) >> >> at >> com.sun.prism.impl.ps >> .BaseShaderGraphics.renderShape(BaseShaderGraphics.java:482) >> >> >> I traced this down to the following: >> >> initially, a buffer of [1024 * 1024] is allocated by >> BaseContext.validateMaskTexture. When the MaskData becomes bigger than >> 1024 >> (w or h), a new buffer is allocated with capacity [newTexW * newTexH] with >> newTexW and newTexH the new width/height that are passed when creating a >> new Texture. However, the physical size of the texture can be different -- >> e.g. >> >> ES2Texture.create (ES2Context, PixelFormat, WrapMode, int, int, bool) will >> in some cases set the real texWidth/height to the next power of 2. >> >> Subsequently, in next rendering loops when the Texture needs to be >> updated, >> it is checked whether the capacity of the buffer is large enough to hold >> the texture. In this case, the physical width is passed and the buffer is >> not large enough. >> >> Adding the following two lines in BaseContext.validateMaskTexture() (line >> 220) fixes the problem: >> >> newTexW = Math.max(newTexW, maskTex.getPhysicalWidth()); >> >> newTexH = Math.max(newTexH, maskTex.getPhysicalHeight()); >> >> Using this patch, the size of the buffer will take the physical size of >> the >> texture into account. I'm not sure this is the best approach though. >> >> - Johan >> >> From info at cuhka.com Wed Mar 9 11:04:04 2016 From: info at cuhka.com (Maurice) Date: Wed, 9 Mar 2016 12:04:04 +0100 Subject: com.sun.media.jfxmedia.locator.Locator: Unsupported protocol "bundle" Message-ID: <56E00324.70905@cuhka.com> When I tried to load a wav file from my OSGi bundle's resources JavaFX reported that it could not load the file because the protocol "bundle" is unsupported. I checked the code and indeed, it is not supported. However I wondered why the Locator doesn't use the same mechanism as the font loader. The font loader opens the input stream, downloads the file to a temporary folder and then opens the file, whereas the sound locator just balks at the protocol. Maurice. From kevin.rushforth at oracle.com Wed Mar 9 15:59:00 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 09 Mar 2016 07:59:00 -0800 Subject: buffer too small In-Reply-To: References: <56DF4793.9040401@oracle.com> Message-ID: <56E04844.6040503@oracle.com> Yes, please. Just get Jim to code review it and you can push it to 9-dev yourself, since you are a committer. For JDK 8, you need to request approval to backport. If approved by me, then you can push it to 8u-dev. -- Kevin Johan Vos wrote: > Hi Jim, > > Passing the contentWidth to the update() fixes the problem as well, and if > the excessive memory is not needed (as in my proposal), this is of course > much better. > Can I create an issue and suggest the following patch (this is for 8, but I > can do a similar for 9)? > > - Johan > > --- a/modules/graphics/src/main/java/com/sun/prism/impl/BaseContext.java Thu > Mar 03 03:22:09 2016 +0100 > > +++ b/modules/graphics/src/main/java/com/sun/prism/impl/BaseContext.java Wed > Mar 09 10:59:35 2016 +0100 > > @@ -104,7 +104,7 @@ > > // since it was bound and unflushed... > > maskTex.update(maskBuffer, maskTex.getPixelFormat(), > > 0, 0, 0, 0, highMaskCol, nextMaskRow, > > - maskTex.getPhysicalWidth(), true); > > + maskTex.getContentWidth(), true); > > maskTex.unlock(); > > curMaskRow = curMaskCol = nextMaskRow = highMaskCol = 0; > > } > > On Tue, Mar 8, 2016 at 10:43 PM, Jim Graham wrote: > > >> I think I see the issue. >> >> In the code that calls maskTex.update(...) it passes >> maskTex.physicalWidth() as the scan stride of the buffer, but the scan >> stride of the buffer is based on the content size, not the physical size. >> Thus, the checkUpdateParams() method overestimates how many bytes are >> consumed by the operation. >> >> Changing that to maskTex.getContentWidth() should be fine... >> >> ...jim >> >> On 3/8/16 6:14 AM, Johan Vos wrote: >> >> >>> We got a number of bug reports (on Android and iOS) reported by developers >>> using large images: >>> >>> java.lang.IllegalArgumentException: Upload requires 2475266 elements, but >>> only 1549938 elements remain in the buffer >>> >>> at com.sun.prism.impl.BaseTexture.checkUpdateParams(BaseTexture.java:354) >>> >>> at com.sun.prism.es2.ES2Texture.update(ES2Texture.java:640) >>> >>> at com.sun.prism.impl.BaseContext.flushVertexBuffer(BaseContext.java:106) >>> >>> at com.sun.prism.impl.BaseContext.updateMaskTexture(BaseContext.java:248) >>> >>> at >>> com.sun.prism.impl.ps >>> .BaseShaderGraphics.renderShape(BaseShaderGraphics.java:482) >>> >>> >>> I traced this down to the following: >>> >>> initially, a buffer of [1024 * 1024] is allocated by >>> BaseContext.validateMaskTexture. When the MaskData becomes bigger than >>> 1024 >>> (w or h), a new buffer is allocated with capacity [newTexW * newTexH] with >>> newTexW and newTexH the new width/height that are passed when creating a >>> new Texture. However, the physical size of the texture can be different -- >>> e.g. >>> >>> ES2Texture.create (ES2Context, PixelFormat, WrapMode, int, int, bool) will >>> in some cases set the real texWidth/height to the next power of 2. >>> >>> Subsequently, in next rendering loops when the Texture needs to be >>> updated, >>> it is checked whether the capacity of the buffer is large enough to hold >>> the texture. In this case, the physical width is passed and the buffer is >>> not large enough. >>> >>> Adding the following two lines in BaseContext.validateMaskTexture() (line >>> 220) fixes the problem: >>> >>> newTexW = Math.max(newTexW, maskTex.getPhysicalWidth()); >>> >>> newTexH = Math.max(newTexH, maskTex.getPhysicalHeight()); >>> >>> Using this patch, the size of the buffer will take the physical size of >>> the >>> texture into account. I'm not sure this is the best approach though. >>> >>> - Johan >>> >>> >>> From David.Hill at Oracle.com Wed Mar 9 17:34:34 2016 From: David.Hill at Oracle.com (David Hill) Date: Wed, 09 Mar 2016 12:34:34 -0500 Subject: review for paper test Message-ID: <56E05EAA.7070700@Oracle.com> Phil, could you review: JobSettingsTest.testPaper fails with small paper sizes Simple fix, make the margins that don't fit 10% of the page dimension https://bugs.openjdk.java.net/browse/JDK-8149756 http://cr.openjdk.java.net/~ddhill/8149756/ -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From james.graham at oracle.com Wed Mar 9 23:26:00 2016 From: james.graham at oracle.com (Jim Graham) Date: Wed, 9 Mar 2016 15:26:00 -0800 Subject: buffer too small In-Reply-To: References: <56DF4793.9040401@oracle.com> Message-ID: <56E0B108.5030907@oracle.com> Hi Johan, That sounds like the fix then. Note that there is another optimization issue here that could be addressed in a follow-on - basically when a larger physical size is allocated, then we could expand the content dimensions to match what was allocated. We would possibly need a new method on the Texture to do something like "getMaxContentW/H()" and "setContentW/H()", and that could avoid reallocating a texture in that case... ...jim On 3/9/16 2:01 AM, Johan Vos wrote: > Hi Jim, > > Passing the contentWidth to the update() fixes the problem as well, and > if the excessive memory is not needed (as in my proposal), this is of > course much better. > Can I create an issue and suggest the following patch (this is for 8, > but I can do a similar for 9)? > > - Johan > > --- > a/modules/graphics/src/main/java/com/sun/prism/impl/BaseContext.javaThu > Mar 03 03:22:09 2016 +0100 > > +++ > b/modules/graphics/src/main/java/com/sun/prism/impl/BaseContext.javaWed > Mar 09 10:59:35 2016 +0100 > > @@ -104,7 +104,7 @@ > > // since it was bound and unflushed... > > maskTex.update(maskBuffer, maskTex.getPixelFormat(), > > 0, 0, 0, 0, highMaskCol, nextMaskRow, > > - maskTex.getPhysicalWidth(), true); > > + maskTex.getContentWidth(), true); > > maskTex.unlock(); > > curMaskRow = curMaskCol = nextMaskRow = highMaskCol = 0; > > } > > > On Tue, Mar 8, 2016 at 10:43 PM, Jim Graham > wrote: > > I think I see the issue. > > In the code that calls maskTex.update(...) it passes > maskTex.physicalWidth() as the scan stride of the buffer, but the > scan stride of the buffer is based on the content size, not the > physical size. Thus, the checkUpdateParams() method overestimates > how many bytes are consumed by the operation. > > Changing that to maskTex.getContentWidth() should be fine... > > ...jim > > On 3/8/16 6:14 AM, Johan Vos wrote: > > We got a number of bug reports (on Android and iOS) reported by > developers > using large images: > > java.lang.IllegalArgumentException: Upload requires 2475266 > elements, but > only 1549938 elements remain in the buffer > > at > com.sun.prism.impl.BaseTexture.checkUpdateParams(BaseTexture.java:354) > > at com.sun.prism.es2.ES2Texture.update(ES2Texture.java:640) > > at > com.sun.prism.impl.BaseContext.flushVertexBuffer(BaseContext.java:106) > > at > com.sun.prism.impl.BaseContext.updateMaskTexture(BaseContext.java:248) > > at > com.sun.prism.impl.ps > .BaseShaderGraphics.renderShape(BaseShaderGraphics.java:482) > > > I traced this down to the following: > > initially, a buffer of [1024 * 1024] is allocated by > BaseContext.validateMaskTexture. When the MaskData becomes > bigger than 1024 > (w or h), a new buffer is allocated with capacity [newTexW * > newTexH] with > newTexW and newTexH the new width/height that are passed when > creating a > new Texture. However, the physical size of the texture can be > different -- > e.g. > > ES2Texture.create (ES2Context, PixelFormat, WrapMode, int, int, > bool) will > in some cases set the real texWidth/height to the next power of 2. > > Subsequently, in next rendering loops when the Texture needs to > be updated, > it is checked whether the capacity of the buffer is large enough > to hold > the texture. In this case, the physical width is passed and the > buffer is > not large enough. > > Adding the following two lines in > BaseContext.validateMaskTexture() (line > 220) fixes the problem: > > newTexW = Math.max(newTexW, > maskTex.getPhysicalWidth()); > > newTexH = Math.max(newTexH, > maskTex.getPhysicalHeight()); > > Using this patch, the size of the buffer will take the physical > size of the > texture into account. I'm not sure this is the best approach though. > > - Johan > > From kevin.rushforth at oracle.com Thu Mar 10 00:30:09 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 09 Mar 2016 16:30:09 -0800 Subject: [9] Review request: 8151565: Exclude FX class files from javadoc classpath to workaround JDK-8151191 Message-ID: <56E0C011.5050203@oracle.com> Chien, Please review the following change to workaround a JDK 9 javac bug when generating our javadocs" https://bugs.openjdk.java.net/browse/JDK-8151565 http://cr.openjdk.java.net/~kcr/8151565/webrev.00/ -- Kevin From kevin.rushforth at oracle.com Thu Mar 10 04:06:00 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 09 Mar 2016 20:06:00 -0800 Subject: HEADS-UP: Jigsaw is coming for FX 9 Message-ID: <56E0F2A8.5030602@oracle.com> We are preparing for the upcoming Jigsaw integration [1] and I wanted to give a brief heads-up concerning the steps leading up to this. * As an interim step we will start building FX with a pre-Jigsaw version of JDK 9 (likely build 109) [2] * I will send out a webrev soon with the changes for JDK 9 based on the then-current jake sandbox [3] * I will integrate the FX 9 Jigsaw changes the same week (for the same build) that the Jigsaw changes go into JDK 9 The target for the integration is later this month, so we plan to do the first two steps within the next week: the webrev will likely go out on Monday and the upgrade to JDK 9 will probably be next Thursday, if we encounter no problems. -- Kevin [1] http://mail.openjdk.java.net/pipermail/jigsaw-dev/2016-March/006525.html [2] https://bugs.openjdk.java.net/browse/JDK-8149964 [3] http://hg.openjdk.java.net/openjfx/sandbox-9-jake/rt From guenther.jeffrey at gmail.com Thu Mar 10 17:50:23 2016 From: guenther.jeffrey at gmail.com (Jeffrey Guenther) Date: Thu, 10 Mar 2016 09:50:23 -0800 Subject: Learning Prism In-Reply-To: References: <13B9043F-73E1-45B2-B43A-ED3FEDB737F4@gmail.com> Message-ID: Thanks for the tips Johan and Morris! Very helpful! > On Mar 8, 2016, at 3:22 AM, Johan Vos wrote: > > Hi, > > I think the best way to get started really depends on your personal preferences (e.g. do you like to read code, docs, diagrams,...). > I can only comment on how I do it, but others may have other approaches: > > First of all, you can run a simple JavaFX apps with lots of verbose info. See com.sun.prism.impl.PrismSettings for a list, and have at least prism.verbose set to true. This already gives you lots of insight in what is happening. > > Second, you want to know what happens on a pulse. Although many complex things are happening, this is not very hard to detect from the code: start from QuantumToolkit.pulse() and follow it from there. There are basically two main parts: > * do the calculations (on the FX Thread) (e.g. look at Scene.ScenePulseListener.pulse()) > * do the rendering (PaintCollector.renderAll() which will ultimately call QuantumRenderer.submitRenderJob() which runs on the Prism thread). > > - Johan > > > On Tue, Mar 8, 2016 at 5:34 AM, Felix Bembrick > wrote: > +1 > > I too would love to dive as deep as possible and improve anything that > needs improving so some guidance would help greatly! > > Felix > > On 8 March 2016 at 14:45, Jeffrey Guenther > > wrote: > > > Hi Devs, > > > > I?m interested in learning more about JavaFX?s low level graphics > > implementation. I?ve spent a couple afternoons source diving in the > > modules/graphics folder to get the lay of the land and now I think I need > > some help. Can anyone point me to documentation describing the system?s > > high level design? Let?s say one or two levels deeper than > > http://docs.oracle.com/javafx/2/architecture/jfxpub-architecture.htm ? < > > http://docs.oracle.com/javafx/2/architecture/jfxpub-architecture.htm ?> > > > > Ultimately, I?d like to gain a better understanding on how JavaFX lays out > > and renders text for the purposes of understanding how I might be able to > > contribute to a more advanced text API with support for things like kerning. > > > > Secondly, can anyone explain to me how shaders are compiled and passed > > down to the graphics layer? I?d like to gain a better understanding of how > > a JavaFX programmer could leverage/add to Prism such that we can write > > custom shaders/GPU kernels for Effects nodes. > > > > I realize the graphics system in JavaFX is not for the faint of heart. > > There?s much going on beneath the surface. I?m willing to dive deep and do > > the learning to understand the design. Can anyone point me to docs where I > > can get started? Or maybe which class to start with and work out from when > > I?m source diving? > > > > Jeff > From kevin.rushforth at oracle.com Thu Mar 10 19:48:42 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Thu, 10 Mar 2016 11:48:42 -0800 Subject: [9] Review request: 8150307: Some tests fail when run on JDK 9 due to use of -Djava.ext.dirs Message-ID: <56E1CF9A.8050007@oracle.com> Hi Dave, Can you review the following? https://bugs.openjdk.java.net/browse/JDK-8150307 http://cr.openjdk.java.net/~kcr/8150307/webrev.00/ It should be the last code change needed prior to switching to JDK 9. Thanks. -- Kevin From james.graham at oracle.com Thu Mar 10 21:22:48 2016 From: james.graham at oracle.com (Jim Graham) Date: Thu, 10 Mar 2016 13:22:48 -0800 Subject: buffer too small In-Reply-To: <56E0B108.5030907@oracle.com> References: <56DF4793.9040401@oracle.com> <56E0B108.5030907@oracle.com> Message-ID: <56E1E5A8.7010503@oracle.com> I thought this sounded familiar. I remember having the thought before, but forgot that I actually did something about this already in another part of the code. Both of those sets of methods already exist and they are used in the decora ImagePool object to avoid having to allocate a larger scratch texture when this over-allocation occurs. Similar code should be used in the updates of the maskTex object. It would probably be worthwhile to immediately adjust it to maxContent dimensions right after it is allocated. That doesn't obviate the fix below, but it adds an optimization... ...jim On 3/9/16 3:26 PM, Jim Graham wrote: > Hi Johan, > > That sounds like the fix then. > > Note that there is another optimization issue here that could be > addressed in a follow-on - basically when a larger physical size is > allocated, then we could expand the content dimensions to match what was > allocated. We would possibly need a new method on the Texture to do > something like "getMaxContentW/H()" and "setContentW/H()", and that > could avoid reallocating a texture in that case... > > ...jim > > On 3/9/16 2:01 AM, Johan Vos wrote: >> Hi Jim, >> >> Passing the contentWidth to the update() fixes the problem as well, and >> if the excessive memory is not needed (as in my proposal), this is of >> course much better. >> Can I create an issue and suggest the following patch (this is for 8, >> but I can do a similar for 9)? >> >> - Johan >> >> --- >> a/modules/graphics/src/main/java/com/sun/prism/impl/BaseContext.javaThu >> Mar 03 03:22:09 2016 +0100 >> >> +++ >> b/modules/graphics/src/main/java/com/sun/prism/impl/BaseContext.javaWed >> Mar 09 10:59:35 2016 +0100 >> >> @@ -104,7 +104,7 @@ >> >> // since it was bound and unflushed... >> >> maskTex.update(maskBuffer, maskTex.getPixelFormat(), >> >> 0, 0, 0, 0, highMaskCol, nextMaskRow, >> >> - maskTex.getPhysicalWidth(), true); >> >> + maskTex.getContentWidth(), true); >> >> maskTex.unlock(); >> >> curMaskRow = curMaskCol = nextMaskRow = highMaskCol = 0; >> >> } >> >> >> On Tue, Mar 8, 2016 at 10:43 PM, Jim Graham > > wrote: >> >> I think I see the issue. >> >> In the code that calls maskTex.update(...) it passes >> maskTex.physicalWidth() as the scan stride of the buffer, but the >> scan stride of the buffer is based on the content size, not the >> physical size. Thus, the checkUpdateParams() method overestimates >> how many bytes are consumed by the operation. >> >> Changing that to maskTex.getContentWidth() should be fine... >> >> ...jim >> >> On 3/8/16 6:14 AM, Johan Vos wrote: >> >> We got a number of bug reports (on Android and iOS) reported by >> developers >> using large images: >> >> java.lang.IllegalArgumentException: Upload requires 2475266 >> elements, but >> only 1549938 elements remain in the buffer >> >> at >> >> com.sun.prism.impl.BaseTexture.checkUpdateParams(BaseTexture.java:354) >> >> at com.sun.prism.es2.ES2Texture.update(ES2Texture.java:640) >> >> at >> >> com.sun.prism.impl.BaseContext.flushVertexBuffer(BaseContext.java:106) >> >> at >> >> com.sun.prism.impl.BaseContext.updateMaskTexture(BaseContext.java:248) >> >> at >> com.sun.prism.impl.ps >> >> .BaseShaderGraphics.renderShape(BaseShaderGraphics.java:482) >> >> >> >> I traced this down to the following: >> >> initially, a buffer of [1024 * 1024] is allocated by >> BaseContext.validateMaskTexture. When the MaskData becomes >> bigger than 1024 >> (w or h), a new buffer is allocated with capacity [newTexW * >> newTexH] with >> newTexW and newTexH the new width/height that are passed when >> creating a >> new Texture. However, the physical size of the texture can be >> different -- >> e.g. >> >> ES2Texture.create (ES2Context, PixelFormat, WrapMode, int, int, >> bool) will >> in some cases set the real texWidth/height to the next power >> of 2. >> >> Subsequently, in next rendering loops when the Texture needs to >> be updated, >> it is checked whether the capacity of the buffer is large enough >> to hold >> the texture. In this case, the physical width is passed and the >> buffer is >> not large enough. >> >> Adding the following two lines in >> BaseContext.validateMaskTexture() (line >> 220) fixes the problem: >> >> newTexW = Math.max(newTexW, >> maskTex.getPhysicalWidth()); >> >> newTexH = Math.max(newTexH, >> maskTex.getPhysicalHeight()); >> >> Using this patch, the size of the buffer will take the physical >> size of the >> texture into account. I'm not sure this is the best approach >> though. >> >> - Johan >> >> From vadim.pakhnushev at oracle.com Fri Mar 11 14:31:08 2016 From: vadim.pakhnushev at oracle.com (Vadim Pakhnushev) Date: Fri, 11 Mar 2016 17:31:08 +0300 Subject: In(Sanity) Testing Mondays Message-ID: <56E2D6AC.1050405@oracle.com> Reminder, Monday is our weekly sanity testing. You can find your testing assignment at: https://wiki.openjdk.java.net/display/OpenJFX/Sanity+Testing Also please remember that the repo will be locked from 1am PST until 1pm PST. Happy testing! Thanks, Vadim From swpalmer at gmail.com Fri Mar 11 18:28:46 2016 From: swpalmer at gmail.com (Scott Palmer) Date: Fri, 11 Mar 2016 13:28:46 -0500 Subject: Profiling JavaFX Apps Not Working Message-ID: When I connect a profiler to my application with jvisualvm I get a constant stream of exceptions: Exception in thread "Thread-9" java.lang.NoClassDefFoundError: com/sun/javafx/tk/quantum/QuantumToolkit$$Lambda$54 When I mouse over the UI, I get even more: Exception in thread "JavaFX Application Thread" java.lang.NoClassDefFoundError: com/sun/javafx/tk/quantum/GlassViewEventHandler$$Lambda$523 at com.sun.javafx.tk.quantum.GlassViewEventHandler$$Lambda$523/2001213433.get$Lambda(Unknown Source) at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:387) at com.sun.glass.ui.View.handleMouseEvent(View.java:555) at com.sun.glass.ui.View.notifyMouse(View.java:937) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191) at java.lang.Thread.run(Thread.java:745) Is there a known issue with the profiler (in NetBeans and JvisualVM) and Lambdas or something? While the profiler is being configured there are warnings as well: "Redefinition failed with error 62" I can make that go away by passing -Xversify:none which I found after a bit of googling... but the exceptions remain. I'm running JDK 8u72. Regards, Scott From David.Hill at Oracle.com Fri Mar 11 20:45:20 2016 From: David.Hill at Oracle.com (David Hill) Date: Fri, 11 Mar 2016 15:45:20 -0500 Subject: jake: enabling systemTests Message-ID: <56E32E60.3010209@Oracle.com> Kevin, if you could review: Enable systemTests in jake https://bugs.openjdk.java.net/browse/JDK-8147399 http://cr.openjdk.java.net/~ddhill/8147399.2/ -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From swpalmer at gmail.com Fri Mar 11 22:18:56 2016 From: swpalmer at gmail.com (Scott Palmer) Date: Fri, 11 Mar 2016 17:18:56 -0500 Subject: reapplyCss() Is called too many times when adding a node hierarchy to the Scene Message-ID: I think I've discovered a significant performance issue with CSS processing... Adding a Node hierarchy to a Scene leads to javafx.scene.node.setScenes(Scene, SubScene) being called. This leads a walk down the Node hierarchy like so: setScenes -> invalidatedScenes -> scenesChanged -> setScenes // on child Nodes -- recursion -> impl_reapplyCSS() ->reapplyCss() loops over children calling reapplyCss() on each - recursive The thing to note there is: * invalidatedScenes decides if it is going to call impl_reapplyCSS() * invalidatedScenes calls scenesChanged which calls setScenes on all children which leads to invalidateScenes being called recursively on the node hierarchy * invalidatedScenes calls impl_reapplyCSS() As the setScene call walks down the node hierarchy it gets to a leaf node and then calls impl_reapplyCSS() which will call reapplyCss() recursively. Since when reapplyCss() returns the cssFlag for the node will be set back to UPDATE, so when the parent calls impl_reapplyCSS() the CSS is recursively applied to the Nodes that just had CSS applied! Am I missing something? I made a quick test case where I add a VBox containing another VBox containing a Rectangle to the Scene when I press a button. I can confirm that reapplyCss() is called THREE times for the Rectangle, twice for the "middle" VBox, and once on the "top" VBox. Obviously the deeper the hierarchy the worse this gets. Scott From david.grieve at oracle.com Fri Mar 11 22:33:50 2016 From: david.grieve at oracle.com (David Grieve) Date: Fri, 11 Mar 2016 17:33:50 -0500 Subject: reapplyCss() Is called too many times when adding a node hierarchy to the Scene In-Reply-To: References: Message-ID: <56E347CE.90509@oracle.com> There is (was?) some code in Node or Parent that was supposed to prevent this. Namely, I thought I had it so CSS was applied from the parent before applying to the children. It may also depend on how you add the nodes to the scene. On 3/11/16 5:18 PM, Scott Palmer wrote: > I think I've discovered a significant performance issue with CSS > processing... > > Adding a Node hierarchy to a Scene leads to > javafx.scene.node.setScenes(Scene, SubScene) being called. This leads a > walk down the Node hierarchy like so: > > setScenes > -> invalidatedScenes > -> scenesChanged > -> setScenes // on child Nodes -- recursion > -> impl_reapplyCSS() > ->reapplyCss() > loops over children calling reapplyCss() on each - recursive > > The thing to note there is: > * invalidatedScenes decides if it is going to call impl_reapplyCSS() > * invalidatedScenes calls scenesChanged which calls setScenes on all > children which leads to invalidateScenes being called recursively on the > node hierarchy > * invalidatedScenes calls impl_reapplyCSS() > > As the setScene call walks down the node hierarchy it gets to a leaf node > and then calls impl_reapplyCSS() which will call reapplyCss() recursively. > Since when reapplyCss() returns the cssFlag for the node will be set back > to UPDATE, so when the parent calls impl_reapplyCSS() the CSS is > recursively applied to the Nodes that just had CSS applied! > > Am I missing something? > > I made a quick test case where I add a VBox containing another VBox > containing a Rectangle to the Scene when I press a button. I can confirm > that reapplyCss() is called THREE times for the Rectangle, twice for the > "middle" VBox, and once on the "top" VBox. > > Obviously the deeper the hierarchy the worse this gets. > > Scott From swpalmer at gmail.com Fri Mar 11 23:44:39 2016 From: swpalmer at gmail.com (Scott Palmer) Date: Fri, 11 Mar 2016 18:44:39 -0500 Subject: reapplyCss() Is called too many times when adding a node hierarchy to the Scene In-Reply-To: <56E347CE.90509@oracle.com> References: <56E347CE.90509@oracle.com> Message-ID: I guess it's time to file a bug report! I'll do that as soon as I get home. In our application this is leading to significant pause times (>>1s). In some cases significant CPU is being used for GC that causes some very noticeable stop-the-world pauses. The application is processing live video, so this is more than an irritation. Thanks, Scott > On Mar 11, 2016, at 5:33 PM, David Grieve wrote: > > There is (was?) some code in Node or Parent that was supposed to prevent this. > Namely, I thought I had it so CSS was applied from the parent before applying to the children. > > It may also depend on how you add the nodes to the scene. > >> On 3/11/16 5:18 PM, Scott Palmer wrote: >> I think I've discovered a significant performance issue with CSS >> processing... >> >> Adding a Node hierarchy to a Scene leads to >> javafx.scene.node.setScenes(Scene, SubScene) being called. This leads a >> walk down the Node hierarchy like so: >> >> setScenes >> -> invalidatedScenes >> -> scenesChanged >> -> setScenes // on child Nodes -- recursion >> -> impl_reapplyCSS() >> ->reapplyCss() >> loops over children calling reapplyCss() on each - recursive >> >> The thing to note there is: >> * invalidatedScenes decides if it is going to call impl_reapplyCSS() >> * invalidatedScenes calls scenesChanged which calls setScenes on all >> children which leads to invalidateScenes being called recursively on the >> node hierarchy >> * invalidatedScenes calls impl_reapplyCSS() >> >> As the setScene call walks down the node hierarchy it gets to a leaf node >> and then calls impl_reapplyCSS() which will call reapplyCss() recursively. >> Since when reapplyCss() returns the cssFlag for the node will be set back >> to UPDATE, so when the parent calls impl_reapplyCSS() the CSS is >> recursively applied to the Nodes that just had CSS applied! >> >> Am I missing something? >> >> I made a quick test case where I add a VBox containing another VBox >> containing a Rectangle to the Scene when I press a button. I can confirm >> that reapplyCss() is called THREE times for the Rectangle, twice for the >> "middle" VBox, and once on the "top" VBox. >> >> Obviously the deeper the hierarchy the worse this gets. >> >> Scott > From swpalmer at gmail.com Sat Mar 12 01:06:40 2016 From: swpalmer at gmail.com (Scott Palmer) Date: Fri, 11 Mar 2016 20:06:40 -0500 Subject: reapplyCss() Is called too many times when adding a node hierarchy to the Scene In-Reply-To: <56E347CE.90509@oracle.com> References: <56E347CE.90509@oracle.com> Message-ID: Created https://bugs.openjdk.java.net/browse/JDK-8151756 Please let me know if you find any potential workarounds. In my application I had purposely constructed the entire hierarchy before adding it to the Scene to avoid triggering multiple layout passes, but I think that may have also made this CSS issue a bit worse. I did get a ~20% improvement in response time when updating my UI though. In my UI it is possible that on the order of thousands of controls are added or removed from the Scene in response to the user selecting an item. (It?s not usually that many, but sometimes it is.) The delay before the UI updates can be several seconds. Thanks, Scott > On Mar 11, 2016, at 5:33 PM, David Grieve wrote: > > There is (was?) some code in Node or Parent that was supposed to prevent this. > Namely, I thought I had it so CSS was applied from the parent before applying to the children. > > It may also depend on how you add the nodes to the scene. > > On 3/11/16 5:18 PM, Scott Palmer wrote: >> I think I've discovered a significant performance issue with CSS >> processing... >> >> Adding a Node hierarchy to a Scene leads to >> javafx.scene.node.setScenes(Scene, SubScene) being called. This leads a >> walk down the Node hierarchy like so: >> >> setScenes >> -> invalidatedScenes >> -> scenesChanged >> -> setScenes // on child Nodes -- recursion >> -> impl_reapplyCSS() >> ->reapplyCss() >> loops over children calling reapplyCss() on each - recursive >> >> The thing to note there is: >> * invalidatedScenes decides if it is going to call impl_reapplyCSS() >> * invalidatedScenes calls scenesChanged which calls setScenes on all >> children which leads to invalidateScenes being called recursively on the >> node hierarchy >> * invalidatedScenes calls impl_reapplyCSS() >> >> As the setScene call walks down the node hierarchy it gets to a leaf node >> and then calls impl_reapplyCSS() which will call reapplyCss() recursively. >> Since when reapplyCss() returns the cssFlag for the node will be set back >> to UPDATE, so when the parent calls impl_reapplyCSS() the CSS is >> recursively applied to the Nodes that just had CSS applied! >> >> Am I missing something? >> >> I made a quick test case where I add a VBox containing another VBox >> containing a Rectangle to the Scene when I press a button. I can confirm >> that reapplyCss() is called THREE times for the Rectangle, twice for the >> "middle" VBox, and once on the "top" VBox. >> >> Obviously the deeper the hierarchy the worse this gets. >> >> Scott > From kevin.rushforth at oracle.com Sat Mar 12 15:00:14 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Sat, 12 Mar 2016 07:00:14 -0800 Subject: [9] review request: 8149976: Switch production build of FX to gradle 2.11 Message-ID: <56E42EFE.7090604@oracle.com> Simple patch: just the gradle part of what I pushed to jake sandbox yesterday: https://bugs.openjdk.java.net/browse/JDK-8149976 http://cr.openjdk.java.net/~kcr/8149976/webrev.00/ Getting this in ahead of the JDK 9 switch will ease the transition. -- Kevin From jerome.p.cambon at gmail.com Mon Mar 14 11:00:25 2016 From: jerome.p.cambon at gmail.com (=?utf-8?Q?J=C3=A9rome_Cambon?=) Date: Mon, 14 Mar 2016 12:00:25 +0100 Subject: reapplyCss() Is called too many times when adding a node hierarchy to the Scene In-Reply-To: References: <56E347CE.90509@oracle.com> Message-ID: <4EFADA97-7ABE-4EAB-899D-57358C821622@gmail.com> Hi, Here are the workarounds I have in mind related to this issue: 1. If the content of the scene graph contains similar nodes after the user action, one could use the Node ?managed' and ?visible' properties: setVisible = false setManage = false ?. when a node is not needed, and set it again to true when needed. This allows to re-use the nodes (or hierarchy of nodes) and avoid to re-create them, and also avoid to apply CSS on them (since the nodes are not removed from the scene graph) 2. To avoid to create a bunch of new nodes hierarchy (for instance on each user action): - When a node (or hierarchy of nodes) is removed from the scene graph, put it in a pool. So you?ll have a set of pool for each type of node (or hierarchy of nodes) - When such a node is needed, get it from the pool if available This allows to re-use the nodes and avoid to re-create them (but here the CSS is re-applied, since the nodes are removed/added from the scene graph) Solution 2 is what we used in Scene Builder, for the Inspector panel. Since the content of the panel is rebuilt when an object is selected, we had to optimize this. So we created a set of pools (using Java Stack class) for each Inspector editor (font editor, color editor, style class editor, ?). When an object is selected (from the Content panel), we first clean the Inspector panel and put each editor in its dedicated pool, then fill it by re-using the editors from the pools. If we need more, we create them as needed. You can see this in action this by launching Scene Builder: as you can see, the first display of the Inspector sections are a bit slow, then it becomes quite smooth :-) Hope this help, Jerome > On Mar 12, 2016, at 2:06 AM, Scott Palmer wrote: > > Created https://bugs.openjdk.java.net/browse/JDK-8151756 > > Please let me know if you find any potential workarounds. > > In my application I had purposely constructed the entire hierarchy before adding it to the Scene to avoid triggering multiple layout passes, but I think that may have also made this CSS issue a bit worse. I did get a ~20% improvement in response time when updating my UI though. In my UI it is possible that on the order of thousands of controls are added or removed from the Scene in response to the user selecting an item. (It?s not usually that many, but sometimes it is.) The delay before the UI updates can be several seconds. > > Thanks, > > Scott > >> On Mar 11, 2016, at 5:33 PM, David Grieve wrote: >> >> There is (was?) some code in Node or Parent that was supposed to prevent this. >> Namely, I thought I had it so CSS was applied from the parent before applying to the children. >> >> It may also depend on how you add the nodes to the scene. >> >> On 3/11/16 5:18 PM, Scott Palmer wrote: >>> I think I've discovered a significant performance issue with CSS >>> processing... >>> >>> Adding a Node hierarchy to a Scene leads to >>> javafx.scene.node.setScenes(Scene, SubScene) being called. This leads a >>> walk down the Node hierarchy like so: >>> >>> setScenes >>> -> invalidatedScenes >>> -> scenesChanged >>> -> setScenes // on child Nodes -- recursion >>> -> impl_reapplyCSS() >>> ->reapplyCss() >>> loops over children calling reapplyCss() on each - recursive >>> >>> The thing to note there is: >>> * invalidatedScenes decides if it is going to call impl_reapplyCSS() >>> * invalidatedScenes calls scenesChanged which calls setScenes on all >>> children which leads to invalidateScenes being called recursively on the >>> node hierarchy >>> * invalidatedScenes calls impl_reapplyCSS() >>> >>> As the setScene call walks down the node hierarchy it gets to a leaf node >>> and then calls impl_reapplyCSS() which will call reapplyCss() recursively. >>> Since when reapplyCss() returns the cssFlag for the node will be set back >>> to UPDATE, so when the parent calls impl_reapplyCSS() the CSS is >>> recursively applied to the Nodes that just had CSS applied! >>> >>> Am I missing something? >>> >>> I made a quick test case where I add a VBox containing another VBox >>> containing a Rectangle to the Scene when I press a button. I can confirm >>> that reapplyCss() is called THREE times for the Rectangle, twice for the >>> "middle" VBox, and once on the "top" VBox. >>> >>> Obviously the deeper the hierarchy the worse this gets. >>> >>> Scott >> > From kevin.rushforth at oracle.com Tue Mar 15 02:38:12 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 14 Mar 2016 19:38:12 -0700 Subject: [9] Review request for FX Jigsaw changes Message-ID: <56E77594.8030401@oracle.com> Please review the webrev for reviewing the jigsaw changes for FX. https://bugs.openjdk.java.net/browse/JDK-8092093 http://cr.openjdk.java.net/~kcr/8092093/webrev.00/rt/ http://cr.openjdk.java.net/~kcr/8092093/webrev.00/rt-fxpackager/ I have separated out the in-progress changes to modules/fxpackager* (jdk.packager and jdk.packager.services modules) so they can be reviewed separately. However, they will be pushed along with the other changes as a single changeset. These changes are planned to be integrated into FX 9 at the same time as the JDK changes are integrated (probably next week). They will be synced down to FX 9-dev shortly after that. Please note the following: * The required boot JDK to build FX after the Jigsaw integration will be JDK 9 build 109. We are not yet able to build with a Jigsaw-based JDK 9 as the boot JDK yet, so we will be sticking at JDK 9 build 109 for a few weeks. * gradle 2.11 is required to build using JDK 9 * In addition to building JavaFX as modules for use with a Jigsaw-capable JDK, we still build the "legacy sdk" using the existing pre-Jigsaw layout, including jfxrt.jar, etc. As such, most developers during the transition will hopefully not notice too much change. * If you do want to run tests using the modules, you will need a Jigsaw-based JDK with javafx modules included, and point to that with a JDK9_HOME (likely to be changed to JIGSAW_HOME) env variable. If you actually want to build the JDK (which you will need to do if any module dependencies change), we will send out separate instructions. These will eventually make it onto the OpenJFX Wiki. * The fxpackager modules are disabled by default. To enable them, you need to build a Jigsaw-based JDK *without* the jdk.pacakger* modules and point to that with a JDK9_HOME (likely to be changed to JIGSAW_HOME) env variable. Since most developers will not build in this mode, you need to set 'gradle -PBUILD_FXPACKAGER' to enable building the packager. * I will refresh the webrev tomorrow afternoon, after making a couple of planned changes and reacting to any feedback, and again on Wednesday afternoon. -- Kevin From vadim.pakhnushev at oracle.com Tue Mar 15 10:58:44 2016 From: vadim.pakhnushev at oracle.com (Vadim Pakhnushev) Date: Tue, 15 Mar 2016 13:58:44 +0300 Subject: [9] Review request for FX Jigsaw changes In-Reply-To: <56E77594.8030401@oracle.com> References: <56E77594.8030401@oracle.com> Message-ID: <56E7EAE4.3010304@oracle.com> Looks good to me. Vadim On 15.03.2016 5:38, Kevin Rushforth wrote: > Please review the webrev for reviewing the jigsaw changes for FX. > > https://bugs.openjdk.java.net/browse/JDK-8092093 > > http://cr.openjdk.java.net/~kcr/8092093/webrev.00/rt/ > http://cr.openjdk.java.net/~kcr/8092093/webrev.00/rt-fxpackager/ > > I have separated out the in-progress changes to modules/fxpackager* > (jdk.packager and jdk.packager.services modules) so they can be > reviewed separately. However, they will be pushed along with the other > changes as a single changeset. > > These changes are planned to be integrated into FX 9 at the same time > as the JDK changes are integrated (probably next week). They will be > synced down to FX 9-dev shortly after that. > > Please note the following: > > * The required boot JDK to build FX after the Jigsaw integration will > be JDK 9 build 109. We are not yet able to build with a Jigsaw-based > JDK 9 as the boot JDK yet, so we will be sticking at JDK 9 build 109 > for a few weeks. > > * gradle 2.11 is required to build using JDK 9 > > * In addition to building JavaFX as modules for use with a > Jigsaw-capable JDK, we still build the "legacy sdk" using the existing > pre-Jigsaw layout, including jfxrt.jar, etc. As such, most developers > during the transition will hopefully not notice too much change. > > * If you do want to run tests using the modules, you will need a > Jigsaw-based JDK with javafx modules included, and point to that with > a JDK9_HOME (likely to be changed to JIGSAW_HOME) env variable. If you > actually want to build the JDK (which you will need to do if any > module dependencies change), we will send out separate instructions. > These will eventually make it onto the OpenJFX Wiki. > > * The fxpackager modules are disabled by default. To enable them, you > need to build a Jigsaw-based JDK *without* the jdk.pacakger* modules > and point to that with a JDK9_HOME (likely to be changed to > JIGSAW_HOME) env variable. Since most developers will not build in > this mode, you need to set 'gradle -PBUILD_FXPACKAGER' to enable > building the packager. > > * I will refresh the webrev tomorrow afternoon, after making a couple > of planned changes and reacting to any feedback, and again on > Wednesday afternoon. > > -- Kevin > From swpalmer at gmail.com Tue Mar 15 16:14:57 2016 From: swpalmer at gmail.com (Scott Palmer) Date: Tue, 15 Mar 2016 12:14:57 -0400 Subject: How do I read the output of the Pulse Logger? Message-ID: <2AAC645D-9A05-4DC4-9787-C4BCB75B0DBD@gmail.com> Is there a guideline somewhere that explains how to read the output of the Pulse Logger? For example, what do the two times represent in this PULSE line: PULSE: 569 [1459ms:270ms] At first I guessed is that it was PULSE: [ms:] but that doesn?t seem to hold up. What does the first (usually negative) number mean in the Layout Pass line? T23 (-1563 +1563ms): Layout Pass T23 (1 +4ms): Layout Pass I?ve noticed that the output has some notable differences between my Windows machine and my Mac. On the Mac I don?t seem to be getting the same sort of CSS Pass information. I get only one ?CSS Pass? per pulse and it is almost always telling me something near 0ms: PULSE: 509 [1404ms:286ms] T23 (-1404 +1404ms): Layout Pass T23 (0 +1ms): CSS Pass T23 (1 +6ms): Layout Pass T23 (7 +4ms): Update bounds T23 (11 +0ms): Waiting for previous rendering T23 (11 +0ms): Copy state to render graph but on Windows I get two CSS Passes, one is usually 0ms, the other makes more sense (I?m investigating a performance issue on a Scene with >10k nodes, so some notable amount of CSS time is expected.): PULSE: 2578 [423ms:3362ms] T35 (-423 +423ms): Layout Pass T35 (0 +0ms): CSS Pass T35 (0 +0ms): Layout Pass T35 (0 +2725ms): CSS Pass T35 (2725 +402ms): Layout Pass T35 (3128 +25ms): Update bounds ? This seems a bit strange, as I would think Layout and CSS would not be platform specific. Both systems are running 8u72. I?m also finding Layout times on the Mac are higher than I expected - maybe some CSS time has been rolled in to that log line on the Mac? Regards, Scott From david.grieve at oracle.com Tue Mar 15 16:33:07 2016 From: david.grieve at oracle.com (David Grieve) Date: Tue, 15 Mar 2016 12:33:07 -0400 Subject: How do I read the output of the Pulse Logger? In-Reply-To: <2AAC645D-9A05-4DC4-9787-C4BCB75B0DBD@gmail.com> References: <2AAC645D-9A05-4DC4-9787-C4BCB75B0DBD@gmail.com> Message-ID: <56E83943.5010202@oracle.com> Sometimes the layout might introduce nodes into the scenegraph. If these new nodes also need laid out, CSS is applied to those nodes since style can affect layout. I would expect CSS overhead to be very small unless there are many new nodes being added to the scene (https://bugs.openjdk.java.net/browse/JDK-8151756 notwithstanding) On 3/15/16 12:14 PM, Scott Palmer wrote: > Is there a guideline somewhere that explains how to read the output of the Pulse Logger? > > For example, what do the two times represent in this PULSE line: > > PULSE: 569 [1459ms:270ms] > > At first I guessed is that it was PULSE: [ms:] > but that doesn?t seem to hold up. > > What does the first (usually negative) number mean in the Layout Pass line? > > T23 (-1563 +1563ms): Layout Pass > > T23 (1 +4ms): Layout Pass > > > I?ve noticed that the output has some notable differences between my Windows machine and my Mac. On the Mac I don?t seem to be getting the same sort of CSS Pass information. I get only one ?CSS Pass? per pulse and it is almost always telling me something near 0ms: > > PULSE: 509 [1404ms:286ms] > T23 (-1404 +1404ms): Layout Pass > T23 (0 +1ms): CSS Pass > T23 (1 +6ms): Layout Pass > T23 (7 +4ms): Update bounds > T23 (11 +0ms): Waiting for previous rendering > T23 (11 +0ms): Copy state to render graph > > but on Windows I get two CSS Passes, one is usually 0ms, the other makes more sense (I?m investigating a performance issue on a Scene with >10k nodes, so some notable amount of CSS time is expected.): > > PULSE: 2578 [423ms:3362ms] > T35 (-423 +423ms): Layout Pass > T35 (0 +0ms): CSS Pass > T35 (0 +0ms): Layout Pass > T35 (0 +2725ms): CSS Pass > T35 (2725 +402ms): Layout Pass > T35 (3128 +25ms): Update bounds > ? > > This seems a bit strange, as I would think Layout and CSS would not be platform specific. Both systems are running 8u72. > I?m also finding Layout times on the Mac are higher than I expected - maybe some CSS time has been rolled in to that log line on the Mac? > > Regards, > > Scott From swpalmer at gmail.com Tue Mar 15 18:23:32 2016 From: swpalmer at gmail.com (Scott Palmer) Date: Tue, 15 Mar 2016 14:23:32 -0400 Subject: How do I read the output of the Pulse Logger? In-Reply-To: <56E83943.5010202@oracle.com> References: <2AAC645D-9A05-4DC4-9787-C4BCB75B0DBD@gmail.com> <56E83943.5010202@oracle.com> Message-ID: <2117EF47-82DE-401E-A452-2B54B8E50C7C@gmail.com> In my test I?m running the same application on Windows and Mac, making the same changes to the the scene graph, with the same stylesheets. So I don?t understand the difference I?m seeing. Scott > On Mar 15, 2016, at 12:33 PM, David Grieve wrote: > > Sometimes the layout might introduce nodes into the scenegraph. If these new nodes also need laid out, CSS is applied to those nodes since style can affect layout. I would expect CSS overhead to be very small unless there are many new nodes being added to the scene (https://bugs.openjdk.java.net/browse/JDK-8151756 notwithstanding) > > On 3/15/16 12:14 PM, Scott Palmer wrote: >> Is there a guideline somewhere that explains how to read the output of the Pulse Logger? >> >> For example, what do the two times represent in this PULSE line: >> >> PULSE: 569 [1459ms:270ms] >> >> At first I guessed is that it was PULSE: [ms:] >> but that doesn?t seem to hold up. >> >> What does the first (usually negative) number mean in the Layout Pass line? >> >> T23 (-1563 +1563ms): Layout Pass >> >> T23 (1 +4ms): Layout Pass >> >> >> I?ve noticed that the output has some notable differences between my Windows machine and my Mac. On the Mac I don?t seem to be getting the same sort of CSS Pass information. I get only one ?CSS Pass? per pulse and it is almost always telling me something near 0ms: >> >> PULSE: 509 [1404ms:286ms] >> T23 (-1404 +1404ms): Layout Pass >> T23 (0 +1ms): CSS Pass >> T23 (1 +6ms): Layout Pass >> T23 (7 +4ms): Update bounds >> T23 (11 +0ms): Waiting for previous rendering >> T23 (11 +0ms): Copy state to render graph >> >> but on Windows I get two CSS Passes, one is usually 0ms, the other makes more sense (I?m investigating a performance issue on a Scene with >10k nodes, so some notable amount of CSS time is expected.): >> >> PULSE: 2578 [423ms:3362ms] >> T35 (-423 +423ms): Layout Pass >> T35 (0 +0ms): CSS Pass >> T35 (0 +0ms): Layout Pass >> T35 (0 +2725ms): CSS Pass >> T35 (2725 +402ms): Layout Pass >> T35 (3128 +25ms): Update bounds >> ? >> >> This seems a bit strange, as I would think Layout and CSS would not be platform specific. Both systems are running 8u72. >> I?m also finding Layout times on the Mac are higher than I expected - maybe some CSS time has been rolled in to that log line on the Mac? >> >> Regards, >> >> Scott > From kangzipo at outlook.com Wed Mar 16 22:25:55 2016 From: kangzipo at outlook.com (ZHANG Erkang) Date: Wed, 16 Mar 2016 22:25:55 +0000 Subject: Canvas stops displaying after a few seconds. Message-ID: Hello everyone, I'm trying to display a million ovals in a canvas dynamicly every second. I use a thread as the rendering thread, but my problem is, after a few secondes, the canvas freezes and stops displaying. I guess that the buffer is full so it can't display anymore, but how can I clear up the buffer? The test source code is as follow: public class Main extends Application { public void start(Stage primaryStage) { primaryStage.setTitle("Drawing Operations Test"); Group root = new Group(); Canvas canvas = new Canvas(800, 800); GraphicsContext gc = canvas.getGraphicsContext2D(); drawShapes(gc); root.getChildren().add(canvas); primaryStage.setScene(new Scene(root)); primaryStage.show(); Task task2 = new Task() { public synchronized Void call() throws Exception { while (true) { Thread.sleep(1000); Canvas canvas = gc.getCanvas(); canvas.getGraphicsContext2D().clearRect(0, 0, canvas.getHeight(), canvas.getWidth()); drawShapes(canvas.getGraphicsContext2D()); } } }; Thread t = new Thread(task2); t.start(); } private void drawShapes(GraphicsContext gc) { gc.setFill(Color.GREEN); gc.setStroke(Color.BLUE); gc.setLineWidth(1); double widthOval=1; double heightOval = 1; for (int i = 0; i < 500; ++i) { for (int j = 0; j < 500; ++j) { if (Math.random() < 0.5) { gc.fillOval(i * widthOval, j * heightOval, widthOval, heightOval); } else { gc.strokeOval(i * widthOval, j * heightOval, widthOval, heightOval); } } } } public static void main(String[] args) { launch(args); } } Can anyone help me? Thanks in advance, Pierre From tom.schindl at bestsolution.at Wed Mar 16 23:54:16 2016 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Thu, 17 Mar 2016 00:54:16 +0100 Subject: Canvas stops displaying after a few seconds. In-Reply-To: References: Message-ID: <56E9F228.8020709@bestsolution.at> You need to interface with the Canvas on the JavaFX-Thread, or even better don't use a Thread use Timeline with a KeyFrame. Tom On 16.03.16 23:25, ZHANG Erkang wrote: > Hello everyone, > > > I'm trying to display a million ovals in a canvas dynamicly every second. I use a thread as the rendering thread, but my problem is, after a few secondes, the canvas freezes and stops displaying. I guess that the buffer is full so it can't display anymore, but how can I clear up the buffer? The test source code is as follow: > > > public class Main extends Application { > > public void start(Stage primaryStage) { > primaryStage.setTitle("Drawing Operations Test"); > Group root = new Group(); > Canvas canvas = new Canvas(800, 800); > GraphicsContext gc = canvas.getGraphicsContext2D(); > drawShapes(gc); > root.getChildren().add(canvas); > primaryStage.setScene(new Scene(root)); > primaryStage.show(); > Task task2 = new Task() > { > public synchronized Void call() throws Exception { > while (true) { > Thread.sleep(1000); > Canvas canvas = gc.getCanvas(); > canvas.getGraphicsContext2D().clearRect(0, 0, canvas.getHeight(), canvas.getWidth()); > drawShapes(canvas.getGraphicsContext2D()); > > } > } > }; > Thread t = new Thread(task2); > t.start(); > } > > private void drawShapes(GraphicsContext gc) { > gc.setFill(Color.GREEN); > gc.setStroke(Color.BLUE); > gc.setLineWidth(1); > double widthOval=1; > double heightOval = 1; > for (int i = 0; i < 500; ++i) { > for (int j = 0; j < 500; ++j) { > > if (Math.random() < 0.5) { > gc.fillOval(i * widthOval, j * heightOval, widthOval, heightOval); > } > else { > gc.strokeOval(i * widthOval, j * heightOval, widthOval, heightOval); > } > } > } > } > > public static void main(String[] args) { > launch(args); > } > } > > > > Can anyone help me? > > Thanks in advance, > > Pierre > -- Thomas Schindl, CTO BestSolution.at EDV Systemhaus GmbH Eduard-Bodem-Gasse 5-7, A-6020 Innsbruck http://www.bestsolution.at/ Reg. Nr. FN 222302s am Firmenbuchgericht Innsbruck From kevin.rushforth at oracle.com Thu Mar 17 03:00:17 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 16 Mar 2016 20:00:17 -0700 Subject: [9] Review request for FX Jigsaw changes In-Reply-To: <56E77594.8030401@oracle.com> References: <56E77594.8030401@oracle.com> Message-ID: <56EA1DC1.7020609@oracle.com> Here are the proposed final webrevs barring any last minute problems: https://bugs.openjdk.java.net/browse/JDK-8092093 http://cr.openjdk.java.net/~kcr/8092093/webrev.01/rt/ http://cr.openjdk.java.net/~kcr/8092093/webrev.01/rt-fxpackager/ Here are the delta webrevs from version 00. There is no change to fxpackager in version 01: http://cr.openjdk.java.net/~kcr/8092093/webrev.delta-00-01/rt/ http://cr.openjdk.java.net/~kcr/8092093/webrev.delta-00-01/rt-fxpackager/ -- Kevin Kevin Rushforth wrote: > Please review the webrev for reviewing the jigsaw changes for FX. > > https://bugs.openjdk.java.net/browse/JDK-8092093 > > http://cr.openjdk.java.net/~kcr/8092093/webrev.00/rt/ > http://cr.openjdk.java.net/~kcr/8092093/webrev.00/rt-fxpackager/ > > I have separated out the in-progress changes to modules/fxpackager* > (jdk.packager and jdk.packager.services modules) so they can be > reviewed separately. However, they will be pushed along with the other > changes as a single changeset. > > These changes are planned to be integrated into FX 9 at the same time > as the JDK changes are integrated (probably next week). They will be > synced down to FX 9-dev shortly after that. > > Please note the following: > > * The required boot JDK to build FX after the Jigsaw integration will > be JDK 9 build 109. We are not yet able to build with a Jigsaw-based > JDK 9 as the boot JDK yet, so we will be sticking at JDK 9 build 109 > for a few weeks. > > * gradle 2.11 is required to build using JDK 9 > > * In addition to building JavaFX as modules for use with a > Jigsaw-capable JDK, we still build the "legacy sdk" using the existing > pre-Jigsaw layout, including jfxrt.jar, etc. As such, most developers > during the transition will hopefully not notice too much change. > > * If you do want to run tests using the modules, you will need a > Jigsaw-based JDK with javafx modules included, and point to that with > a JDK9_HOME (likely to be changed to JIGSAW_HOME) env variable. If you > actually want to build the JDK (which you will need to do if any > module dependencies change), we will send out separate instructions. > These will eventually make it onto the OpenJFX Wiki. > > * The fxpackager modules are disabled by default. To enable them, you > need to build a Jigsaw-based JDK *without* the jdk.pacakger* modules > and point to that with a JDK9_HOME (likely to be changed to > JIGSAW_HOME) env variable. Since most developers will not build in > this mode, you need to set 'gradle -PBUILD_FXPACKAGER' to enable > building the packager. > > * I will refresh the webrev tomorrow afternoon, after making a couple > of planned changes and reacting to any feedback, and again on > Wednesday afternoon. > > -- Kevin > From kevin.rushforth at oracle.com Thu Mar 17 03:04:17 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 16 Mar 2016 20:04:17 -0700 Subject: [9] Review request for FX Jigsaw changes In-Reply-To: <56EA1DC1.7020609@oracle.com> References: <56E77594.8030401@oracle.com> <56EA1DC1.7020609@oracle.com> Message-ID: <56EA1EB1.9030809@oracle.com> I should add that the only changes are related to: 1) Renamed JDK9_HOME to JIGSAW_HOME 2) Cleanup FIXME comments -- Kevin Kevin Rushforth wrote: > Here are the proposed final webrevs barring any last minute problems: > > https://bugs.openjdk.java.net/browse/JDK-8092093 > > http://cr.openjdk.java.net/~kcr/8092093/webrev.01/rt/ > http://cr.openjdk.java.net/~kcr/8092093/webrev.01/rt-fxpackager/ > > Here are the delta webrevs from version 00. There is no change to > fxpackager in version 01: > > http://cr.openjdk.java.net/~kcr/8092093/webrev.delta-00-01/rt/ > http://cr.openjdk.java.net/~kcr/8092093/webrev.delta-00-01/rt-fxpackager/ > > -- Kevin > > > Kevin Rushforth wrote: >> Please review the webrev for reviewing the jigsaw changes for FX. >> >> https://bugs.openjdk.java.net/browse/JDK-8092093 >> >> http://cr.openjdk.java.net/~kcr/8092093/webrev.00/rt/ >> http://cr.openjdk.java.net/~kcr/8092093/webrev.00/rt-fxpackager/ >> >> I have separated out the in-progress changes to modules/fxpackager* >> (jdk.packager and jdk.packager.services modules) so they can be >> reviewed separately. However, they will be pushed along with the >> other changes as a single changeset. >> >> These changes are planned to be integrated into FX 9 at the same time >> as the JDK changes are integrated (probably next week). They will be >> synced down to FX 9-dev shortly after that. >> >> Please note the following: >> >> * The required boot JDK to build FX after the Jigsaw integration will >> be JDK 9 build 109. We are not yet able to build with a Jigsaw-based >> JDK 9 as the boot JDK yet, so we will be sticking at JDK 9 build 109 >> for a few weeks. >> >> * gradle 2.11 is required to build using JDK 9 >> >> * In addition to building JavaFX as modules for use with a >> Jigsaw-capable JDK, we still build the "legacy sdk" using the >> existing pre-Jigsaw layout, including jfxrt.jar, etc. As such, most >> developers during the transition will hopefully not notice too much >> change. >> >> * If you do want to run tests using the modules, you will need a >> Jigsaw-based JDK with javafx modules included, and point to that with >> a JDK9_HOME (likely to be changed to JIGSAW_HOME) env variable. If >> you actually want to build the JDK (which you will need to do if any >> module dependencies change), we will send out separate instructions. >> These will eventually make it onto the OpenJFX Wiki. >> >> * The fxpackager modules are disabled by default. To enable them, you >> need to build a Jigsaw-based JDK *without* the jdk.pacakger* modules >> and point to that with a JDK9_HOME (likely to be changed to >> JIGSAW_HOME) env variable. Since most developers will not build in >> this mode, you need to set 'gradle -PBUILD_FXPACKAGER' to enable >> building the packager. >> >> * I will refresh the webrev tomorrow afternoon, after making a couple >> of planned changes and reacting to any feedback, and again on >> Wednesday afternoon. >> >> -- Kevin >> From David.Hill at Oracle.com Thu Mar 17 14:33:19 2016 From: David.Hill at Oracle.com (David Hill) Date: Thu, 17 Mar 2016 10:33:19 -0400 Subject: Documenting our Junit tests Message-ID: <56EAC02F.1070504@Oracle.com> I just added a new page on the OpenJFX wiki. It covers JUnit tests within the OpenJFX build, but in particular covers them in a JDK 9 modular world (Jigsaw). I know that modules does not apply to many people - yet. I wrote this up after I was asked by an engineer about how to rework some existing tests, and quickly realize how much detail I had locked up in my brain. So to set that knowledge free, I put it in a wiki :-) Please let me know if you have any comments, questions, corrections. https://wiki.openjdk.java.net/display/OpenJFX/OpenJFX+unit+tests -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From kevin.rushforth at oracle.com Thu Mar 17 14:55:56 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Thu, 17 Mar 2016 07:55:56 -0700 Subject: [9] Review request for FX Jigsaw changes In-Reply-To: <56EA585C.90005@oracle.com> References: <56E77594.8030401@oracle.com> <56EA1DC1.7020609@oracle.com> <56EA1EB1.9030809@oracle.com> <56EA585C.90005@oracle.com> Message-ID: <56EAC57C.4080908@oracle.com> It is transitional, and will be eliminated later once we are able to use a Jigsaw-enabled JDK 9 as our boot JDK> -- Kevin Alan Bateman wrote: > > On 17/03/2016 03:04, Kevin Rushforth wrote: >> I should add that the only changes are related to: >> >> 1) Renamed JDK9_HOME to JIGSAW_HOME > Is this for transition purposes and it would revert again to JDK9_HOME > later? > > -Alan From Alan.Bateman at oracle.com Thu Mar 17 07:10:20 2016 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Thu, 17 Mar 2016 07:10:20 +0000 Subject: [9] Review request for FX Jigsaw changes In-Reply-To: <56EA1EB1.9030809@oracle.com> References: <56E77594.8030401@oracle.com> <56EA1DC1.7020609@oracle.com> <56EA1EB1.9030809@oracle.com> Message-ID: <56EA585C.90005@oracle.com> On 17/03/2016 03:04, Kevin Rushforth wrote: > I should add that the only changes are related to: > > 1) Renamed JDK9_HOME to JIGSAW_HOME Is this for transition purposes and it would revert again to JDK9_HOME later? -Alan From kevin.rushforth at oracle.com Thu Mar 17 21:18:24 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Thu, 17 Mar 2016 14:18:24 -0700 Subject: jigsaw/m3 Message-ID: <56EB1F20.8060301@oracle.com> A snapshot of the JDK changes for Jigsaw have been pushed to a staging forest [1] on openjdk as Alan Bateman indicated in message to jigsaw-dev [2] a short time ago. This was done as a single collapsed changeset per repo. I have just done the same for FX [3]. The plan, as indicated by Alan, is to push both JDK and FX changes to the 9 master forest for next week's jdk-9+111 EA build. -- Kevin [1] http://hg.openjdk.java.net/jigsaw/m3 [2] http://mail.openjdk.java.net/pipermail/jigsaw-dev/2016-March/006945.html [3] http://hg.openjdk.java.net/openjfx/9-jake-m3/rt From chien.yang at oracle.com Thu Mar 17 22:09:09 2016 From: chien.yang at oracle.com (Chien Yang) Date: Thu, 17 Mar 2016 15:09:09 -0700 Subject: [9] API Review Request: 8144556 - Add support to allow user specified rendering order Message-ID: <56EB2B05.6040008@oracle.com> Hi Kevin and all, Please review the following new API proposal to add a priorityOrder property to Node: JIRA: https://bugs.openjdk.java.net/browse/JDK-8144556 Here is a prototype of the implementation with a simple toy example if you wish to play with: Webrev: http://cr.openjdk.java.net/~ckyang/JDK-8144556/prototype/ I will be on vacation for a week starting tomorrow so my response may be delayed. Thanks, - Chien From robert.zenz at sibvisions.com Fri Mar 18 07:44:04 2016 From: robert.zenz at sibvisions.com (Robert Zenz) Date: Fri, 18 Mar 2016 07:44:04 +0000 Subject: [9] API Review Request: 8144556 - Add support to allow user specified rendering order In-Reply-To: <56EB2B05.6040008@oracle.com> References: <56EB2B05.6040008@oracle.com> Message-ID: <56EBB1D3.3090504@sibvisions.com> Please excuse my hijacking, but JDK-8091101 seems to be a duplicate of this one (or the other way round, for that matter). https://bugs.openjdk.java.net/browse/JDK-8091101 On 17.03.2016 23:09, Chien Yang wrote: > Hi Kevin and all, > > Please review the following new API proposal to add a priorityOrder > property to Node: > > JIRA: https://bugs.openjdk.java.net/browse/JDK-8144556 > > Here is a prototype of the implementation with a simple toy example if > you wish to play with: > > Webrev: http://cr.openjdk.java.net/~ckyang/JDK-8144556/prototype/ > > I will be on vacation for a week starting tomorrow so my response may be > delayed. > > Thanks, > - Chien From fastegal at swingempire.de Fri Mar 18 09:45:33 2016 From: fastegal at swingempire.de (fastegal at swingempire.de) Date: Fri, 18 Mar 2016 10:45:33 +0100 Subject: FX-9: Plans for InputMap? Message-ID: <20160318104533.Horde.6desSI_nAxrrC6ReIeroHw1@webmail.df.eu> when experimenting with custom (or extended) skins, I noticed that I can barely live without InputMap. If I had to, I would end up in re-implementing the whole thingy. What are the chances for moving it into public scope? Cheers Jeanette From fastegal at swingempire.de Fri Mar 18 09:56:12 2016 From: fastegal at swingempire.de (fastegal at swingempire.de) Date: Fri, 18 Mar 2016 10:56:12 +0100 Subject: FX-9: strange (?) factory pattern in BehaviorBase: Message-ID: <20160318105612.Horde.PNVZO_ubrrniB1ulm9RoJQ6@webmail.df.eu> The implementation of creating/accessing its inputMap looks strange to me: // no field // abstract getter protected abstract InputMap getInputMap(); // implemented factory method protected InputMap createInputMap() { return new InputMap(getNode()); } Now all subclasses (need to) contain the exact same snippets (and we all know that code duplication is the worst smell of all :) // have the field private InputMap myMap; // set the field in constructor super(control); myMap = createInputMap(); // implement getter protected InputMap getInputMap() { return myMap; } Wondering why the field is defered to subclasses? If it were pulled up into base, all the duplicated code in subclasses could be deleted. There must be a reason, but I don't see it - please enlighten me! Cheers Jeanette From vadim.pakhnushev at oracle.com Fri Mar 18 14:29:36 2016 From: vadim.pakhnushev at oracle.com (Vadim Pakhnushev) Date: Fri, 18 Mar 2016 17:29:36 +0300 Subject: In(Sanity) Testing Mondays Message-ID: <56EC10D0.6060705@oracle.com> Reminder, Monday is our weekly sanity testing. You can find your testing assignment at: https://wiki.openjdk.java.net/display/OpenJFX/Sanity+Testing Also please remember that the repo will be locked from 1am PST until 1pm PST. Happy testing! Thanks, Vadim From tomas.mikula at gmail.com Fri Mar 18 17:12:27 2016 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Fri, 18 Mar 2016 13:12:27 -0400 Subject: FX-9: Plans for InputMap? In-Reply-To: <20160318104533.Horde.6desSI_nAxrrC6ReIeroHw1@webmail.df.eu> References: <20160318104533.Horde.6desSI_nAxrrC6ReIeroHw1@webmail.df.eu> Message-ID: Hi Jeanette, before reimplementing the whole thing, please check out my writeup of some use cases [1] and whether WellBehavedFX would serve your needs. Best, Tomas [1] http://htmlpreview.github.io/?https://github.com/TomasMikula/InputMapAPI/blob/master/use-cases.html On Fri, Mar 18, 2016 at 5:45 AM, wrote: > > when experimenting with custom (or extended) skins, I noticed that I can > barely live without InputMap. If I had to, I would end up in > re-implementing the whole thingy. > > What are the chances for moving it into public scope? > > Cheers > Jeanette > > From jonathan.giles at oracle.com Sun Mar 20 22:08:43 2016 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Mon, 21 Mar 2016 11:08:43 +1300 Subject: FX-9: Plans for InputMap? In-Reply-To: <20160318104533.Horde.6desSI_nAxrrC6ReIeroHw1@webmail.df.eu> References: <20160318104533.Horde.6desSI_nAxrrC6ReIeroHw1@webmail.df.eu> Message-ID: <56EF1F6B.8060607@oracle.com> Jeanette, There are no plans to make this into public API for the initial release of JDK 9. Depending on time availability and priorities, it is possible it may make its way into an update release, pending community review and some degree of consensus. -- Jonathan On 18/03/16 10:45 PM, fastegal at swingempire.de wrote: > > when experimenting with custom (or extended) skins, I noticed that I > can barely live without InputMap. If I had to, I would end up in > re-implementing the whole thingy. > > What are the chances for moving it into public scope? > > Cheers > Jeanette > From guru.hb at oracle.com Mon Mar 21 19:24:07 2016 From: guru.hb at oracle.com (Guru Hb) Date: Mon, 21 Mar 2016 12:24:07 -0700 (PDT) Subject: [9] Review request for 8152315 : Don't server / request the Cached resource for if its Main resource is explicitly cancelled In-Reply-To: <15a2a081-054d-4d82-8fff-632d43936d90@default> References: <2efd6ecd-2204-4d66-8ecc-0bb2977f1a09@default> <15a2a081-054d-4d82-8fff-632d43936d90@default> Message-ID: <24e1299d-e6d4-4b1f-bf32-9d1932418c3c@default> Hi Alexander, Arunprasad & Kevin, JBS : https://bugs.openjdk.java.net/browse/JDK-8152315 Webrev : http://cr.openjdk.java.net/~ghb/8152315/webrev.00/ RC and Solution updated in JIRA, fix tested on Windows. Thanks, Guru From kevin.rushforth at oracle.com Tue Mar 22 17:55:53 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Tue, 22 Mar 2016 10:55:53 -0700 Subject: Syncing Jigsaw changes into FX 9-dev Message-ID: <56F18729.7060406@oracle.com> We have integrated the FX Jigsaw changes into 9 (master) for this week's build. I will sync these changes down to FX 9-dev later today. What this means to you is this: * You will need JDK 9 build 109 (a pre-Jigsaw JDK 9 for boot JDK) and gradle 2.11 to continue building FX 9-dev. This is a transitional step to eventually building with a Jigsaw-enabled version of the JDK. * During the transition period, you will be able to build and run FX in "legacy mode" as you did before this change. The JavaFX "legacy" sdk still contains a non-modular jfxrt.jar which will run with JDK 9 build 109. * For those who want to start testing with a Jigsaw-enabled JDK you can either build the JDK yourself or use -Xpatch to override the class files. * We will update our OpenJFX Wiki with instructions on how to build / test * Application developers who just want to grab the latest JDK EA binaries and use them to build / run their application should be aware that Jigsaw modularity is enabled starting with JDK 9 build 111. This means that module boundaries are enabled, so you will not be able to get to com.sun.javafx classes. * The javafx.swt module is not yet available so SWT interop application will not work. This is tracked by JDK-8131888 [1]. * The javapackager -- jdk.packager and jdk.packager.* modules -- is undergoing a pretty significant refactoring to enable it to build and run modular applications -- see JEP 275 [2]. The packager will likely be somewhat unstable for the next few weeks as a result. -- Kevin [1] https://bugs.openjdk.java.net/browse/JDK-8131888 [2] https://bugs.openjdk.java.net/browse/JDK-8080531 From dmitry.markov at oracle.com Wed Mar 23 13:24:35 2016 From: dmitry.markov at oracle.com (dmitry markov) Date: Wed, 23 Mar 2016 16:24:35 +0300 Subject: [9] Review request for 8152551: Null pointer crash in JSC::speculationFromCell (jfxwebkit.dll) Message-ID: <56F29913.5080907@oracle.com> Hello Kevin, Guru, Could you review a fix for 9, please? bug: https://bugs.openjdk.java.net/browse/JDK-8152551 webrev: http://cr.openjdk.java.net/~dmarkov/8152551/webrev.00/ Added a check to prevent null pointer crash inside speculationFromCell() function. Thanks, Dmitry From kevin.rushforth at oracle.com Wed Mar 23 21:11:00 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 23 Mar 2016 14:11:00 -0700 Subject: JDK 8u release renumbering: FX 8u-dev is now 8u102 Message-ID: <56F30664.4080402@oracle.com> The recently released JDK 8u77 release requires a renumbering for subsequent releases. Fixes going into openjfx 8u-dev are now targeted for 8u102. The fixVersion in JBS has been adjusted to reflect this. Please keep this in mind when pushing any approved fixes to 8u-dev. This is for the July quarterly PSU release. Also, as an FYI, the April quarterly PSU release has been renamed from 8u76 to 8u92. -- Kevin From kevin.rushforth at oracle.com Thu Mar 24 16:41:00 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Thu, 24 Mar 2016 09:41:00 -0700 Subject: [9] review request: 8151865: JavaFX Gradle build script fails with Gradle 2.12 Message-ID: <56F4189C.6050502@oracle.com> Hi Dave, Please review the following trivial change to build.gradle to allow building with gradle-2.12 (in addition to earlier versions). https://bugs.openjdk.java.net/browse/JDK-8151865 -- Kevin From vadim.pakhnushev at oracle.com Fri Mar 25 14:29:34 2016 From: vadim.pakhnushev at oracle.com (Vadim Pakhnushev) Date: Fri, 25 Mar 2016 17:29:34 +0300 Subject: In(Sanity) Testing Mondays Message-ID: <56F54B4E.4090103@oracle.com> Reminder, Monday is our weekly sanity testing. You can find your testing assignment at: https://wiki.openjdk.java.net/display/OpenJFX/Sanity+Testing Also please remember that the repo will be locked from 1am PST until 1pm PST. Happy testing! Thanks, Vadim From tai.hu at veroanalytics.com Fri Mar 25 20:12:02 2016 From: tai.hu at veroanalytics.com (Tai Hu) Date: Fri, 25 Mar 2016 16:12:02 -0400 Subject: JavaFX Application Heat up MacBook Pro Message-ID: <3A77AA41-B8F3-40A7-84E3-72A1D6DC4F02@veroanalytics.com> My JavaFX application runs fine on a Windows box with less than 10% of CPU usage. However, if I run the same application on a MacBook Pro 13 inch (Laptop monitor, no external monitor). About 30 seconds after I launched application, MacBook cooling fan will kick in and running high, just a few minutes later, laptop is too hot to put directly on your lap. Actually I tried Ensemble app, which has exactly same issue. Few minutes after launch, fan kicks in and laptop become hot. I put my application under VisualVM and also checked Mac Activity Monitor, based on the number both of them show the CPU usage is not extremely high and average out about 25% and sometimes spike to 40%. But entire machine heats up. Almost all of our Mac clients complained about this issue to us. Does anyone could shield some light on this issue? Thanks, Tai From swpalmer at gmail.com Fri Mar 25 21:03:27 2016 From: swpalmer at gmail.com (Scott Palmer) Date: Fri, 25 Mar 2016 17:03:27 -0400 Subject: JavaFX Application Heat up MacBook Pro In-Reply-To: <3A77AA41-B8F3-40A7-84E3-72A1D6DC4F02@veroanalytics.com> References: <3A77AA41-B8F3-40A7-84E3-72A1D6DC4F02@veroanalytics.com> Message-ID: What version of JavaFX are you running? There is a known issue, where JavaFX (and AWT/Swing) trigger activation of the discreet GPU. I believe for FX the issue has been resolved in the latest version, but the equivalent AWT fix hasn't made it to a released version yet. Scott > On Mar 25, 2016, at 4:12 PM, Tai Hu wrote: > > My JavaFX application runs fine on a Windows box with less than 10% of CPU usage. However, if I run the same application on a MacBook Pro 13 inch (Laptop monitor, no external monitor). About 30 seconds after I launched application, MacBook cooling fan will kick in and running high, just a few minutes later, laptop is too hot to put directly on your lap. Actually I tried Ensemble app, which has exactly same issue. Few minutes after launch, fan kicks in and laptop become hot. I put my application under VisualVM and also checked Mac Activity Monitor, based on the number both of them show the CPU usage is not extremely high and average out about 25% and sometimes spike to 40%. But entire machine heats up. Almost all of our Mac clients complained about this issue to us. Does anyone could shield some light on this issue? > > Thanks, > > Tai From tai.hu at veroanalytics.com Fri Mar 25 21:11:14 2016 From: tai.hu at veroanalytics.com (Tai Hu) Date: Fri, 25 Mar 2016 17:11:14 -0400 Subject: JavaFX Application Heat up MacBook Pro In-Reply-To: References: <3A77AA41-B8F3-40A7-84E3-72A1D6DC4F02@veroanalytics.com> Message-ID: I am on the latest 8u77. On Friday, March 25, 2016, Scott Palmer wrote: > What version of JavaFX are you running? > There is a known issue, where JavaFX (and AWT/Swing) trigger activation of > the discreet GPU. I believe for FX the issue has been resolved in the > latest version, but the equivalent AWT fix hasn't made it to a released > version yet. > > Scott > > > On Mar 25, 2016, at 4:12 PM, Tai Hu > wrote: > > > > My JavaFX application runs fine on a Windows box with less than 10% of > CPU usage. However, if I run the same application on a MacBook Pro 13 inch > (Laptop monitor, no external monitor). About 30 seconds after I launched > application, MacBook cooling fan will kick in and running high, just a few > minutes later, laptop is too hot to put directly on your lap. Actually I > tried Ensemble app, which has exactly same issue. Few minutes after launch, > fan kicks in and laptop become hot. I put my application under VisualVM and > also checked Mac Activity Monitor, based on the number both of them show > the CPU usage is not extremely high and average out about 25% and sometimes > spike to 40%. But entire machine heats up. Almost all of our Mac clients > complained about this issue to us. Does anyone could shield some light on > this issue? > > > > Thanks, > > > > Tai > From kevin.rushforth at oracle.com Fri Mar 25 21:36:49 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 25 Mar 2016 14:36:49 -0700 Subject: JavaFX Application Heat up MacBook Pro In-Reply-To: References: <3A77AA41-B8F3-40A7-84E3-72A1D6DC4F02@veroanalytics.com> Message-ID: <56F5AF71.8030003@oracle.com> Yes, 8u77 has the FX fix for this issue: https://bugs.openjdk.java.net/browse/JDK-8132775 However, due to the way Apple chose to enable this, you will need to package your application with the appropriate entry in the Info.plist file. The equivalent AWT fix -- https://bugs.openjdk.java.net/browse/JDK-8041900 -- is fixed in 8u92 which is scheduled to be released next month. -- Kevin Tai Hu wrote: > I am on the latest 8u77. > > On Friday, March 25, 2016, Scott Palmer wrote: > > >> What version of JavaFX are you running? >> There is a known issue, where JavaFX (and AWT/Swing) trigger activation of >> the discreet GPU. I believe for FX the issue has been resolved in the >> latest version, but the equivalent AWT fix hasn't made it to a released >> version yet. >> >> Scott >> >> >>> On Mar 25, 2016, at 4:12 PM, Tai Hu >> >> > wrote: >> >>> My JavaFX application runs fine on a Windows box with less than 10% of >>> >> CPU usage. However, if I run the same application on a MacBook Pro 13 inch >> (Laptop monitor, no external monitor). About 30 seconds after I launched >> application, MacBook cooling fan will kick in and running high, just a few >> minutes later, laptop is too hot to put directly on your lap. Actually I >> tried Ensemble app, which has exactly same issue. Few minutes after launch, >> fan kicks in and laptop become hot. I put my application under VisualVM and >> also checked Mac Activity Monitor, based on the number both of them show >> the CPU usage is not extremely high and average out about 25% and sometimes >> spike to 40%. But entire machine heats up. Almost all of our Mac clients >> complained about this issue to us. Does anyone could shield some light on >> this issue? >> >>> Thanks, >>> >>> Tai >>> From tai.hu at veroanalytics.com Fri Mar 25 21:48:24 2016 From: tai.hu at veroanalytics.com (Tai Hu) Date: Fri, 25 Mar 2016 17:48:24 -0400 Subject: JavaFX Application Heat up MacBook Pro In-Reply-To: <56F5AF71.8030003@oracle.com> References: <3A77AA41-B8F3-40A7-84E3-72A1D6DC4F02@veroanalytics.com> <56F5AF71.8030003@oracle.com> Message-ID: Thanks for the info. What entry should I put into info.plist? Thanks On Friday, March 25, 2016, Kevin Rushforth wrote: > Yes, 8u77 has the FX fix for this issue: > > https://bugs.openjdk.java.net/browse/JDK-8132775 > > However, due to the way Apple chose to enable this, you will need to > package your application with the appropriate entry in the Info.plist file. > > The equivalent AWT fix -- https://bugs.openjdk.java.net/browse/JDK-8041900 > -- is fixed in 8u92 which is scheduled to be released next month. > > -- Kevin > > > Tai Hu wrote: > >> I am on the latest 8u77. >> >> On Friday, March 25, 2016, Scott Palmer wrote: >> >> >> >>> What version of JavaFX are you running? >>> There is a known issue, where JavaFX (and AWT/Swing) trigger activation >>> of >>> the discreet GPU. I believe for FX the issue has been resolved in the >>> latest version, but the equivalent AWT fix hasn't made it to a released >>> version yet. >>> >>> Scott >>> >>> >>> >>>> On Mar 25, 2016, at 4:12 PM, Tai Hu >>> >>>> >>> > wrote: >>> >>> >>>> My JavaFX application runs fine on a Windows box with less than 10% of >>>> >>>> >>> CPU usage. However, if I run the same application on a MacBook Pro 13 >>> inch >>> (Laptop monitor, no external monitor). About 30 seconds after I launched >>> application, MacBook cooling fan will kick in and running high, just a >>> few >>> minutes later, laptop is too hot to put directly on your lap. Actually I >>> tried Ensemble app, which has exactly same issue. Few minutes after >>> launch, >>> fan kicks in and laptop become hot. I put my application under VisualVM >>> and >>> also checked Mac Activity Monitor, based on the number both of them show >>> the CPU usage is not extremely high and average out about 25% and >>> sometimes >>> spike to 40%. But entire machine heats up. Almost all of our Mac clients >>> complained about this issue to us. Does anyone could shield some light on >>> this issue? >>> >>> >>>> Thanks, >>>> >>>> Tai >>>> >>>> >>> From philip.race at oracle.com Fri Mar 25 22:05:29 2016 From: philip.race at oracle.com (Phil Race) Date: Fri, 25 Mar 2016 15:05:29 -0700 Subject: JavaFX Application Heat up MacBook Pro In-Reply-To: References: <3A77AA41-B8F3-40A7-84E3-72A1D6DC4F02@veroanalytics.com> <56F5AF71.8030003@oracle.com> Message-ID: <56F5B629.6060305@oracle.com> See https://developer.apple.com/library/mac/qa/qa1734/_index.html It is mentioned in (one of) the bugs you can get to if you follow the JBS bug trail -phil. On 3/25/2016 2:48 PM, Tai Hu wrote: > Thanks for the info. What entry should I put into info.plist? > > Thanks > > On Friday, March 25, 2016, Kevin Rushforth > wrote: > >> Yes, 8u77 has the FX fix for this issue: >> >> https://bugs.openjdk.java.net/browse/JDK-8132775 >> >> However, due to the way Apple chose to enable this, you will need to >> package your application with the appropriate entry in the Info.plist file. >> >> The equivalent AWT fix -- https://bugs.openjdk.java.net/browse/JDK-8041900 >> -- is fixed in 8u92 which is scheduled to be released next month. >> >> -- Kevin >> >> >> Tai Hu wrote: >> >>> I am on the latest 8u77. >>> >>> On Friday, March 25, 2016, Scott Palmer wrote: >>> >>> >>> >>>> What version of JavaFX are you running? >>>> There is a known issue, where JavaFX (and AWT/Swing) trigger activation >>>> of >>>> the discreet GPU. I believe for FX the issue has been resolved in the >>>> latest version, but the equivalent AWT fix hasn't made it to a released >>>> version yet. >>>> >>>> Scott >>>> >>>> >>>> >>>>> On Mar 25, 2016, at 4:12 PM, Tai Hu >>>> >>>>> >>>> > wrote: >>>> >>>> >>>>> My JavaFX application runs fine on a Windows box with less than 10% of >>>>> >>>>> >>>> CPU usage. However, if I run the same application on a MacBook Pro 13 >>>> inch >>>> (Laptop monitor, no external monitor). About 30 seconds after I launched >>>> application, MacBook cooling fan will kick in and running high, just a >>>> few >>>> minutes later, laptop is too hot to put directly on your lap. Actually I >>>> tried Ensemble app, which has exactly same issue. Few minutes after >>>> launch, >>>> fan kicks in and laptop become hot. I put my application under VisualVM >>>> and >>>> also checked Mac Activity Monitor, based on the number both of them show >>>> the CPU usage is not extremely high and average out about 25% and >>>> sometimes >>>> spike to 40%. But entire machine heats up. Almost all of our Mac clients >>>> complained about this issue to us. Does anyone could shield some light on >>>> this issue? >>>> >>>> >>>>> Thanks, >>>>> >>>>> Tai >>>>> >>>>> From tai.hu at veroanalytics.com Fri Mar 25 22:15:18 2016 From: tai.hu at veroanalytics.com (Tai Hu) Date: Fri, 25 Mar 2016 18:15:18 -0400 Subject: JavaFX Application Heat up MacBook Pro In-Reply-To: <56F5B629.6060305@oracle.com> References: <3A77AA41-B8F3-40A7-84E3-72A1D6DC4F02@veroanalytics.com> <56F5AF71.8030003@oracle.com> <56F5B629.6060305@oracle.com> Message-ID: I have a MacBook Pro 13 inch (2014 model). If I remembered correctly, it only has an integrated GPU. There is no discreet GPU Thanks, Tai On Friday, March 25, 2016, Phil Race wrote: > > > See https://developer.apple.com/library/mac/qa/qa1734/_index.html > It is mentioned in (one of) the bugs you can get to if you follow the JBS > bug trail > > -phil. > > On 3/25/2016 2:48 PM, Tai Hu wrote: > >> Thanks for the info. What entry should I put into info.plist? >> >> Thanks >> >> On Friday, March 25, 2016, Kevin Rushforth >> wrote: >> >> Yes, 8u77 has the FX fix for this issue: >>> >>> https://bugs.openjdk.java.net/browse/JDK-8132775 >>> >>> However, due to the way Apple chose to enable this, you will need to >>> package your application with the appropriate entry in the Info.plist >>> file. >>> >>> The equivalent AWT fix -- >>> https://bugs.openjdk.java.net/browse/JDK-8041900 >>> -- is fixed in 8u92 which is scheduled to be released next month. >>> >>> -- Kevin >>> >>> >>> Tai Hu wrote: >>> >>> I am on the latest 8u77. >>>> >>>> On Friday, March 25, 2016, Scott Palmer wrote: >>>> >>>> >>>> >>>> What version of JavaFX are you running? >>>>> There is a known issue, where JavaFX (and AWT/Swing) trigger activation >>>>> of >>>>> the discreet GPU. I believe for FX the issue has been resolved in the >>>>> latest version, but the equivalent AWT fix hasn't made it to a released >>>>> version yet. >>>>> >>>>> Scott >>>>> >>>>> >>>>> >>>>> On Mar 25, 2016, at 4:12 PM, Tai Hu >>>>> >>>>>> >>>>>> > wrote: >>>>> >>>>> >>>>> My JavaFX application runs fine on a Windows box with less than 10% of >>>>>> >>>>>> >>>>>> CPU usage. However, if I run the same application on a MacBook Pro 13 >>>>> inch >>>>> (Laptop monitor, no external monitor). About 30 seconds after I >>>>> launched >>>>> application, MacBook cooling fan will kick in and running high, just a >>>>> few >>>>> minutes later, laptop is too hot to put directly on your lap. Actually >>>>> I >>>>> tried Ensemble app, which has exactly same issue. Few minutes after >>>>> launch, >>>>> fan kicks in and laptop become hot. I put my application under VisualVM >>>>> and >>>>> also checked Mac Activity Monitor, based on the number both of them >>>>> show >>>>> the CPU usage is not extremely high and average out about 25% and >>>>> sometimes >>>>> spike to 40%. But entire machine heats up. Almost all of our Mac >>>>> clients >>>>> complained about this issue to us. Does anyone could shield some light >>>>> on >>>>> this issue? >>>>> >>>>> >>>>> Thanks, >>>>>> >>>>>> Tai >>>>>> >>>>>> >>>>>> > From alexander.matveev at oracle.com Sat Mar 26 03:07:12 2016 From: alexander.matveev at oracle.com (Alexander Matveev) Date: Fri, 25 Mar 2016 20:07:12 -0700 Subject: [9] Review request for 8130750: JFXMedia Player EventQueueThread does not always terminate Message-ID: <56F5FCE0.3080305@oracle.com> Hi David, Please review the following: https://bugs.openjdk.java.net/browse/JDK-8130750 Fixed intermittent issue when EventQueueThread was not terminating. Thanks, Alexander From chien.yang at oracle.com Mon Mar 28 06:37:01 2016 From: chien.yang at oracle.com (Chien Yang) Date: Sun, 27 Mar 2016 23:37:01 -0700 Subject: JavaFX Application Heat up MacBook Pro In-Reply-To: References: <3A77AA41-B8F3-40A7-84E3-72A1D6DC4F02@veroanalytics.com> <56F5AF71.8030003@oracle.com> <56F5B629.6060305@oracle.com> Message-ID: <56F8D10D.8020308@oracle.com> You are correct. MBP 13 only has an integrated GPU and those 2 fixes mentioned earlier don't apply to your case. - Chien On 3/25/16, 3:15 PM, Tai Hu wrote: > I have a MacBook Pro 13 inch (2014 model). If I remembered correctly, it > only has an integrated GPU. There is no discreet GPU > > Thanks, > > Tai > > On Friday, March 25, 2016, Phil Race wrote: > >> >> See https://developer.apple.com/library/mac/qa/qa1734/_index.html >> It is mentioned in (one of) the bugs you can get to if you follow the JBS >> bug trail >> >> -phil. >> >> On 3/25/2016 2:48 PM, Tai Hu wrote: >> >>> Thanks for the info. What entry should I put into info.plist? >>> >>> Thanks >>> >>> On Friday, March 25, 2016, Kevin Rushforth >>> wrote: >>> >>> Yes, 8u77 has the FX fix for this issue: >>>> https://bugs.openjdk.java.net/browse/JDK-8132775 >>>> >>>> However, due to the way Apple chose to enable this, you will need to >>>> package your application with the appropriate entry in the Info.plist >>>> file. >>>> >>>> The equivalent AWT fix -- >>>> https://bugs.openjdk.java.net/browse/JDK-8041900 >>>> -- is fixed in 8u92 which is scheduled to be released next month. >>>> >>>> -- Kevin >>>> >>>> >>>> Tai Hu wrote: >>>> >>>> I am on the latest 8u77. >>>>> On Friday, March 25, 2016, Scott Palmer wrote: >>>>> >>>>> >>>>> >>>>> What version of JavaFX are you running? >>>>>> There is a known issue, where JavaFX (and AWT/Swing) trigger activation >>>>>> of >>>>>> the discreet GPU. I believe for FX the issue has been resolved in the >>>>>> latest version, but the equivalent AWT fix hasn't made it to a released >>>>>> version yet. >>>>>> >>>>>> Scott >>>>>> >>>>>> >>>>>> >>>>>> On Mar 25, 2016, at 4:12 PM, Tai Hu>>>>>> >>>>>>> > wrote: >>>>>> >>>>>> My JavaFX application runs fine on a Windows box with less than 10% of >>>>>>> >>>>>>> CPU usage. However, if I run the same application on a MacBook Pro 13 >>>>>> inch >>>>>> (Laptop monitor, no external monitor). About 30 seconds after I >>>>>> launched >>>>>> application, MacBook cooling fan will kick in and running high, just a >>>>>> few >>>>>> minutes later, laptop is too hot to put directly on your lap. Actually >>>>>> I >>>>>> tried Ensemble app, which has exactly same issue. Few minutes after >>>>>> launch, >>>>>> fan kicks in and laptop become hot. I put my application under VisualVM >>>>>> and >>>>>> also checked Mac Activity Monitor, based on the number both of them >>>>>> show >>>>>> the CPU usage is not extremely high and average out about 25% and >>>>>> sometimes >>>>>> spike to 40%. But entire machine heats up. Almost all of our Mac >>>>>> clients >>>>>> complained about this issue to us. Does anyone could shield some light >>>>>> on >>>>>> this issue? >>>>>> >>>>>> >>>>>> Thanks, >>>>>>> Tai >>>>>>> >>>>>>> >>>>>>> From ali.ebrahimi1781 at gmail.com Mon Mar 28 06:56:54 2016 From: ali.ebrahimi1781 at gmail.com (Ali Ebrahimi) Date: Mon, 28 Mar 2016 11:26:54 +0430 Subject: How to build openjfx9 for ios and andriod Message-ID: I want to build openjfx9 for ios and andriod but build instructions for openjfx8 does not work for openjfx9. Please help me! -- Best Regards, Ali Ebrahimi From swpalmer at gmail.com Mon Mar 28 15:58:50 2016 From: swpalmer at gmail.com (Scott Palmer) Date: Mon, 28 Mar 2016 11:58:50 -0400 Subject: JavaFX Application Heat up MacBook Pro In-Reply-To: References: <3A77AA41-B8F3-40A7-84E3-72A1D6DC4F02@veroanalytics.com> <56F5AF71.8030003@oracle.com> <56F5B629.6060305@oracle.com> Message-ID: <1E48C194-3AA5-4006-B216-8154EEA3B538@gmail.com> This must be something else then. How many cores are on the that MacBook? I?m thinking maybe there are four cores and 25% CPU could indicate that there is one thread stuck in a busy loop. That could explain the heat. Do you have any animations running? A static application just sitting there shouldn?t have noticeable CPU usage. I have tons of stuff running now, not JavaFX though, and CPU usage is around 2%. What is the minimal application that exhibits the issue? Scott > On Mar 25, 2016, at 6:15 PM, Tai Hu wrote: > > I have a MacBook Pro 13 inch (2014 model). If I remembered correctly, it > only has an integrated GPU. There is no discreet GPU > > Thanks, > > Tai > > On Friday, March 25, 2016, Phil Race wrote: > >> >> >> See https://developer.apple.com/library/mac/qa/qa1734/_index.html >> It is mentioned in (one of) the bugs you can get to if you follow the JBS >> bug trail >> >> -phil. >> >> On 3/25/2016 2:48 PM, Tai Hu wrote: >> >>> Thanks for the info. What entry should I put into info.plist? >>> >>> Thanks >>> >>> On Friday, March 25, 2016, Kevin Rushforth >>> wrote: >>> >>> Yes, 8u77 has the FX fix for this issue: >>>> >>>> https://bugs.openjdk.java.net/browse/JDK-8132775 >>>> >>>> However, due to the way Apple chose to enable this, you will need to >>>> package your application with the appropriate entry in the Info.plist >>>> file. >>>> >>>> The equivalent AWT fix -- >>>> https://bugs.openjdk.java.net/browse/JDK-8041900 >>>> -- is fixed in 8u92 which is scheduled to be released next month. >>>> >>>> -- Kevin >>>> >>>> >>>> Tai Hu wrote: >>>> >>>> I am on the latest 8u77. >>>>> >>>>> On Friday, March 25, 2016, Scott Palmer wrote: >>>>> >>>>> >>>>> >>>>> What version of JavaFX are you running? >>>>>> There is a known issue, where JavaFX (and AWT/Swing) trigger activation >>>>>> of >>>>>> the discreet GPU. I believe for FX the issue has been resolved in the >>>>>> latest version, but the equivalent AWT fix hasn't made it to a released >>>>>> version yet. >>>>>> >>>>>> Scott >>>>>> >>>>>> >>>>>> >>>>>> On Mar 25, 2016, at 4:12 PM, Tai Hu >>>>>> >>>>>>> >>>>>>> > wrote: >>>>>> >>>>>> >>>>>> My JavaFX application runs fine on a Windows box with less than 10% of >>>>>>> >>>>>>> >>>>>>> CPU usage. However, if I run the same application on a MacBook Pro 13 >>>>>> inch >>>>>> (Laptop monitor, no external monitor). About 30 seconds after I >>>>>> launched >>>>>> application, MacBook cooling fan will kick in and running high, just a >>>>>> few >>>>>> minutes later, laptop is too hot to put directly on your lap. Actually >>>>>> I >>>>>> tried Ensemble app, which has exactly same issue. Few minutes after >>>>>> launch, >>>>>> fan kicks in and laptop become hot. I put my application under VisualVM >>>>>> and >>>>>> also checked Mac Activity Monitor, based on the number both of them >>>>>> show >>>>>> the CPU usage is not extremely high and average out about 25% and >>>>>> sometimes >>>>>> spike to 40%. But entire machine heats up. Almost all of our Mac >>>>>> clients >>>>>> complained about this issue to us. Does anyone could shield some light >>>>>> on >>>>>> this issue? >>>>>> >>>>>> >>>>>> Thanks, >>>>>>> >>>>>>> Tai From tai.hu at veroanalytics.com Mon Mar 28 16:06:10 2016 From: tai.hu at veroanalytics.com (Tai Hu) Date: Mon, 28 Mar 2016 12:06:10 -0400 Subject: JavaFX Application Heat up MacBook Pro In-Reply-To: <1E48C194-3AA5-4006-B216-8154EEA3B538@gmail.com> References: <3A77AA41-B8F3-40A7-84E3-72A1D6DC4F02@veroanalytics.com> <56F5AF71.8030003@oracle.com> <56F5B629.6060305@oracle.com> <1E48C194-3AA5-4006-B216-8154EEA3B538@gmail.com> Message-ID: <617546F6-4AA9-4671-AF9B-5574FECFF28F@veroanalytics.com> My MacBook Pro is a i5 dual core with 16GB of memory. The minimal application that exhibits the issue is just a simple window with web view and I used D3JS draw a simple graph (only 5-6 nodes). Then just let application sit idle there without doing anything. The CPU will heat up quickly. I put the application in VisualVM, other than JavaFX application thread, the next thread is taking up CPU time is QuantumRender. But my application is just sitting idle, no animation or any user activities. Thanks, Tai > On Mar 28, 2016, at 11:58 AM, Scott Palmer wrote: > > This must be something else then. How many cores are on the that MacBook? I?m thinking maybe there are four cores and 25% CPU could indicate that there is one thread stuck in a busy loop. That could explain the heat. > > Do you have any animations running? A static application just sitting there shouldn?t have noticeable CPU usage. I have tons of stuff running now, not JavaFX though, and CPU usage is around 2%. > What is the minimal application that exhibits the issue? > > Scott > > >> On Mar 25, 2016, at 6:15 PM, Tai Hu wrote: >> >> I have a MacBook Pro 13 inch (2014 model). If I remembered correctly, it >> only has an integrated GPU. There is no discreet GPU >> >> Thanks, >> >> Tai >> >> On Friday, March 25, 2016, Phil Race wrote: >> >>> >>> >>> See https://developer.apple.com/library/mac/qa/qa1734/_index.html >>> It is mentioned in (one of) the bugs you can get to if you follow the JBS >>> bug trail >>> >>> -phil. >>> >>> On 3/25/2016 2:48 PM, Tai Hu wrote: >>> >>>> Thanks for the info. What entry should I put into info.plist? >>>> >>>> Thanks >>>> >>>> On Friday, March 25, 2016, Kevin Rushforth >>>> wrote: >>>> >>>> Yes, 8u77 has the FX fix for this issue: >>>>> >>>>> https://bugs.openjdk.java.net/browse/JDK-8132775 >>>>> >>>>> However, due to the way Apple chose to enable this, you will need to >>>>> package your application with the appropriate entry in the Info.plist >>>>> file. >>>>> >>>>> The equivalent AWT fix -- >>>>> https://bugs.openjdk.java.net/browse/JDK-8041900 >>>>> -- is fixed in 8u92 which is scheduled to be released next month. >>>>> >>>>> -- Kevin >>>>> >>>>> >>>>> Tai Hu wrote: >>>>> >>>>> I am on the latest 8u77. >>>>>> >>>>>> On Friday, March 25, 2016, Scott Palmer wrote: >>>>>> >>>>>> >>>>>> >>>>>> What version of JavaFX are you running? >>>>>>> There is a known issue, where JavaFX (and AWT/Swing) trigger activation >>>>>>> of >>>>>>> the discreet GPU. I believe for FX the issue has been resolved in the >>>>>>> latest version, but the equivalent AWT fix hasn't made it to a released >>>>>>> version yet. >>>>>>> >>>>>>> Scott >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Mar 25, 2016, at 4:12 PM, Tai Hu >>>>>>> >>>>>>>> >>>>>>>> > wrote: >>>>>>> >>>>>>> >>>>>>> My JavaFX application runs fine on a Windows box with less than 10% of >>>>>>>> >>>>>>>> >>>>>>>> CPU usage. However, if I run the same application on a MacBook Pro 13 >>>>>>> inch >>>>>>> (Laptop monitor, no external monitor). About 30 seconds after I >>>>>>> launched >>>>>>> application, MacBook cooling fan will kick in and running high, just a >>>>>>> few >>>>>>> minutes later, laptop is too hot to put directly on your lap. Actually >>>>>>> I >>>>>>> tried Ensemble app, which has exactly same issue. Few minutes after >>>>>>> launch, >>>>>>> fan kicks in and laptop become hot. I put my application under VisualVM >>>>>>> and >>>>>>> also checked Mac Activity Monitor, based on the number both of them >>>>>>> show >>>>>>> the CPU usage is not extremely high and average out about 25% and >>>>>>> sometimes >>>>>>> spike to 40%. But entire machine heats up. Almost all of our Mac >>>>>>> clients >>>>>>> complained about this issue to us. Does anyone could shield some light >>>>>>> on >>>>>>> this issue? >>>>>>> >>>>>>> >>>>>>> Thanks, >>>>>>>> >>>>>>>> Tai From kevin.rushforth at oracle.com Mon Mar 28 16:13:15 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 28 Mar 2016 09:13:15 -0700 Subject: [9] review request: 8152860: Enforce gradle 2.11 as minimum version Message-ID: <56F9581B.2030009@oracle.com> Please review this simple patch to enforce the fact that gradle 2.11 is now the minimum. https://bugs.openjdk.java.net/browse/JDK-8152860 -- Kevin From chien.yang at oracle.com Mon Mar 28 16:31:58 2016 From: chien.yang at oracle.com (Chien Yang) Date: Mon, 28 Mar 2016 09:31:58 -0700 Subject: JavaFX Application Heat up MacBook Pro In-Reply-To: <56F8D10D.8020308@oracle.com> References: <3A77AA41-B8F3-40A7-84E3-72A1D6DC4F02@veroanalytics.com> <56F5AF71.8030003@oracle.com> <56F5B629.6060305@oracle.com> <56F8D10D.8020308@oracle.com> Message-ID: <56F95C7E.7010404@oracle.com> BTW, I did a 15 min run of Ensemble8 testing a series of programs on my MBP 15 this morning. The machine remains cool and its fan remains off. Can you provide the steps on how you heated up your MBP running Ensemble8? Did you have other programs running? Thanks, - Chien On 3/27/16, 11:37 PM, Chien Yang wrote: > You are correct. MBP 13 only has an integrated GPU and those 2 fixes > mentioned earlier don't apply to your case. > > - Chien > > On 3/25/16, 3:15 PM, Tai Hu wrote: >> I have a MacBook Pro 13 inch (2014 model). If I remembered correctly, it >> only has an integrated GPU. There is no discreet GPU >> >> Thanks, >> >> Tai >> >> On Friday, March 25, 2016, Phil Race wrote: >> >>> >>> See https://developer.apple.com/library/mac/qa/qa1734/_index.html >>> It is mentioned in (one of) the bugs you can get to if you follow >>> the JBS >>> bug trail >>> >>> -phil. >>> >>> On 3/25/2016 2:48 PM, Tai Hu wrote: >>> >>>> Thanks for the info. What entry should I put into info.plist? >>>> >>>> Thanks >>>> >>>> On Friday, March 25, 2016, Kevin Rushforth >>>> wrote: >>>> >>>> Yes, 8u77 has the FX fix for this issue: >>>>> https://bugs.openjdk.java.net/browse/JDK-8132775 >>>>> >>>>> However, due to the way Apple chose to enable this, you will need to >>>>> package your application with the appropriate entry in the Info.plist >>>>> file. >>>>> >>>>> The equivalent AWT fix -- >>>>> https://bugs.openjdk.java.net/browse/JDK-8041900 >>>>> -- is fixed in 8u92 which is scheduled to be released next month. >>>>> >>>>> -- Kevin >>>>> >>>>> >>>>> Tai Hu wrote: >>>>> >>>>> I am on the latest 8u77. >>>>>> On Friday, March 25, 2016, Scott Palmer wrote: >>>>>> >>>>>> >>>>>> >>>>>> What version of JavaFX are you running? >>>>>>> There is a known issue, where JavaFX (and AWT/Swing) trigger >>>>>>> activation >>>>>>> of >>>>>>> the discreet GPU. I believe for FX the issue has been resolved >>>>>>> in the >>>>>>> latest version, but the equivalent AWT fix hasn't made it to a >>>>>>> released >>>>>>> version yet. >>>>>>> >>>>>>> Scott >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Mar 25, 2016, at 4:12 PM, Tai Hu>>>>>>> >>>>>>>> > wrote: >>>>>>> >>>>>>> My JavaFX application runs fine on a Windows box with less than >>>>>>> 10% of >>>>>>>> >>>>>>>> CPU usage. However, if I run the same application on a MacBook >>>>>>>> Pro 13 >>>>>>> inch >>>>>>> (Laptop monitor, no external monitor). About 30 seconds after I >>>>>>> launched >>>>>>> application, MacBook cooling fan will kick in and running high, >>>>>>> just a >>>>>>> few >>>>>>> minutes later, laptop is too hot to put directly on your lap. >>>>>>> Actually >>>>>>> I >>>>>>> tried Ensemble app, which has exactly same issue. Few minutes after >>>>>>> launch, >>>>>>> fan kicks in and laptop become hot. I put my application under >>>>>>> VisualVM >>>>>>> and >>>>>>> also checked Mac Activity Monitor, based on the number both of them >>>>>>> show >>>>>>> the CPU usage is not extremely high and average out about 25% and >>>>>>> sometimes >>>>>>> spike to 40%. But entire machine heats up. Almost all of our Mac >>>>>>> clients >>>>>>> complained about this issue to us. Does anyone could shield some >>>>>>> light >>>>>>> on >>>>>>> this issue? >>>>>>> >>>>>>> >>>>>>> Thanks, >>>>>>>> Tai >>>>>>>> >>>>>>>> >>>>>>>> From tai.hu at veroanalytics.com Mon Mar 28 16:38:21 2016 From: tai.hu at veroanalytics.com (Tai Hu) Date: Mon, 28 Mar 2016 12:38:21 -0400 Subject: JavaFX Application Heat up MacBook Pro In-Reply-To: <617546F6-4AA9-4671-AF9B-5574FECFF28F@veroanalytics.com> References: <3A77AA41-B8F3-40A7-84E3-72A1D6DC4F02@veroanalytics.com> <56F5AF71.8030003@oracle.com> <56F5B629.6060305@oracle.com> <1E48C194-3AA5-4006-B216-8154EEA3B538@gmail.com> <617546F6-4AA9-4671-AF9B-5574FECFF28F@veroanalytics.com> Message-ID: <90733FFD-DF76-4848-9D68-21E02F6C2CFA@veroanalytics.com> I launched ensemble8 and go directly to animation example then just leave it there. After few minutes, my Laptop heat up. Tai > On Mar 28, 2016, at 12:06 PM, Tai Hu wrote: > > My MacBook Pro is a i5 dual core with 16GB of memory. The minimal application that exhibits the issue is just a simple window with web view and I used D3JS draw a simple graph (only 5-6 nodes). Then just let application sit idle there without doing anything. The CPU will heat up quickly. I put the application in VisualVM, other than JavaFX application thread, the next thread is taking up CPU time is QuantumRender. But my application is just sitting idle, no animation or any user activities. > > Thanks, > > Tai >> On Mar 28, 2016, at 11:58 AM, Scott Palmer wrote: >> >> This must be something else then. How many cores are on the that MacBook? I?m thinking maybe there are four cores and 25% CPU could indicate that there is one thread stuck in a busy loop. That could explain the heat. >> >> Do you have any animations running? A static application just sitting there shouldn?t have noticeable CPU usage. I have tons of stuff running now, not JavaFX though, and CPU usage is around 2%. >> What is the minimal application that exhibits the issue? >> >> Scott >> >> >>> On Mar 25, 2016, at 6:15 PM, Tai Hu wrote: >>> >>> I have a MacBook Pro 13 inch (2014 model). If I remembered correctly, it >>> only has an integrated GPU. There is no discreet GPU >>> >>> Thanks, >>> >>> Tai >>> >>> On Friday, March 25, 2016, Phil Race wrote: >>> >>>> >>>> >>>> See https://developer.apple.com/library/mac/qa/qa1734/_index.html >>>> It is mentioned in (one of) the bugs you can get to if you follow the JBS >>>> bug trail >>>> >>>> -phil. >>>> >>>> On 3/25/2016 2:48 PM, Tai Hu wrote: >>>> >>>>> Thanks for the info. What entry should I put into info.plist? >>>>> >>>>> Thanks >>>>> >>>>> On Friday, March 25, 2016, Kevin Rushforth >>>>> wrote: >>>>> >>>>> Yes, 8u77 has the FX fix for this issue: >>>>>> >>>>>> https://bugs.openjdk.java.net/browse/JDK-8132775 >>>>>> >>>>>> However, due to the way Apple chose to enable this, you will need to >>>>>> package your application with the appropriate entry in the Info.plist >>>>>> file. >>>>>> >>>>>> The equivalent AWT fix -- >>>>>> https://bugs.openjdk.java.net/browse/JDK-8041900 >>>>>> -- is fixed in 8u92 which is scheduled to be released next month. >>>>>> >>>>>> -- Kevin >>>>>> >>>>>> >>>>>> Tai Hu wrote: >>>>>> >>>>>> I am on the latest 8u77. >>>>>>> >>>>>>> On Friday, March 25, 2016, Scott Palmer wrote: >>>>>>> >>>>>>> >>>>>>> >>>>>>> What version of JavaFX are you running? >>>>>>>> There is a known issue, where JavaFX (and AWT/Swing) trigger activation >>>>>>>> of >>>>>>>> the discreet GPU. I believe for FX the issue has been resolved in the >>>>>>>> latest version, but the equivalent AWT fix hasn't made it to a released >>>>>>>> version yet. >>>>>>>> >>>>>>>> Scott >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Mar 25, 2016, at 4:12 PM, Tai Hu >>>>>>>> >>>>>>>>> >>>>>>>>> > wrote: >>>>>>>> >>>>>>>> >>>>>>>> My JavaFX application runs fine on a Windows box with less than 10% of >>>>>>>>> >>>>>>>>> >>>>>>>>> CPU usage. However, if I run the same application on a MacBook Pro 13 >>>>>>>> inch >>>>>>>> (Laptop monitor, no external monitor). About 30 seconds after I >>>>>>>> launched >>>>>>>> application, MacBook cooling fan will kick in and running high, just a >>>>>>>> few >>>>>>>> minutes later, laptop is too hot to put directly on your lap. Actually >>>>>>>> I >>>>>>>> tried Ensemble app, which has exactly same issue. Few minutes after >>>>>>>> launch, >>>>>>>> fan kicks in and laptop become hot. I put my application under VisualVM >>>>>>>> and >>>>>>>> also checked Mac Activity Monitor, based on the number both of them >>>>>>>> show >>>>>>>> the CPU usage is not extremely high and average out about 25% and >>>>>>>> sometimes >>>>>>>> spike to 40%. But entire machine heats up. Almost all of our Mac >>>>>>>> clients >>>>>>>> complained about this issue to us. Does anyone could shield some light >>>>>>>> on >>>>>>>> this issue? >>>>>>>> >>>>>>>> >>>>>>>> Thanks, >>>>>>>>> >>>>>>>>> Tai > From chien.yang at oracle.com Mon Mar 28 16:42:18 2016 From: chien.yang at oracle.com (Chien Yang) Date: Mon, 28 Mar 2016 09:42:18 -0700 Subject: JavaFX Application Heat up MacBook Pro In-Reply-To: <617546F6-4AA9-4671-AF9B-5574FECFF28F@veroanalytics.com> References: <3A77AA41-B8F3-40A7-84E3-72A1D6DC4F02@veroanalytics.com> <56F5AF71.8030003@oracle.com> <56F5B629.6060305@oracle.com> <1E48C194-3AA5-4006-B216-8154EEA3B538@gmail.com> <617546F6-4AA9-4671-AF9B-5574FECFF28F@veroanalytics.com> Message-ID: <56F95EEA.3000205@oracle.com> Great! Can you please file a JIRA with your test program. We will investigate the issue. https://wiki.openjdk.java.net/display/OpenJFX/Submitting+a+Bug+Report - Chien On 3/28/16, 9:06 AM, Tai Hu wrote: > My MacBook Pro is a i5 dual core with 16GB of memory. The minimal application that exhibits the issue is just a simple window with web view and I used D3JS draw a simple graph (only 5-6 nodes). Then just let application sit idle there without doing anything. The CPU will heat up quickly. I put the application in VisualVM, other than JavaFX application thread, the next thread is taking up CPU time is QuantumRender. But my application is just sitting idle, no animation or any user activities. > > Thanks, > > Tai >> On Mar 28, 2016, at 11:58 AM, Scott Palmer wrote: >> >> This must be something else then. How many cores are on the that MacBook? I?m thinking maybe there are four cores and 25% CPU could indicate that there is one thread stuck in a busy loop. That could explain the heat. >> >> Do you have any animations running? A static application just sitting there shouldn?t have noticeable CPU usage. I have tons of stuff running now, not JavaFX though, and CPU usage is around 2%. >> What is the minimal application that exhibits the issue? >> >> Scott >> >> >>> On Mar 25, 2016, at 6:15 PM, Tai Hu wrote: >>> >>> I have a MacBook Pro 13 inch (2014 model). If I remembered correctly, it >>> only has an integrated GPU. There is no discreet GPU >>> >>> Thanks, >>> >>> Tai >>> >>> On Friday, March 25, 2016, Phil Race wrote: >>> >>>> >>>> See https://developer.apple.com/library/mac/qa/qa1734/_index.html >>>> It is mentioned in (one of) the bugs you can get to if you follow the JBS >>>> bug trail >>>> >>>> -phil. >>>> >>>> On 3/25/2016 2:48 PM, Tai Hu wrote: >>>> >>>>> Thanks for the info. What entry should I put into info.plist? >>>>> >>>>> Thanks >>>>> >>>>> On Friday, March 25, 2016, Kevin Rushforth >>>>> wrote: >>>>> >>>>> Yes, 8u77 has the FX fix for this issue: >>>>>> https://bugs.openjdk.java.net/browse/JDK-8132775 >>>>>> >>>>>> However, due to the way Apple chose to enable this, you will need to >>>>>> package your application with the appropriate entry in the Info.plist >>>>>> file. >>>>>> >>>>>> The equivalent AWT fix -- >>>>>> https://bugs.openjdk.java.net/browse/JDK-8041900 >>>>>> -- is fixed in 8u92 which is scheduled to be released next month. >>>>>> >>>>>> -- Kevin >>>>>> >>>>>> >>>>>> Tai Hu wrote: >>>>>> >>>>>> I am on the latest 8u77. >>>>>>> On Friday, March 25, 2016, Scott Palmer wrote: >>>>>>> >>>>>>> >>>>>>> >>>>>>> What version of JavaFX are you running? >>>>>>>> There is a known issue, where JavaFX (and AWT/Swing) trigger activation >>>>>>>> of >>>>>>>> the discreet GPU. I believe for FX the issue has been resolved in the >>>>>>>> latest version, but the equivalent AWT fix hasn't made it to a released >>>>>>>> version yet. >>>>>>>> >>>>>>>> Scott >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Mar 25, 2016, at 4:12 PM, Tai Hu>>>>>>>> >>>>>>>>> > wrote: >>>>>>>> >>>>>>>> My JavaFX application runs fine on a Windows box with less than 10% of >>>>>>>>> >>>>>>>>> CPU usage. However, if I run the same application on a MacBook Pro 13 >>>>>>>> inch >>>>>>>> (Laptop monitor, no external monitor). About 30 seconds after I >>>>>>>> launched >>>>>>>> application, MacBook cooling fan will kick in and running high, just a >>>>>>>> few >>>>>>>> minutes later, laptop is too hot to put directly on your lap. Actually >>>>>>>> I >>>>>>>> tried Ensemble app, which has exactly same issue. Few minutes after >>>>>>>> launch, >>>>>>>> fan kicks in and laptop become hot. I put my application under VisualVM >>>>>>>> and >>>>>>>> also checked Mac Activity Monitor, based on the number both of them >>>>>>>> show >>>>>>>> the CPU usage is not extremely high and average out about 25% and >>>>>>>> sometimes >>>>>>>> spike to 40%. But entire machine heats up. Almost all of our Mac >>>>>>>> clients >>>>>>>> complained about this issue to us. Does anyone could shield some light >>>>>>>> on >>>>>>>> this issue? >>>>>>>> >>>>>>>> >>>>>>>> Thanks, >>>>>>>>> Tai From morris.meyer at oracle.com Mon Mar 28 19:05:19 2016 From: morris.meyer at oracle.com (Morris Meyer) Date: Mon, 28 Mar 2016 15:05:19 -0400 Subject: [9] Review request: 8152858: Ensemble Timeline regression Message-ID: <56F9806F.3010403@oracle.com> Jonathan and Phil, Could you review this one-line change to the Ensemble Timeline app? Thanks, --morris https://bugs.openjdk.java.net/browse/JDK-8152858 http://cr.openjdk.java.net/~morris/JDK-8152858.01/ From tai.hu at veroanalytics.com Mon Mar 28 19:53:07 2016 From: tai.hu at veroanalytics.com (Tai Hu) Date: Mon, 28 Mar 2016 15:53:07 -0400 Subject: JavaFX Application Heat up MacBook Pro In-Reply-To: <617546F6-4AA9-4671-AF9B-5574FECFF28F@veroanalytics.com> References: <3A77AA41-B8F3-40A7-84E3-72A1D6DC4F02@veroanalytics.com> <56F5AF71.8030003@oracle.com> <56F5B629.6060305@oracle.com> <1E48C194-3AA5-4006-B216-8154EEA3B538@gmail.com> <617546F6-4AA9-4671-AF9B-5574FECFF28F@veroanalytics.com> Message-ID: <8D795F41-CC0C-47B7-AECD-EC9B3842F22B@veroanalytics.com> I finally pinpoint the problem with my application. The culprit is ProgressIndicator with undetermined state. There are couple places in my application I used a stack pane to hide a ProgressIndicator at back. Then when I run some task in background thread, I will bring that progress indicator to the front. It seems that those progress indicators are running in the background even though they are not visible at all. On a MacBook Pro 13 inch, even I leave the application idle, it took 20-25% CPU constantly. After removed all those progress indicator, on the same laptop, idle application only takes less than 1% of CPU. Thanks all for your help. Tai > On Mar 28, 2016, at 12:06 PM, Tai Hu wrote: > > My MacBook Pro is a i5 dual core with 16GB of memory. The minimal application that exhibits the issue is just a simple window with web view and I used D3JS draw a simple graph (only 5-6 nodes). Then just let application sit idle there without doing anything. The CPU will heat up quickly. I put the application in VisualVM, other than JavaFX application thread, the next thread is taking up CPU time is QuantumRender. But my application is just sitting idle, no animation or any user activities. > > Thanks, > > Tai >> On Mar 28, 2016, at 11:58 AM, Scott Palmer wrote: >> >> This must be something else then. How many cores are on the that MacBook? I?m thinking maybe there are four cores and 25% CPU could indicate that there is one thread stuck in a busy loop. That could explain the heat. >> >> Do you have any animations running? A static application just sitting there shouldn?t have noticeable CPU usage. I have tons of stuff running now, not JavaFX though, and CPU usage is around 2%. >> What is the minimal application that exhibits the issue? >> >> Scott >> >> >>> On Mar 25, 2016, at 6:15 PM, Tai Hu wrote: >>> >>> I have a MacBook Pro 13 inch (2014 model). If I remembered correctly, it >>> only has an integrated GPU. There is no discreet GPU >>> >>> Thanks, >>> >>> Tai >>> >>> On Friday, March 25, 2016, Phil Race wrote: >>> >>>> >>>> >>>> See https://developer.apple.com/library/mac/qa/qa1734/_index.html >>>> It is mentioned in (one of) the bugs you can get to if you follow the JBS >>>> bug trail >>>> >>>> -phil. >>>> >>>> On 3/25/2016 2:48 PM, Tai Hu wrote: >>>> >>>>> Thanks for the info. What entry should I put into info.plist? >>>>> >>>>> Thanks >>>>> >>>>> On Friday, March 25, 2016, Kevin Rushforth >>>>> wrote: >>>>> >>>>> Yes, 8u77 has the FX fix for this issue: >>>>>> >>>>>> https://bugs.openjdk.java.net/browse/JDK-8132775 >>>>>> >>>>>> However, due to the way Apple chose to enable this, you will need to >>>>>> package your application with the appropriate entry in the Info.plist >>>>>> file. >>>>>> >>>>>> The equivalent AWT fix -- >>>>>> https://bugs.openjdk.java.net/browse/JDK-8041900 >>>>>> -- is fixed in 8u92 which is scheduled to be released next month. >>>>>> >>>>>> -- Kevin >>>>>> >>>>>> >>>>>> Tai Hu wrote: >>>>>> >>>>>> I am on the latest 8u77. >>>>>>> >>>>>>> On Friday, March 25, 2016, Scott Palmer wrote: >>>>>>> >>>>>>> >>>>>>> >>>>>>> What version of JavaFX are you running? >>>>>>>> There is a known issue, where JavaFX (and AWT/Swing) trigger activation >>>>>>>> of >>>>>>>> the discreet GPU. I believe for FX the issue has been resolved in the >>>>>>>> latest version, but the equivalent AWT fix hasn't made it to a released >>>>>>>> version yet. >>>>>>>> >>>>>>>> Scott >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Mar 25, 2016, at 4:12 PM, Tai Hu >>>>>>>> >>>>>>>>> >>>>>>>>> > wrote: >>>>>>>> >>>>>>>> >>>>>>>> My JavaFX application runs fine on a Windows box with less than 10% of >>>>>>>>> >>>>>>>>> >>>>>>>>> CPU usage. However, if I run the same application on a MacBook Pro 13 >>>>>>>> inch >>>>>>>> (Laptop monitor, no external monitor). About 30 seconds after I >>>>>>>> launched >>>>>>>> application, MacBook cooling fan will kick in and running high, just a >>>>>>>> few >>>>>>>> minutes later, laptop is too hot to put directly on your lap. Actually >>>>>>>> I >>>>>>>> tried Ensemble app, which has exactly same issue. Few minutes after >>>>>>>> launch, >>>>>>>> fan kicks in and laptop become hot. I put my application under VisualVM >>>>>>>> and >>>>>>>> also checked Mac Activity Monitor, based on the number both of them >>>>>>>> show >>>>>>>> the CPU usage is not extremely high and average out about 25% and >>>>>>>> sometimes >>>>>>>> spike to 40%. But entire machine heats up. Almost all of our Mac >>>>>>>> clients >>>>>>>> complained about this issue to us. Does anyone could shield some light >>>>>>>> on >>>>>>>> this issue? >>>>>>>> >>>>>>>> >>>>>>>> Thanks, >>>>>>>>> >>>>>>>>> Tai > From jonathan.giles at oracle.com Mon Mar 28 19:56:07 2016 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Tue, 29 Mar 2016 08:56:07 +1300 Subject: JavaFX Application Heat up MacBook Pro In-Reply-To: <8D795F41-CC0C-47B7-AECD-EC9B3842F22B@veroanalytics.com> References: <3A77AA41-B8F3-40A7-84E3-72A1D6DC4F02@veroanalytics.com> <56F5AF71.8030003@oracle.com> <56F5B629.6060305@oracle.com> <1E48C194-3AA5-4006-B216-8154EEA3B538@gmail.com> <617546F6-4AA9-4671-AF9B-5574FECFF28F@veroanalytics.com> <8D795F41-CC0C-47B7-AECD-EC9B3842F22B@veroanalytics.com> Message-ID: <56F98C57.6060304@oracle.com> There are known issues regarding ProgressIndicator and unintended CPU usage. These will be fixed in JDK 9, but the work is pending new API in the scenegraph related to knowing exactly whether a Node is actually 'tree visible' or not. -- Jonathan On 29/03/16 8:53 AM, Tai Hu wrote: > I finally pinpoint the problem with my application. The culprit is ProgressIndicator with undetermined state. There are couple places in my application I used a stack pane to hide a ProgressIndicator at back. Then when I run some task in background thread, I will bring that progress indicator to the front. It seems that those progress indicators are running in the background even though they are not visible at all. On a MacBook Pro 13 inch, even I leave the application idle, it took 20-25% CPU constantly. After removed all those progress indicator, on the same laptop, idle application only takes less than 1% of CPU. > > Thanks all for your help. > > Tai >> On Mar 28, 2016, at 12:06 PM, Tai Hu wrote: >> >> My MacBook Pro is a i5 dual core with 16GB of memory. The minimal application that exhibits the issue is just a simple window with web view and I used D3JS draw a simple graph (only 5-6 nodes). Then just let application sit idle there without doing anything. The CPU will heat up quickly. I put the application in VisualVM, other than JavaFX application thread, the next thread is taking up CPU time is QuantumRender. But my application is just sitting idle, no animation or any user activities. >> >> Thanks, >> >> Tai >>> On Mar 28, 2016, at 11:58 AM, Scott Palmer wrote: >>> >>> This must be something else then. How many cores are on the that MacBook? I?m thinking maybe there are four cores and 25% CPU could indicate that there is one thread stuck in a busy loop. That could explain the heat. >>> >>> Do you have any animations running? A static application just sitting there shouldn?t have noticeable CPU usage. I have tons of stuff running now, not JavaFX though, and CPU usage is around 2%. >>> What is the minimal application that exhibits the issue? >>> >>> Scott >>> >>> >>>> On Mar 25, 2016, at 6:15 PM, Tai Hu wrote: >>>> >>>> I have a MacBook Pro 13 inch (2014 model). If I remembered correctly, it >>>> only has an integrated GPU. There is no discreet GPU >>>> >>>> Thanks, >>>> >>>> Tai >>>> >>>> On Friday, March 25, 2016, Phil Race wrote: >>>> >>>>> >>>>> See https://developer.apple.com/library/mac/qa/qa1734/_index.html >>>>> It is mentioned in (one of) the bugs you can get to if you follow the JBS >>>>> bug trail >>>>> >>>>> -phil. >>>>> >>>>> On 3/25/2016 2:48 PM, Tai Hu wrote: >>>>> >>>>>> Thanks for the info. What entry should I put into info.plist? >>>>>> >>>>>> Thanks >>>>>> >>>>>> On Friday, March 25, 2016, Kevin Rushforth >>>>>> wrote: >>>>>> >>>>>> Yes, 8u77 has the FX fix for this issue: >>>>>>> https://bugs.openjdk.java.net/browse/JDK-8132775 >>>>>>> >>>>>>> However, due to the way Apple chose to enable this, you will need to >>>>>>> package your application with the appropriate entry in the Info.plist >>>>>>> file. >>>>>>> >>>>>>> The equivalent AWT fix -- >>>>>>> https://bugs.openjdk.java.net/browse/JDK-8041900 >>>>>>> -- is fixed in 8u92 which is scheduled to be released next month. >>>>>>> >>>>>>> -- Kevin >>>>>>> >>>>>>> >>>>>>> Tai Hu wrote: >>>>>>> >>>>>>> I am on the latest 8u77. >>>>>>>> On Friday, March 25, 2016, Scott Palmer wrote: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> What version of JavaFX are you running? >>>>>>>>> There is a known issue, where JavaFX (and AWT/Swing) trigger activation >>>>>>>>> of >>>>>>>>> the discreet GPU. I believe for FX the issue has been resolved in the >>>>>>>>> latest version, but the equivalent AWT fix hasn't made it to a released >>>>>>>>> version yet. >>>>>>>>> >>>>>>>>> Scott >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Mar 25, 2016, at 4:12 PM, Tai Hu >>>>>>>>> >>>>>>>>>> > wrote: >>>>>>>>> >>>>>>>>> My JavaFX application runs fine on a Windows box with less than 10% of >>>>>>>>>> >>>>>>>>>> CPU usage. However, if I run the same application on a MacBook Pro 13 >>>>>>>>> inch >>>>>>>>> (Laptop monitor, no external monitor). About 30 seconds after I >>>>>>>>> launched >>>>>>>>> application, MacBook cooling fan will kick in and running high, just a >>>>>>>>> few >>>>>>>>> minutes later, laptop is too hot to put directly on your lap. Actually >>>>>>>>> I >>>>>>>>> tried Ensemble app, which has exactly same issue. Few minutes after >>>>>>>>> launch, >>>>>>>>> fan kicks in and laptop become hot. I put my application under VisualVM >>>>>>>>> and >>>>>>>>> also checked Mac Activity Monitor, based on the number both of them >>>>>>>>> show >>>>>>>>> the CPU usage is not extremely high and average out about 25% and >>>>>>>>> sometimes >>>>>>>>> spike to 40%. But entire machine heats up. Almost all of our Mac >>>>>>>>> clients >>>>>>>>> complained about this issue to us. Does anyone could shield some light >>>>>>>>> on >>>>>>>>> this issue? >>>>>>>>> >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>>> Tai From kevin.rushforth at oracle.com Mon Mar 28 20:06:12 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 28 Mar 2016 13:06:12 -0700 Subject: 9-dev unlocked following sanity testing Message-ID: <56F98EB4.5080000@oracle.com> From james.graham at oracle.com Tue Mar 29 01:25:15 2016 From: james.graham at oracle.com (Jim Graham) Date: Mon, 28 Mar 2016 18:25:15 -0700 Subject: [9] Review request: 8091832: Provide API for getting the Screen scale on HiDPI screens Message-ID: <56F9D97B.30108@oracle.com> bug: https://bugs.openjdk.java.net/browse/JDK-8091832 webrev: http://cr.openjdk.java.net/~flar/JDK-8091832/webrev.rt.00/ This webrev fixes pixel snapping and application control over pixel scaling on HiDPI screens: - snap*() methods are all updated to take the current scale into account - new variants of snap*() methods are added for separate X/Y control: Added: Region.snapSpaceX/Y() Added: Region.snapSizeX/Y() Added: Region.snapPositionX/Y() - the non-X/Y variants of the above methods are now deprecated: Deprecated: Region.snapSpace() Deprecated: Region.snapSize() Deprecated: Region.snapPosition() - methods to query the scale values of Screen objects: Added: Screen.getOutputScaleX/Y() - properties to query and/or modify the scale values of Window objects: Added Read-Only DoubleProperty: Window.getOutputScaleX/Y() Added Read-Write BooleanProperty: Window.set/getForceIntegerRenderScale() Added Read-Write DoubleProperty: Window.set/getRenderScaleX/Y() The changes have been compiled and tested on Windows and Mac and there were trivial changes needed to the Linux files to adapt to one new method signature, but I haven't done the test build on Linux yet... ...jim From tom.schindl at bestsolution.at Tue Mar 29 11:04:39 2016 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Tue, 29 Mar 2016 13:04:39 +0200 Subject: Move & Copy DnD operation on OS-X and Linux Message-ID: <56FA6147.3090403@bestsolution.at> Hi, While developing our editor control we tried to implement DnD of Text-Selection to: * to rearrange text inside the control * to copy text selections to another position inside the text On Win32 everything works as expected, if you start dragging the initial operation is MOVE and you can change that to a COPY by pressing CTRL while dragging. On Linux the initial gesture is COPY which is not how DnD works in things like nautilus, ... . I can get that to change to a move operation by holding the SHIFT key. On OS-X the initial gesture is a COPY and which is not how DnD works finder or eg Finder, and I haven't found a way to change the operation to a MOVE. I would expect the following on ALL operation systems: - a drag WITHOUT any modifier key is a MOVE operation - on Windows & Linux I make it to a copy operation by pressing CTRL while dragging - on OS-X I make it a copy operation by pressing ALT while dragging In general I think the problem is even bigger because the default operation depends on the target eg on windows when you drag a file between 2 folders on the same filesystem you get a default MOVE but if you drag to another one the default is a COPY and SHIFT makes it a MOVE. JavaFX does all that right but what it gets wrong is the default operation. Any thoughts on this? Did we miss something obvious? The simple application below is how to reproduce. > package application; > > > import javafx.application.Application; > import javafx.scene.Scene; > import javafx.scene.input.ClipboardContent; > import javafx.scene.input.DataFormat; > import javafx.scene.input.DragEvent; > import javafx.scene.input.Dragboard; > import javafx.scene.input.MouseEvent; > import javafx.scene.input.TransferMode; > import javafx.scene.layout.BorderPane; > import javafx.stage.Stage; > > > public class Main extends Application { > > private BorderPane root; > @Override > public void start(Stage primaryStage) { > try { > root = new BorderPane(); > Scene scene = new Scene(root,400,400); > scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); > primaryStage.setScene(scene); > primaryStage.show(); > > root.setOnDragDetected(this::onDragDetected); > root.setOnDragOver(this::onDragOver); > root.setOnDragDropped(this::onDragDropped); > root.setOnDragDone(this::onDragDone); > > } catch(Exception e) { > e.printStackTrace(); > } > } > > public static void main(String[] args) { > launch(args); > } > > private final DataFormat f = new DataFormat() { > }; > > private void onDragDetected(MouseEvent event) { > System.err.println(this + " onDragDetected"); > Dragboard db = root.startDragAndDrop(TransferMode.ANY); > > ClipboardContent c = new ClipboardContent(); > c.putString("Hello world"); > db.setContent(c); > event.consume(); > } > > private void onDragOver(DragEvent event) { > event.getTransferMode(); > event.acceptTransferModes(TransferMode.ANY); > System.err.println(event.getTransferMode()); > // System.err.println("onDragOver " + event.getAcceptedTransferMode()); > event.consume(); > } > > private void onDragDropped(DragEvent event) { > System.err.println(this + " onDragDropped " + event.getAcceptedTransferMode()); > event.setDropCompleted(true); > event.consume(); > } > > private void onDragDone(DragEvent event) { > System.err.println(this + " onDragDone " + event.getAcceptedTransferMode()); > System.err.println("payload: " + event.getDragboard().getString()); > event.consume(); > } > } -- Thomas Schindl, CTO BestSolution.at EDV Systemhaus GmbH Eduard-Bodem-Gasse 5-7, A-6020 Innsbruck http://www.bestsolution.at/ Reg. Nr. FN 222302s am Firmenbuchgericht Innsbruck From kevin.rushforth at oracle.com Tue Mar 29 15:52:30 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Tue, 29 Mar 2016 08:52:30 -0700 Subject: [9] Review request: 8152993: All launcher tests fail to launch in non-jigsaw legacy mode Message-ID: <56FAA4BE.3030406@oracle.com> Please review this simple fix for system test failure: https://bugs.openjdk.java.net/browse/JDK-8152993 -- Kevin From David.Hill at Oracle.com Tue Mar 29 20:19:13 2016 From: David.Hill at Oracle.com (David Hill) Date: Tue, 29 Mar 2016 16:19:13 -0400 Subject: Move & Copy DnD operation on OS-X and Linux In-Reply-To: <56FA6147.3090403@bestsolution.at> References: <56FA6147.3090403@bestsolution.at> Message-ID: <56FAE341.70101@Oracle.com> On 3/29/16, 7:04 AM, Tom Schindl wrote: > Hi, Tom, This is something we might be able to change in 9. Would you file a bug for this ? thanks, Dave > > While developing our editor control we tried to implement DnD of > Text-Selection to: > * to rearrange text inside the control > * to copy text selections to another position inside the text > > On Win32 everything works as expected, if you start dragging the initial > operation is MOVE and you can change that to a COPY by pressing CTRL > while dragging. > > On Linux the initial gesture is COPY which is not how DnD works in > things like nautilus, ... . I can get that to change to a move operation > by holding the SHIFT key. > > On OS-X the initial gesture is a COPY and which is not how DnD works > finder or eg Finder, and I haven't found a way to change the operation > to a MOVE. > > I would expect the following on ALL operation systems: > - a drag WITHOUT any modifier key is a MOVE operation > > - on Windows& Linux I make it to a copy operation by pressing CTRL > while dragging > > - on OS-X I make it a copy operation by pressing ALT while dragging > > In general I think the problem is even bigger because the default > operation depends on the target eg on windows when you drag a file > between 2 folders on the same filesystem you get a default MOVE but if > you drag to another one the default is a COPY and SHIFT makes it a MOVE. > > JavaFX does all that right but what it gets wrong is the default > operation. Any thoughts on this? Did we miss something obvious? > > The simple application below is how to reproduce. > >> package application; >> >> >> import javafx.application.Application; >> import javafx.scene.Scene; >> import javafx.scene.input.ClipboardContent; >> import javafx.scene.input.DataFormat; >> import javafx.scene.input.DragEvent; >> import javafx.scene.input.Dragboard; >> import javafx.scene.input.MouseEvent; >> import javafx.scene.input.TransferMode; >> import javafx.scene.layout.BorderPane; >> import javafx.stage.Stage; >> >> >> public class Main extends Application { >> >> private BorderPane root; >> @Override >> public void start(Stage primaryStage) { >> try { >> root = new BorderPane(); >> Scene scene = new Scene(root,400,400); >> scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); >> primaryStage.setScene(scene); >> primaryStage.show(); >> >> root.setOnDragDetected(this::onDragDetected); >> root.setOnDragOver(this::onDragOver); >> root.setOnDragDropped(this::onDragDropped); >> root.setOnDragDone(this::onDragDone); >> >> } catch(Exception e) { >> e.printStackTrace(); >> } >> } >> >> public static void main(String[] args) { >> launch(args); >> } >> >> private final DataFormat f = new DataFormat() { >> }; >> >> private void onDragDetected(MouseEvent event) { >> System.err.println(this + " onDragDetected"); >> Dragboard db = root.startDragAndDrop(TransferMode.ANY); >> >> ClipboardContent c = new ClipboardContent(); >> c.putString("Hello world"); >> db.setContent(c); >> event.consume(); >> } >> >> private void onDragOver(DragEvent event) { >> event.getTransferMode(); >> event.acceptTransferModes(TransferMode.ANY); >> System.err.println(event.getTransferMode()); >> // System.err.println("onDragOver " + event.getAcceptedTransferMode()); >> event.consume(); >> } >> >> private void onDragDropped(DragEvent event) { >> System.err.println(this + " onDragDropped " + event.getAcceptedTransferMode()); >> event.setDropCompleted(true); >> event.consume(); >> } >> >> private void onDragDone(DragEvent event) { >> System.err.println(this + " onDragDone " + event.getAcceptedTransferMode()); >> System.err.println("payload: " + event.getDragboard().getString()); >> event.consume(); >> } >> } > > -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From tom.schindl at bestsolution.at Tue Mar 29 21:48:01 2016 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Tue, 29 Mar 2016 23:48:01 +0200 Subject: Move & Copy DnD operation on OS-X and Linux In-Reply-To: <56FAE341.70101@Oracle.com> References: <56FA6147.3090403@bestsolution.at> <56FAE341.70101@Oracle.com> Message-ID: <56FAF811.7060001@bestsolution.at> Done as https://bugs.openjdk.java.net/browse/JDK-8153032 Tom On 29.03.16 22:19, David Hill wrote: > On 3/29/16, 7:04 AM, Tom Schindl wrote: >> Hi, > Tom, > This is something we might be able to change in 9. > Would you file a bug for this ? > > thanks, > Dave >> >> While developing our editor control we tried to implement DnD of >> Text-Selection to: >> * to rearrange text inside the control >> * to copy text selections to another position inside the text >> >> On Win32 everything works as expected, if you start dragging the initial >> operation is MOVE and you can change that to a COPY by pressing CTRL >> while dragging. >> >> On Linux the initial gesture is COPY which is not how DnD works in >> things like nautilus, ... . I can get that to change to a move operation >> by holding the SHIFT key. >> >> On OS-X the initial gesture is a COPY and which is not how DnD works >> finder or eg Finder, and I haven't found a way to change the operation >> to a MOVE. >> >> I would expect the following on ALL operation systems: >> - a drag WITHOUT any modifier key is a MOVE operation >> >> - on Windows& Linux I make it to a copy operation by pressing CTRL >> while dragging >> >> - on OS-X I make it a copy operation by pressing ALT while dragging >> >> In general I think the problem is even bigger because the default >> operation depends on the target eg on windows when you drag a file >> between 2 folders on the same filesystem you get a default MOVE but if >> you drag to another one the default is a COPY and SHIFT makes it a MOVE. >> >> JavaFX does all that right but what it gets wrong is the default >> operation. Any thoughts on this? Did we miss something obvious? >> >> The simple application below is how to reproduce. >> >>> package application; >>> >>> >>> import javafx.application.Application; >>> import javafx.scene.Scene; >>> import javafx.scene.input.ClipboardContent; >>> import javafx.scene.input.DataFormat; >>> import javafx.scene.input.DragEvent; >>> import javafx.scene.input.Dragboard; >>> import javafx.scene.input.MouseEvent; >>> import javafx.scene.input.TransferMode; >>> import javafx.scene.layout.BorderPane; >>> import javafx.stage.Stage; >>> >>> >>> public class Main extends Application { >>> >>> private BorderPane root; >>> @Override >>> public void start(Stage primaryStage) { >>> try { >>> root = new BorderPane(); >>> Scene scene = new Scene(root,400,400); >>> >>> scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); >>> >>> primaryStage.setScene(scene); >>> primaryStage.show(); >>> >>> root.setOnDragDetected(this::onDragDetected); >>> root.setOnDragOver(this::onDragOver); >>> root.setOnDragDropped(this::onDragDropped); >>> root.setOnDragDone(this::onDragDone); >>> >>> } catch(Exception e) { >>> e.printStackTrace(); >>> } >>> } >>> >>> public static void main(String[] args) { >>> launch(args); >>> } >>> >>> private final DataFormat f = new DataFormat() { >>> }; >>> >>> private void onDragDetected(MouseEvent event) { >>> System.err.println(this + " onDragDetected"); >>> Dragboard db = root.startDragAndDrop(TransferMode.ANY); >>> >>> ClipboardContent c = new ClipboardContent(); >>> c.putString("Hello world"); >>> db.setContent(c); >>> event.consume(); >>> } >>> >>> private void onDragOver(DragEvent event) { >>> event.getTransferMode(); >>> event.acceptTransferModes(TransferMode.ANY); >>> System.err.println(event.getTransferMode()); >>> // System.err.println("onDragOver " + >>> event.getAcceptedTransferMode()); >>> event.consume(); >>> } >>> >>> private void onDragDropped(DragEvent event) { >>> System.err.println(this + " onDragDropped " + >>> event.getAcceptedTransferMode()); >>> event.setDropCompleted(true); >>> event.consume(); >>> } >>> >>> private void onDragDone(DragEvent event) { >>> System.err.println(this + " onDragDone " + >>> event.getAcceptedTransferMode()); >>> System.err.println("payload: " + >>> event.getDragboard().getString()); >>> event.consume(); >>> } >>> } >> >> > > -- Thomas Schindl, CTO BestSolution.at EDV Systemhaus GmbH Eduard-Bodem-Gasse 5-7, A-6020 Innsbruck http://www.bestsolution.at/ Reg. Nr. FN 222302s am Firmenbuchgericht Innsbruck From guru.hb at oracle.com Wed Mar 30 05:39:11 2016 From: guru.hb at oracle.com (Guru Hb) Date: Wed, 30 Mar 2016 11:09:11 +0530 Subject: [9] Review request for 8153049 : Merge "Frame and Page lifetime fixes in WebCore::createwindows" and "FrameLoader::checkCompleted can hit the "ref'ing while destroyed" assertion" In-Reply-To: <24e1299d-e6d4-4b1f-bf32-9d1932418c3c@default> References: <2efd6ecd-2204-4d66-8ecc-0bb2977f1a09@default> <15a2a081-054d-4d82-8fff-632d43936d90@default> <24e1299d-e6d4-4b1f-bf32-9d1932418c3c@default> Message-ID: <56FB667F.5000207@oracle.com> Hi Alexander, Arunprasad & Kevin, JBS : https://bugs.openjdk.java.net/browse/JDK-8153049 Webrev : http://cr.openjdk.java.net/~ghb/8153049/webrev.00/ Merging webkit change set, Root cause and description are updated in JBS. Thanks, Guru From guru.hb at oracle.com Wed Mar 30 07:04:05 2016 From: guru.hb at oracle.com (Guru Hb) Date: Wed, 30 Mar 2016 12:34:05 +0530 Subject: [9] Review request for 8152315 : Don't server / request the Cached resource for if its Main resource is explicitly cancelled In-Reply-To: <24e1299d-e6d4-4b1f-bf32-9d1932418c3c@default> References: <2efd6ecd-2204-4d66-8ecc-0bb2977f1a09@default> <15a2a081-054d-4d82-8fff-632d43936d90@default> <24e1299d-e6d4-4b1f-bf32-9d1932418c3c@default> Message-ID: <56FB7A65.3050705@oracle.com> Updated webrev : http://cr.openjdk.java.net/~ghb/8152315/webrev.01/ Which address heap corruption detected by using GFlag On 22/3/16 12:54 AM, Guru Hb wrote: > Hi Alexander, Arunprasad & Kevin, > > JBS : https://bugs.openjdk.java.net/browse/JDK-8152315 > Webrev : http://cr.openjdk.java.net/~ghb/8152315/webrev.00/ > > RC and Solution updated in JIRA, fix tested on Windows. > > Thanks, > Guru From mp at jugs.org Wed Mar 30 07:12:32 2016 From: mp at jugs.org (Dr. Michael Paus) Date: Wed, 30 Mar 2016 09:12:32 +0200 Subject: [9] Review request: 8091832: Provide API for getting the Screen scale on HiDPI screens In-Reply-To: <56F9D97B.30108@oracle.com> References: <56F9D97B.30108@oracle.com> Message-ID: <56FB7C60.6040808@jugs.org> Hi, I'd like to know on which systems this distinction between X- and Y-direction is actually relevant. I've never seen such a system before. Michael Am 29.03.16 um 03:25 schrieb Jim Graham: > bug: https://bugs.openjdk.java.net/browse/JDK-8091832 > webrev: http://cr.openjdk.java.net/~flar/JDK-8091832/webrev.rt.00/ > > This webrev fixes pixel snapping and application control over pixel > scaling on HiDPI screens: > > - snap*() methods are all updated to take the current scale into account > - new variants of snap*() methods are added for separate X/Y control: > Added: Region.snapSpaceX/Y() > Added: Region.snapSizeX/Y() > Added: Region.snapPositionX/Y() > - the non-X/Y variants of the above methods are now deprecated: > Deprecated: Region.snapSpace() > Deprecated: Region.snapSize() > Deprecated: Region.snapPosition() > - methods to query the scale values of Screen objects: > Added: Screen.getOutputScaleX/Y() > - properties to query and/or modify the scale values of Window objects: > Added Read-Only DoubleProperty: Window.getOutputScaleX/Y() > Added Read-Write BooleanProperty: > Window.set/getForceIntegerRenderScale() > Added Read-Write DoubleProperty: Window.set/getRenderScaleX/Y() > > The changes have been compiled and tested on Windows and Mac and there > were trivial changes needed to the Linux files to adapt to one new > method signature, but I haven't done the test build on Linux yet... > > ...jim From David.Hill at Oracle.com Wed Mar 30 17:33:49 2016 From: David.Hill at Oracle.com (David Hill) Date: Wed, 30 Mar 2016 13:33:49 -0400 Subject: review: Conditionally save policy file in Sandbox tests Message-ID: <56FC0DFD.8060305@Oracle.com> Kevin, Conditionally save policy file in Sandbox tests https://bugs.openjdk.java.net/browse/JDK-8153086 http://cr.openjdk.java.net/~ddhill/8153086/ a small change, but very helpful when debugging the Sandbox test apps -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From David.Hill at Oracle.com Wed Mar 30 17:34:01 2016 From: David.Hill at Oracle.com (David Hill) Date: Wed, 30 Mar 2016 13:34:01 -0400 Subject: review: remove a cygwin dependancy Message-ID: <56FC0E09.10804@Oracle.com> Kevin, I have been running with this for a couple of weeks now. remove a cygwin dependancy https://bugs.openjdk.java.net/browse/JDK-8151747 http://cr.openjdk.java.net/~ddhill/8151747/ -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From ali.ebrahimi1781 at gmail.com Wed Mar 30 18:02:22 2016 From: ali.ebrahimi1781 at gmail.com (Ali Ebrahimi) Date: Wed, 30 Mar 2016 22:32:22 +0430 Subject: review: remove a cygwin dependancy In-Reply-To: <56FC0E09.10804@Oracle.com> References: <56FC0E09.10804@Oracle.com> Message-ID: Hi, line ByteArrayOutputStream out = new ByteArrayOutputStream(); can be removed! On Wed, Mar 30, 2016 at 10:04 PM, David Hill wrote: > > Kevin, > I have been running with this for a couple of weeks now. > > remove a cygwin dependancy > https://bugs.openjdk.java.net/browse/JDK-8151747 > http://cr.openjdk.java.net/~ddhill/8151747/ > > -- > David Hill > Java Embedded Development > > "A man's feet should be planted in his country, but his eyes should survey > the world." > -- George Santayana (1863 - 1952) > > -- Best Regards, Ali Ebrahimi From David.Hill at Oracle.com Wed Mar 30 18:06:23 2016 From: David.Hill at Oracle.com (David Hill) Date: Wed, 30 Mar 2016 14:06:23 -0400 Subject: review: remove a cygwin dependancy In-Reply-To: References: <56FC0E09.10804@Oracle.com> Message-ID: <56FC159F.4050807@Oracle.com> On 3/30/16, 2:02 PM, Ali Ebrahimi wrote: > Hi, > > line > ByteArrayOutputStream out = new ByteArrayOutputStream(); > can be removed! Good catch! thanks > > On Wed, Mar 30, 2016 at 10:04 PM, David Hill > wrote: > > > Kevin, > I have been running with this for a couple of weeks now. > > remove a cygwin dependancy > https://bugs.openjdk.java.net/browse/JDK-8151747 > http://cr.openjdk.java.net/~ddhill/8151747/ > > -- > David Hill > Java Embedded Development > > "A man's feet should be planted in his country, but his eyes should survey the world." > -- George Santayana (1863 - 1952) > > > > > -- > > Best Regards, > Ali Ebrahimi -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From David.Hill at Oracle.com Wed Mar 30 18:12:36 2016 From: David.Hill at Oracle.com (David Hill) Date: Wed, 30 Mar 2016 14:12:36 -0400 Subject: review: javafx.swing system test RT30650Test fails in jigsaw mode Message-ID: <56FC1714.7040906@Oracle.com> Kevin, you were right about: https://bugs.openjdk.java.net/browse/JDK-8152898 just need an add exports: diff -r 1a6124ade5b4 tests/system/src/test/addExports --- a/tests/system/src/test/addExports Wed Mar 30 13:58:30 2016 -0400 +++ b/tests/system/src/test/addExports Wed Mar 30 14:03:58 2016 -0400 @@ -18,5 +18,6 @@ javafx.graphics/com.sun.javafx.iio.png=ALL-UNNAMED,\ javafx.graphics/com.sun.javafx.image.impl=ALL-UNNAMED,\ javafx.graphics/com.sun.javafx.image=ALL-UNNAMED,\ + javafx.graphics/com.sun.javafx.tk=ALL-UNNAMED,\ \ java.base/sun.util.logging=ALL-UNNAMED" -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From David.Hill at Oracle.com Wed Mar 30 18:18:50 2016 From: David.Hill at Oracle.com (David Hill) Date: Wed, 30 Mar 2016 14:18:50 -0400 Subject: review: Add a command line toggle for worker.debug Message-ID: <56FC188A.7020000@Oracle.com> Kevin, https://bugs.openjdk.java.net/browse/JDK-8153110 Add a command line toggle for worker.debug There is a diff inline in the bug that works for toggling worker.debug from the gradle command line -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From David.Hill at Oracle.com Wed Mar 30 18:25:20 2016 From: David.Hill at Oracle.com (David Hill) Date: Wed, 30 Mar 2016 14:25:20 -0400 Subject: review: remove a cygwin dependancy In-Reply-To: <56FC0E09.10804@Oracle.com> References: <56FC0E09.10804@Oracle.com> Message-ID: <56FC1A10.2010203@Oracle.com> On 3/30/16, 1:34 PM, David Hill wrote: > > Kevin, > I have been running with this for a couple of weeks now. > > remove a cygwin dependancy > https://bugs.openjdk.java.net/browse/JDK-8151747 > http://cr.openjdk.java.net/~ddhill/8151747/ > I updated the webrev in place, removing the unneeded ByteArrayOutputStream and fixing the whitespace. -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From james.graham at oracle.com Wed Mar 30 19:50:16 2016 From: james.graham at oracle.com (Jim Graham) Date: Wed, 30 Mar 2016 12:50:16 -0700 Subject: [9] Review request: 8091832: Provide API for getting the Screen scale on HiDPI screens In-Reply-To: <56FB7C60.6040808@jugs.org> References: <56F9D97B.30108@oracle.com> <56FB7C60.6040808@jugs.org> Message-ID: <56FC2DF8.8020709@oracle.com> Windows provides separate values for the X & Y direction. All of their system APIs that deal with screen and window resolutions provide both values... ...jim On 3/30/2016 12:12 AM, Dr. Michael Paus wrote: > Hi, > I'd like to know on which systems this distinction between X- and > Y-direction is actually relevant. > I've never seen such a system before. > Michael > > Am 29.03.16 um 03:25 schrieb Jim Graham: >> bug: https://bugs.openjdk.java.net/browse/JDK-8091832 >> webrev: http://cr.openjdk.java.net/~flar/JDK-8091832/webrev.rt.00/ >> >> This webrev fixes pixel snapping and application control over pixel >> scaling on HiDPI screens: >> >> - snap*() methods are all updated to take the current scale into account >> - new variants of snap*() methods are added for separate X/Y control: >> Added: Region.snapSpaceX/Y() >> Added: Region.snapSizeX/Y() >> Added: Region.snapPositionX/Y() >> - the non-X/Y variants of the above methods are now deprecated: >> Deprecated: Region.snapSpace() >> Deprecated: Region.snapSize() >> Deprecated: Region.snapPosition() >> - methods to query the scale values of Screen objects: >> Added: Screen.getOutputScaleX/Y() >> - properties to query and/or modify the scale values of Window objects: >> Added Read-Only DoubleProperty: Window.getOutputScaleX/Y() >> Added Read-Write BooleanProperty: >> Window.set/getForceIntegerRenderScale() >> Added Read-Write DoubleProperty: Window.set/getRenderScaleX/Y() >> >> The changes have been compiled and tested on Windows and Mac and there >> were trivial changes needed to the Linux files to adapt to one new >> method signature, but I haven't done the test build on Linux yet... >> >> ...jim > From james.graham at oracle.com Thu Mar 31 07:52:15 2016 From: james.graham at oracle.com (Jim Graham) Date: Thu, 31 Mar 2016 00:52:15 -0700 Subject: [9] Review request: 8091832: Provide API for getting the Screen scale on HiDPI screens In-Reply-To: <56F9D97B.30108@oracle.com> References: <56F9D97B.30108@oracle.com> Message-ID: <56FCD72F.3000909@oracle.com> I've updated the fix with the following additions: http://cr.openjdk.java.net/~flar/JDK-8091832/webrev.rt.02/ - Redundant or obsolete command line overrides removed from Windows code as follows: Settings still supported: -Dglass.win.uiScale Settings no longer supported, implementation conflicts with Per-Monitor DPI support: -Dglass.win.minHiDPI Settings no longer supported, replaced by API in FX classes: -Dglass.win.renderScale -Dglass.win.forceIntegerRenderScale - Font size now scales with uiScale override on Windows - Fixes to scaling in JFXPanel - Fixes to scaling in SwingPanel - Monocle Screen initialization fixed Note that SwingNode does not seem to relay the FX scaling parameters to Swing correctly, but that was true before these fixes. This patch will keep the functionality roughly the same, but additional fixes are needed to do proper scaling of embedded Swing nodes. I looked at what was needed and have an idea of what the fix would involve, but decided that it was outside the scope of these fixes that are needed to get the HiDPI FX properties implemented. ...jim On 3/28/16 6:25 PM, Jim Graham wrote: > bug: https://bugs.openjdk.java.net/browse/JDK-8091832 > webrev: http://cr.openjdk.java.net/~flar/JDK-8091832/webrev.rt.00/ > > This webrev fixes pixel snapping and application control over pixel > scaling on HiDPI screens: > > - snap*() methods are all updated to take the current scale into account > - new variants of snap*() methods are added for separate X/Y control: > Added: Region.snapSpaceX/Y() > Added: Region.snapSizeX/Y() > Added: Region.snapPositionX/Y() > - the non-X/Y variants of the above methods are now deprecated: > Deprecated: Region.snapSpace() > Deprecated: Region.snapSize() > Deprecated: Region.snapPosition() > - methods to query the scale values of Screen objects: > Added: Screen.getOutputScaleX/Y() > - properties to query and/or modify the scale values of Window objects: > Added Read-Only DoubleProperty: Window.getOutputScaleX/Y() > Added Read-Write BooleanProperty: > Window.set/getForceIntegerRenderScale() > Added Read-Write DoubleProperty: Window.set/getRenderScaleX/Y() > > The changes have been compiled and tested on Windows and Mac and there > were trivial changes needed to the Linux files to adapt to one new > method signature, but I haven't done the test build on Linux yet... > > ...jim From jose.pereda at gluonhq.com Thu Mar 31 09:16:15 2016 From: jose.pereda at gluonhq.com (=?UTF-8?B?Sm9zw6kgUGVyZWRh?=) Date: Thu, 31 Mar 2016 11:16:15 +0200 Subject: Posible bug when maximizing an already maximized stage on Mac Message-ID: Hi all, Running this little test on a MacBook Pro Retina, OS X 10.11.4, with JDK 8u77: @Override public void start(Stage stage) { Button button = new Button("Click to maximize"); button.setOnAction(e -> stage.setMaximized(true)); Rectangle2D bounds = Screen.getPrimary().getVisualBounds(); stage.setScene(new Scene(new StackPane(button), bounds.getWidth(), bounds.getHeight())); stage.show(); } which shouldn't do anything at all, since the stage is already maximized, turns into an iconified application, with root dimensions 0x0, stage dimensions 0x22 (height of menubar), stage.isIconified() returns false, and it can't be restored again to any visible size by any means other than closing the application from the dock. A posible situation where this could happen: persisting and restoring the properties (x, y, width, height and maximized) of a maximized stage. I haven't found any report of this. Should I file a bug? Thanks, Jose -- From jerome.p.cambon at gmail.com Thu Mar 31 10:31:49 2016 From: jerome.p.cambon at gmail.com (=?utf-8?Q?J=C3=A9rome_Cambon?=) Date: Thu, 31 Mar 2016 12:31:49 +0200 Subject: Posible bug when maximizing an already maximized stage on Mac In-Reply-To: References: Message-ID: Hi, I can reproduce the issue as well, on both my Mac Retina display and my external display. Additional comments: - If one resize the window and click the maximize button several times: no issue - Once maximized, if one resize the window by only few pixels, and click the maximize button: nothing happen. - I guess the ?maximized? property should be set to false as soon as the window is resized: this is not the case. Jerome > On Mar 31, 2016, at 11:16 AM, Jos? Pereda wrote: > > Hi all, > > Running this little test on a MacBook Pro Retina, OS X 10.11.4, with JDK > 8u77: > > @Override > public void start(Stage stage) { > Button button = new Button("Click to maximize"); > button.setOnAction(e -> stage.setMaximized(true)); > Rectangle2D bounds = Screen.getPrimary().getVisualBounds(); > stage.setScene(new Scene(new StackPane(button), bounds.getWidth(), > bounds.getHeight())); > stage.show(); > } > > which shouldn't do anything at all, since the stage is already maximized, > turns into an iconified application, with root dimensions 0x0, stage > dimensions 0x22 (height of menubar), stage.isIconified() returns false, and > it can't be restored again to any visible size by any means other than > closing the application from the dock. > > A posible situation where this could happen: persisting and restoring the > properties (x, y, width, height and maximized) of a maximized stage. > > > I haven't found any report of this. Should I file a bug? > > Thanks, > Jose > > -- From jose.pereda at gluonhq.com Thu Mar 31 10:38:16 2016 From: jose.pereda at gluonhq.com (=?UTF-8?B?Sm9zw6kgUGVyZWRh?=) Date: Thu, 31 Mar 2016 12:38:16 +0200 Subject: Posible bug when maximizing an already maximized stage on Mac In-Reply-To: References: Message-ID: Hi Jerome, Your last comment is related to this open issue: https://bugs.openjdk.java.net/browse/JDK-8087618 Jose On Thu, Mar 31, 2016 at 12:31 PM, J?rome Cambon wrote: > Hi, > > I can reproduce the issue as well, on both my Mac Retina display and my > external display. > Additional comments: > - If one resize the window and click the maximize button several times: no > issue > - Once maximized, if one resize the window by only few pixels, and click > the maximize button: nothing happen. > - I guess the ?maximized? property should be set to false as soon as the > window is resized: this is not the case. > > Jerome > > > > On Mar 31, 2016, at 11:16 AM, Jos? Pereda > wrote: > > > > Hi all, > > > > Running this little test on a MacBook Pro Retina, OS X 10.11.4, with JDK > > 8u77: > > > > @Override > > public void start(Stage stage) { > > Button button = new Button("Click to maximize"); > > button.setOnAction(e -> stage.setMaximized(true)); > > Rectangle2D bounds = Screen.getPrimary().getVisualBounds(); > > stage.setScene(new Scene(new StackPane(button), bounds.getWidth(), > > bounds.getHeight())); > > stage.show(); > > } > > > > which shouldn't do anything at all, since the stage is already maximized, > > turns into an iconified application, with root dimensions 0x0, stage > > dimensions 0x22 (height of menubar), stage.isIconified() returns false, > and > > it can't be restored again to any visible size by any means other than > > closing the application from the dock. > > > > A posible situation where this could happen: persisting and restoring the > > properties (x, y, width, height and maximized) of a maximized stage. > > > > > > I haven't found any report of this. Should I file a bug? > > > > Thanks, > > Jose > > > > -- > > -- From kevin.rushforth at oracle.com Thu Mar 31 21:04:39 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Thu, 31 Mar 2016 14:04:39 -0700 Subject: CFV: New OpenJFX Committer: Murali Billa Message-ID: <56FD90E7.70802@oracle.com> I hereby nominate Murali Billa [1] to OpenJFX Committer. Murali is a member of JavaFX team at Oracle working on WebKit, who has contributed 10 changesets [5] to OpenJFX, at least 8 of which are significant. Votes are due by April 14, 2016. Only current OpenJFX Committers [2] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. For Lazy Consensus voting instructions, see [3]. Nomination to a project Committer is described in [4]. Thanks, -- Kevin [1] http://openjdk.java.net/census#mbilla [2] http://openjdk.java.net/census#openjfx [3] http://openjdk.java.net/bylaws#lazy-consensus [4] http://openjdk.java.net/projects#project-committer [5] List of changesets: http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/a251a1d65932 http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/ecea43f5734c http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/42b461505f27 http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/82ecaebd44cf http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/8643ca988cef http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/765fd07f22fc http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/ae75f92d5e53 http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/25db4b2e47a1 http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/51c2129d282c http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/cb8a24f5db2a From kevin.rushforth at oracle.com Thu Mar 31 21:08:17 2016 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Thu, 31 Mar 2016 14:08:17 -0700 Subject: CFV: New OpenJFX Committer: Murali Billa In-Reply-To: <56FD90E7.70802@oracle.com> References: <56FD90E7.70802@oracle.com> Message-ID: <56FD91C1.801@oracle.com> Vote: YES Kevin Rushforth wrote: > I hereby nominate Murali Billa [1] to OpenJFX Committer. > > Murali is a member of JavaFX team at Oracle working on WebKit, who has > contributed 10 changesets [5] to OpenJFX, at least 8 of which are > significant. > > Votes are due by April 14, 2016. > > Only current OpenJFX Committers [2] are eligible to vote on this > nomination. Votes must be cast in the open by replying to this mailing > list. > > For Lazy Consensus voting instructions, see [3]. Nomination to a > project Committer is described in [4]. > > Thanks, > > -- Kevin > > [1] http://openjdk.java.net/census#mbilla > > [2] http://openjdk.java.net/census#openjfx > > [3] http://openjdk.java.net/bylaws#lazy-consensus > > [4] http://openjdk.java.net/projects#project-committer > > [5] List of changesets: > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/a251a1d65932 > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/ecea43f5734c > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/42b461505f27 > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/82ecaebd44cf > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/8643ca988cef > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/765fd07f22fc > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/ae75f92d5e53 > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/25db4b2e47a1 > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/51c2129d282c > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/cb8a24f5db2a > From morris.meyer at oracle.com Thu Mar 31 21:09:28 2016 From: morris.meyer at oracle.com (Morris Meyer) Date: Thu, 31 Mar 2016 17:09:28 -0400 Subject: CFV: New OpenJFX Committer: Murali Billa In-Reply-To: <56FD90E7.70802@oracle.com> References: <56FD90E7.70802@oracle.com> Message-ID: <56FD9208.9000602@oracle.com> Vote: YES On 3/31/16 5:04 PM, Kevin Rushforth wrote: > I hereby nominate Murali Billa [1] to OpenJFX Committer. > > Murali is a member of JavaFX team at Oracle working on WebKit, who has > contributed 10 changesets [5] to OpenJFX, at least 8 of which are > significant. > > Votes are due by April 14, 2016. > > Only current OpenJFX Committers [2] are eligible to vote on this > nomination. Votes must be cast in the open by replying to this mailing > list. > > For Lazy Consensus voting instructions, see [3]. Nomination to a > project Committer is described in [4]. > > Thanks, > > -- Kevin > > [1] http://openjdk.java.net/census#mbilla > > [2] http://openjdk.java.net/census#openjfx > > [3] http://openjdk.java.net/bylaws#lazy-consensus > > [4] http://openjdk.java.net/projects#project-committer > > [5] List of changesets: > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/a251a1d65932 > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/ecea43f5734c > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/42b461505f27 > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/82ecaebd44cf > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/8643ca988cef > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/765fd07f22fc > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/ae75f92d5e53 > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/25db4b2e47a1 > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/51c2129d282c > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/cb8a24f5db2a > From jonathan.giles at oracle.com Thu Mar 31 21:14:25 2016 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Fri, 1 Apr 2016 10:14:25 +1300 Subject: CFV: New OpenJFX Committer: Murali Billa In-Reply-To: <56FD90E7.70802@oracle.com> References: <56FD90E7.70802@oracle.com> Message-ID: <56FD9331.7080509@oracle.com> Vote: YES -- Jonathan On 1/04/16 10:04 AM, Kevin Rushforth wrote: > I hereby nominate Murali Billa [1] to OpenJFX Committer. > > Murali is a member of JavaFX team at Oracle working on WebKit, who has > contributed 10 changesets [5] to OpenJFX, at least 8 of which are > significant. > > Votes are due by April 14, 2016. > > Only current OpenJFX Committers [2] are eligible to vote on this > nomination. Votes must be cast in the open by replying to this mailing > list. > > For Lazy Consensus voting instructions, see [3]. Nomination to a > project Committer is described in [4]. > > Thanks, > > -- Kevin > > [1] http://openjdk.java.net/census#mbilla > > [2] http://openjdk.java.net/census#openjfx > > [3] http://openjdk.java.net/bylaws#lazy-consensus > > [4] http://openjdk.java.net/projects#project-committer > > [5] List of changesets: > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/a251a1d65932 > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/ecea43f5734c > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/42b461505f27 > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/82ecaebd44cf > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/8643ca988cef > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/765fd07f22fc > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/ae75f92d5e53 > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/25db4b2e47a1 > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/51c2129d282c > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/cb8a24f5db2a > From philip.race at oracle.com Thu Mar 31 21:13:10 2016 From: philip.race at oracle.com (Phil Race) Date: Thu, 31 Mar 2016 14:13:10 -0700 Subject: CFV: New OpenJFX Committer: Murali Billa In-Reply-To: <56FD90E7.70802@oracle.com> References: <56FD90E7.70802@oracle.com> Message-ID: <56FD92E6.3020107@oracle.com> Vote: yes -phil. On 03/31/2016 02:04 PM, Kevin Rushforth wrote: > I hereby nominate Murali Billa [1] to OpenJFX Committer. From james.graham at oracle.com Thu Mar 31 21:19:22 2016 From: james.graham at oracle.com (Jim Graham) Date: Thu, 31 Mar 2016 14:19:22 -0700 Subject: CFV: New OpenJFX Committer: Murali Billa In-Reply-To: <56FD90E7.70802@oracle.com> References: <56FD90E7.70802@oracle.com> Message-ID: <56FD945A.5000009@oracle.com> Vote: yes ...jim On 3/31/16 2:04 PM, Kevin Rushforth wrote: > I hereby nominate Murali Billa [1] to OpenJFX Committer. > > Murali is a member of JavaFX team at Oracle working on WebKit, who has > contributed 10 changesets [5] to OpenJFX, at least 8 of which are > significant. > > Votes are due by April 14, 2016. > > Only current OpenJFX Committers [2] are eligible to vote on this > nomination. Votes must be cast in the open by replying to this mailing > list. > > For Lazy Consensus voting instructions, see [3]. Nomination to a project > Committer is described in [4]. > > Thanks, > > -- Kevin > > [1] http://openjdk.java.net/census#mbilla > > [2] http://openjdk.java.net/census#openjfx > > [3] http://openjdk.java.net/bylaws#lazy-consensus > > [4] http://openjdk.java.net/projects#project-committer > > [5] List of changesets: > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/a251a1d65932 > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/ecea43f5734c > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/42b461505f27 > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/82ecaebd44cf > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/8643ca988cef > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/765fd07f22fc > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/ae75f92d5e53 > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/25db4b2e47a1 > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/51c2129d282c > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/cb8a24f5db2a > From David.Hill at Oracle.com Thu Mar 31 21:25:56 2016 From: David.Hill at Oracle.com (David Hill) Date: Thu, 31 Mar 2016 17:25:56 -0400 Subject: CFV: New OpenJFX Committer: Murali Billa In-Reply-To: <56FD90E7.70802@oracle.com> References: <56FD90E7.70802@oracle.com> Message-ID: <56FD95E4.2060502@Oracle.com> On 3/31/16, 5:04 PM, Kevin Rushforth wrote: VOTE: yes > I hereby nominate Murali Billa [1] to OpenJFX Committer. > > Murali is a member of JavaFX team at Oracle working on WebKit, who has contributed 10 changesets [5] to OpenJFX, at least 8 of which are significant. > > Votes are due by April 14, 2016. > > Only current OpenJFX Committers [2] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. > > For Lazy Consensus voting instructions, see [3]. Nomination to a project Committer is described in [4]. > > Thanks, > > -- Kevin > > [1] http://openjdk.java.net/census#mbilla > > [2] http://openjdk.java.net/census#openjfx > > [3] http://openjdk.java.net/bylaws#lazy-consensus > > [4] http://openjdk.java.net/projects#project-committer > > [5] List of changesets: > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/a251a1d65932 > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/ecea43f5734c > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/42b461505f27 > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/82ecaebd44cf > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/8643ca988cef > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/765fd07f22fc > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/ae75f92d5e53 > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/25db4b2e47a1 > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/51c2129d282c > http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/cb8a24f5db2a > -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From David.Hill at Oracle.com Thu Mar 31 21:59:35 2016 From: David.Hill at Oracle.com (David Hill) Date: Thu, 31 Mar 2016 17:59:35 -0400 Subject: review: convert addExports to new syntax Message-ID: <56FD9DC7.2090708@Oracle.com> Kevin, yet another review for you to look at :-) https://bugs.openjdk.java.net/browse/JDK-8153231 http://cr.openjdk.java.net/~ddhill/8153231/ -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From chien.yang at oracle.com Thu Mar 31 22:32:22 2016 From: chien.yang at oracle.com (Chien Yang) Date: Thu, 31 Mar 2016 15:32:22 -0700 Subject: [9] Code Review Request: 8144556: Add support to allow user specified rendering order Message-ID: <56FDA576.5060306@oracle.com> Please review the proposed specification and implementation. JIRA: https://bugs.openjdk.java.net/browse/JDK-8144556 Webrev: http://cr.openjdk.java.net/~ckyang/JDK-8144556/webrev.00/ - Chien