Hello Jay and Phil, This changes looks good for me.
> 5) Time tracing for primitive drawing was present in JetBrain’s code so we > took it. It may hamper overall performance while drawing, if it is not needed > we can remove it. Concerning the logging we can remove it. The junit microbenchmarks are enough for now to measure and compare performance of drawing. Best Regards, Alexey > On 19 Jun 2019, at 12:08, Jayathirth Rao <jayathirth....@oracle.com> wrote: > > Hi Phil, > > Thanks for your inputs. > 1) Removed MetalKit reference in make file > 2) Removed reference to sun.java2d.metal in jdk8_packages.dat file. > 3) For pipeline selection logic, I have created new sub-task JDK-8226384 > <https://bugs.openjdk.java.net/browse/JDK-8226384> > 4) Removed MetalKit references in imports which are not needed. > 5) Time tracing for primitive drawing was present in JetBrain’s code so we > took it. It may hamper overall performance while drawing, if it is not needed > we can remove it. > > Please find updated webrev for review: > http://cr.openjdk.java.net/~jdv/8225160/webrev.01/ > <http://cr.openjdk.java.net/~jdv/8225160/webrev.01/> > > For file comparison of new and old files, I have created comparison table at > http://cr.openjdk.java.net/~jdv/8225160/file_compare.rtf > <http://cr.openjdk.java.net/~jdv/8225160/file_compare.rtf>. > > Thanks, > Jay > >> On 19-Jun-2019, at 6:01 AM, Philip Race <philip.r...@oracle.com >> <mailto:philip.r...@oracle.com>> wrote: >> >> >> Hi, >> >> First >> These comments are limited to the files that are *modified* and don't >> address anything where you have deleted sandbox files and replaced them by >> JB files. >> And that is very hard to "diff" anyway .. but it is the biggest batch so I >> am not >> sure how to address it. >> Can you give a detailed explanation of what is in the "new" files vs the >> "old" files >> and how you chose one over the other ? >> >> So this is my quick take on just the modified files : >> >> http://cr.openjdk.java.net/~jdv/8225160/webrev.00/make/lib/Awt2dLibraries.gmk.udiff.html >> >> <http://cr.openjdk.java.net/~jdv/8225160/webrev.00/make/lib/Awt2dLibraries.gmk.udiff.html> >> >> + -framework Metal \ >> + -framework MetalKit \ >> I thought there were no dependencies on MetalKit ? >> >> http://cr.openjdk.java.net/~jdv/8225160/webrev.00/src/java.base/share/classes/jdk/internal/module/jdk8_packages.dat.udiff.html >> >> <http://cr.openjdk.java.net/~jdv/8225160/webrev.00/src/java.base/share/classes/jdk/internal/module/jdk8_packages.dat.udiff.html> >> >> +sun.java2d.metal >> >> I am sure this is wrong. That file is a list of internal packages >> that were present in JDK 8 >> >> http://cr.openjdk.java.net/~jdv/8225160/webrev.00/src/java.desktop/macosx/classes/sun/java2d/MacosxSurfaceManagerFactory.java.udiff.html >> >> <http://cr.openjdk.java.net/~jdv/8225160/webrev.00/src/java.desktop/macosx/classes/sun/java2d/MacosxSurfaceManagerFactory.java.udiff.html> >> JFYI I am not sure I like *either* of the pieces of code here. >> The deleted one or the new one. >> By which I mean the logic of >> if (metal) { >> return MetalSM() >> } else { >> return CGLSM(); >> } >> >> both here, and where similar logic appears in other files. >> We should be installing something that always returns what we need based >> on choice of pipeline at start up, not doing error prone repeating of the >> decision. >> But that is something to discuss later since it isn't a merge issue. >> >> http://cr.openjdk.java.net/~jdv/8225160/webrev.00/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.h.udiff.html >> >> <http://cr.openjdk.java.net/~jdv/8225160/webrev.00/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.h.udiff.html> >> +#import <Metal/Metal.h> >> +#import <MetalKit/MetalKit.h> >> I am failing to locate what needs these new imports ?? >> >> Same here >> http://cr.openjdk.java.net/~jdv/8225160/webrev.00/src/java.desktop/macosx/native/libawt_lwawt/awt/CGraphicsDevice.m.udiff.html >> >> <http://cr.openjdk.java.net/~jdv/8225160/webrev.00/src/java.desktop/macosx/native/libawt_lwawt/awt/CGraphicsDevice.m.udiff.html> >> >> http://cr.openjdk.java.net/~jdv/8225160/webrev.00/src/java.desktop/share/classes/sun/java2d/loops/Blit.java.udiff.html >> >> <http://cr.openjdk.java.net/~jdv/8225160/webrev.00/src/java.desktop/share/classes/sun/java2d/loops/Blit.java.udiff.html> >> >> I see this pattern being added to the Trace* classes. >> At first it wasn't apparent from the diff it is the Trace classes, >> so this is something we can discuss but it may need to be measured >> to see if it corrupts the very data you want. >> { >> + if ((traceflags & TRACEPTIME) == 0) { >> tracePrimitive(target); >> + } >> + long time = System.nanoTime(); >> target.Blit(src, dst, comp, clip, >> srcx, srcy, dstx, dsty, width, height); >> + tracePrimitiveTime(target, System.nanoTime() - time); >> >> >> -phil >> >> >> On 6/17/19, 2:19 AM, Jayathirth Rao wrote: >>> >>> Hello All, >>> >>> Please review the below code changes: >>> >>> JBS : https://bugs.openjdk.java.net/browse/JDK-8225160 >>> <https://bugs.openjdk.java.net/browse/JDK-8225160> >>> >>> We have merged most of the code provided for review by JetBrains for >>> JDK-8220154 <https://bugs.openjdk.java.net/browse/JDK-8220154> to the >>> jdk/sandbox(http://hg.openjdk.java.net/jdk/sandbox >>> <http://hg.openjdk.java.net/jdk/sandbox>). >>> Corresponding webrev for the change is >>> http://cr.openjdk.java.net/~jdv/8225160/webrev.00/ >>> <http://cr.openjdk.java.net/%7Ejdv/8225160/webrev.00/> . This webrev has >>> JetBrains code from JDK-8220154 >>> <https://bugs.openjdk.java.net/browse/JDK-8220154> and our delta >>> modification[1] over jdk/sandbox metal-prototype-branch >>> >>> For additional info : >>> 1. A webrev relative to the jdk/client codebase - this has JetBrains webrev >>> for JDK-8220154 <https://bugs.openjdk.java.net/browse/JDK-8220154> and our >>> delta modification >>> http://cr.openjdk.java.net/~aghaisas/8225160/JB_plus_delta/webrev.1/ >>> <http://cr.openjdk.java.net/%7Eaghaisas/8225160/JB_plus_delta/webrev.1/> >>> >>> 2. A webrev showing our delta modifications over JetBrains webrev for >>> JDK-8220154 <https://bugs.openjdk.java.net/browse/JDK-8220154> >>> http://cr.openjdk.java.net/~aghaisas/8225160/webrev.1/ >>> <http://cr.openjdk.java.net/%7Eaghaisas/8225160/webrev.1/> >>> >>> >>> [1] Delta modification: At native rendering side Ajit has added delta >>> modifications to implement FillRect and DrawParallelogram logic using >>> JetBrains initialisation logic. >>> >>> Apart from how we initialise GraphicsConfig and native rendering most of >>> the upper level logic is similar so we have taken most of the JetBrains >>> code with MTL*** files. Also native rendering state management code from >>> JetBrains we have merged. >>> Comparison of code at GraphicsConfig, SurfaceData and Layer is captured >>> under subtask : https://bugs.openjdk.java.net/browse/JDK-8225165 >>> <https://bugs.openjdk.java.net/browse/JDK-8225165> . >>> >>> Thanks, >>> Jay >