Re: [OpenJDK 2D-Dev] RFR: 8264475: CopyArea ignores clip state in metal rendering pipeline [v4]

2021-04-02 Thread Jayathirth D V
On Sat, 3 Apr 2021 05:30:12 GMT, Sergey Bylokhov  wrote:

> > We need to use appropriate encoder(where scissor is set) to honour clip in 
> > copyArea.
> 
> It is quite interesting that blitting with or without clipping does not have 
> any difference. thank you for confirmation. but probably our perf tests are 
> not good enough.

Exactly i suspect we are not hitting threshold of GPU computing in our tests. 
If we hit GPU threshold with larger clip bounds i expect performance to be on 
higher side after the fix.

-

PR: https://git.openjdk.java.net/jdk/pull/3283


Re: [OpenJDK 2D-Dev] RFR: 8264475: CopyArea ignores clip state in metal rendering pipeline [v4]

2021-04-02 Thread Sergey Bylokhov
On Sat, 3 Apr 2021 05:02:24 GMT, Jayathirth D V  wrote:

> We need to use appropriate encoder(where scissor is set) to honour clip in 
> copyArea.

It is quite interesting that blitting with or without clipping does not have 
any difference. thank you for confirmation. but probably our perf tests are not 
good enough.

-

PR: https://git.openjdk.java.net/jdk/pull/3283


Re: [OpenJDK 2D-Dev] RFR: 8264475: CopyArea ignores clip state in metal rendering pipeline [v4]

2021-04-02 Thread Jayathirth D V
On Sat, 3 Apr 2021 03:51:29 GMT, Sergey Bylokhov  wrote:

> > I am not getting what do you mean by 'new "round trip" '. Please elaborate.
> > Regarding performance metrics i have captured the details in the bug and 
> > there is no degradation.
> 
> The new code path which takes care of the clip, if there is no degradation 
> means that we get it for free?

Before this change we used to get blitEncoder from same commandbuffer(and same 
CommandQueue) as we are doing now. And then commit the commandbuffer, so from 
computational perspective we are not holding or doing anything extra in new 
implementation. We need to use appropriate encoder(where scissor is set) to 
honour clip in copyArea.

Since we are not seeing any difference in performance numbers (especially in 
swingmark where we do lot of scrolling/copyArea) we are basically getting 
clipping in copyArea without any degradation. Also in Netbeans i have done good 
amount scrolling test and i dont see any degradation.

-

PR: https://git.openjdk.java.net/jdk/pull/3283


Re: [OpenJDK 2D-Dev] RFR: 8264475: CopyArea ignores clip state in metal rendering pipeline [v4]

2021-04-02 Thread Sergey Bylokhov
On Sat, 3 Apr 2021 02:56:48 GMT, Jayathirth D V  wrote:

> I am not getting what do you mean by 'new "round trip" '. Please elaborate.
> Regarding performance metrics i have captured the details in the bug and 
> there is no degradation.

The new code path which takes care of the clip, if there is no degradation 
means that we get it for free?

-

PR: https://git.openjdk.java.net/jdk/pull/3283


Re: [OpenJDK 2D-Dev] RFR: 8264475: CopyArea ignores clip state in metal rendering pipeline [v4]

2021-04-02 Thread Jayathirth D V
On Fri, 2 Apr 2021 22:43:36 GMT, Sergey Bylokhov  wrote:

> Just curious how this new "round trip" will affect the performance when the 
> clip is set and when not? is it cheap?

I am not getting what do you mean by 'new "round trip" '. Please elaborate.
Regarding performance metrics i have captured the details in the bug and there 
is no degradation.

-

PR: https://git.openjdk.java.net/jdk/pull/3283


Re: [OpenJDK 2D-Dev] RFR: 8264475: CopyArea ignores clip state in metal rendering pipeline [v4]

2021-04-02 Thread Sergey Bylokhov
On Thu, 1 Apr 2021 15:50:50 GMT, Prasanta Sadhukhan  
wrote:

>> Jayathirth D V has updated the pull request incrementally with one 
>> additional commit since the last revision:
>> 
>>   Refactor code to use drawTex2Tex
>
> Marked as reviewed by psadhukhan (Reviewer).

Just curious how this new "round trip" will affect the performance when the 
clip is set and when not? is it cheap?

-

PR: https://git.openjdk.java.net/jdk/pull/3283


Re: [OpenJDK 2D-Dev] RFR: 8255800: Raster creation methods need some specification clean up [v3]

2021-04-02 Thread Phil Race
> https://bugs.openjdk.java.net/browse/JDK-8255800 could have been a one line 
> spec clean up but
> it didn't take a lot of looking to realize there were many more 
> inconsistencies between spec and implementation.
> I've spent a lot of time on what is just small number of factory methods in 
> Raster because there are so
> many possible exceptions and in some cases they rely on other API they call 
> to generate exceptions and
> these may have not been documented or documented acc. to some long lost 
> behavior.
> I've mostly tried to ONLY change spec. But I couldn't help myself when some 
> checks were missed that
> ended up with bizarre and dubious behavior - throwing 
> NegativeArrayIndexException which just about
> always has to be an internal bug !
> 
> The supplied test passes on JDK 16 as well as this code, because the 
> (relatively) small number of
> cases where JDK 16 threw NegativeArrayIndexException are caught and allowed 
> only for releases < 17
> So where you see those in the test it corresponds to the behavioral changes 
> from NegativeArrayIndexException
> to IllegalArgumentException.
> JCK conformance tests still pass so they must not test those conditions.

Phil Race has updated the pull request incrementally with one additional commit 
since the last revision:

  8255800: Raster creation methods need some specification clean up

-

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/3223/files
  - new: https://git.openjdk.java.net/jdk/pull/3223/files/85148fd5..ba2ab76c

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk=3223=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk=3223=01-02

  Stats: 29 lines in 2 files changed: 27 ins; 0 del; 2 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3223.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3223/head:pull/3223

PR: https://git.openjdk.java.net/jdk/pull/3223


Re: [OpenJDK 2D-Dev] RFR: 8255800: Raster creation methods need some specification clean up [v2]

2021-04-02 Thread Phil Race
On Fri, 2 Apr 2021 21:03:30 GMT, Sergey Bylokhov  wrote:

>> Phil Race has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   8255800: Raster creation methods need some specification clean up
>
> Marked as reviewed by serb (Reviewer).

I updated the fix with some additional checks. This is implementation only - 
doesn't affect the spec clarification.
The problem was that without these new upfront checks for overflow of 
width+location.x, then on systems without
enough memory/swap you'd get an OOME before you got to the place where overflow 
was checked.

-

PR: https://git.openjdk.java.net/jdk/pull/3223


Re: [OpenJDK 2D-Dev] RFR: 8182043: Access to Windows Large Icons

2021-04-02 Thread Alexey Ivanov
On Mon, 8 Mar 2021 13:22:07 GMT, Alexander Zuev  wrote:

> Fix updated after first round of review.

src/java.desktop/share/classes/javax/swing/filechooser/FileSystemView.java line 
260:

> 258: 
> 259:/**
> 260: * Icon for a file, directory, or folder as it would be displayed in

*Returns an icon* for a file…

src/java.desktop/share/classes/javax/swing/filechooser/FileSystemView.java line 
276:

> 274: *
> 275: * @param f a File object
> 276: * @param size width and height of the icon in pixels

Pixels could be ambiguous now. Usually, Swing deals with user's space. That is 
16×16 icon should actually be 32×32 if the scale factor of the current display 
is 200%.

Yes, this issue is somewhat irrelevant because the method returns 
multi-resolution icon. However, the terminology used must be unambiguous and 
clear; for consistency with other Swing API, it should be in terms of user's 
space coordinates, *virtual pixels*.

-

PR: https://git.openjdk.java.net/jdk/pull/2875


Re: [OpenJDK 2D-Dev] RFR: 8255800: Raster creation methods need some specification clean up [v2]

2021-04-02 Thread Sergey Bylokhov
On Thu, 1 Apr 2021 20:27:37 GMT, Phil Race  wrote:

>> https://bugs.openjdk.java.net/browse/JDK-8255800 could have been a one line 
>> spec clean up but
>> it didn't take a lot of looking to realize there were many more 
>> inconsistencies between spec and implementation.
>> I've spent a lot of time on what is just small number of factory methods in 
>> Raster because there are so
>> many possible exceptions and in some cases they rely on other API they call 
>> to generate exceptions and
>> these may have not been documented or documented acc. to some long lost 
>> behavior.
>> I've mostly tried to ONLY change spec. But I couldn't help myself when some 
>> checks were missed that
>> ended up with bizarre and dubious behavior - throwing 
>> NegativeArrayIndexException which just about
>> always has to be an internal bug !
>> 
>> The supplied test passes on JDK 16 as well as this code, because the 
>> (relatively) small number of
>> cases where JDK 16 threw NegativeArrayIndexException are caught and allowed 
>> only for releases < 17
>> So where you see those in the test it corresponds to the behavioral changes 
>> from NegativeArrayIndexException
>> to IllegalArgumentException.
>> JCK conformance tests still pass so they must not test those conditions.
>
> Phil Race has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   8255800: Raster creation methods need some specification clean up

Marked as reviewed by serb (Reviewer).

-

PR: https://git.openjdk.java.net/jdk/pull/3223


Re: [OpenJDK 2D-Dev] RFR: 8258788: incorrect response to change in window insets [lanai] [v3]

2021-04-02 Thread Alexey Ushakov
> Dynamically change MTLLayer insets depending on FULL_WINDOW_CONTENT property. 
> MTLLayer.h header cleanup.

Alexey Ushakov has updated the pull request incrementally with one additional 
commit since the last revision:

  8258788: incorrect response to change in window insets [lanai]
  
  Corrected copyrights

-

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/3308/files
  - new: https://git.openjdk.java.net/jdk/pull/3308/files/cfe15982..52fc75e7

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk=3308=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk=3308=01-02

  Stats: 4 lines in 1 file changed: 1 ins; 2 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3308.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3308/head:pull/3308

PR: https://git.openjdk.java.net/jdk/pull/3308


Re: [OpenJDK 2D-Dev] RFR: 8258788: incorrect response to change in window insets [lanai] [v2]

2021-04-02 Thread Kevin Rushforth
On Fri, 2 Apr 2021 11:44:52 GMT, Alexey Ushakov  wrote:

>> Dynamically change MTLLayer insets depending on FULL_WINDOW_CONTENT 
>> property. MTLLayer.h header cleanup.
>
> Alexey Ushakov has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   8258788: incorrect response to change in window insets [lanai]
>   
>   Added regression test

test/jdk/java/awt/Window/FullWindowContentTest/FullWindowContentRenderTest.java 
line 9:

> 7:  * published by the Free Software Foundation.  Oracle designates this
> 8:  * particular file as subject to the "Classpath" exception as provided
> 9:  * by Oracle in the LICENSE file that accompanied this code.

Tests should not have the "Classpath" exception.

-

PR: https://git.openjdk.java.net/jdk/pull/3308


Re: [OpenJDK 2D-Dev] RFR: 8258788: incorrect response to change in window insets [lanai] [v2]

2021-04-02 Thread Alexey Ushakov
> Dynamically change MTLLayer insets depending on FULL_WINDOW_CONTENT property. 
> MTLLayer.h header cleanup.

Alexey Ushakov has updated the pull request incrementally with one additional 
commit since the last revision:

  8258788: incorrect response to change in window insets [lanai]
  
  Added regression test

-

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/3308/files
  - new: https://git.openjdk.java.net/jdk/pull/3308/files/afab7f43..cfe15982

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk=3308=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk=3308=00-01

  Stats: 165 lines in 1 file changed: 165 ins; 0 del; 0 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3308.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3308/head:pull/3308

PR: https://git.openjdk.java.net/jdk/pull/3308


Re: [OpenJDK 2D-Dev] RFR: 8258788: incorrect response to change in window insets [lanai]

2021-04-02 Thread Alexey Ushakov
On Thu, 1 Apr 2021 15:15:32 GMT, Sergey Bylokhov  wrote:

> Is it possible to automatically test it?

Yes, just added the test.

-

PR: https://git.openjdk.java.net/jdk/pull/3308