[OpenJDK 2D-Dev] JDK-8220154 Improve java2d rendering performance on macOS by using Metal framework
Jayathirth Rao
jayathirth.d.v at oracle.com
Thu May 16 12:08:05 UTC 2019
Hi Alexey,
We are trying to test basic calls of Graphics2D as mentioned in https://docs.oracle.com/javase/tutorial/2d/TOC.html <https://docs.oracle.com/javase/tutorial/2d/TOC.html>
I see that Graphics2D.drawImage() with BufferedImage as input works. Also I tried other operations like fillRect() and fillOval() and they work. I am testing with simple JFrame and adding draw calls inside overriden paint() method of a panel.
So with current JB changes what parts of primitive and image drawing are expected to work?
Please provide your inputs.
Thanks,
Jay
> On 16-May-2019, at 12:47 PM, Ajit Ghaisas <ajit.ghaisas at oracle.com> wrote:
>
> Thanks Alexey.
>
> I can see that now you have added the MTLTexturePool.m file. It only partially solves the build failures.
> Jay & myself tried building it separately and we do still see the build failures.
>
> Some statements need bracketing & some copy-paste errors need correction.
> We could fix these errors and have got a build. We will continue our test experiments with it.
>
> Meanwhile, you may want to update the patch to fix the build errors.
>
> Regards,
> Ajit
>
>
>> On 08-May-2019, at 8:56 PM, Alexey Ushakov <alexey.ushakov at jetbrains.com <mailto:alexey.ushakov at jetbrains.com>> wrote:
>>
>> FYI, I’ve rebased our work on top of the latest state of http://hg.openjdk.java.net/jdk/jdk <http://hg.openjdk.java.net/jdk/jdk>
>> (http://cr.openjdk.java.net/~avu/JDK-8220154/webrev.01 <http://cr.openjdk.java.net/~avu/JDK-8220154/webrev.01>)
>>
>> Best Regards,
>> Alexey
>>
>>> On 8 May 2019, at 16:19, Alexey Ushakov <Alexey.Ushakov at jetbrains.com <mailto:Alexey.Ushakov at jetbrains.com>> wrote:
>>>
>>> Thanks for catching it, Ajit!
>>>
>>> Looks like it was a problem with webrev script applied to multiple git commits. I’ve updated the webrev.
>>> Also, we didn’t rebase yet on the latest state of http://hg.openjdk.java.net/jdk/jdk <http://hg.openjdk.java.net/jdk/jdk> (this work is in progress).
>>> I’ll let you know when the rebase is ready.
>>>
>>> Best Regards,
>>> Alexey
>>>
>>>> On 7 May 2019, at 21:02, Ajit Ghaisas <ajit.ghaisas at oracle.com <mailto:ajit.ghaisas at oracle.com>> wrote:
>>>>
>>>> Hi Alexey,
>>>>
>>>> I tried building this patch with latest http://hg.openjdk.java.net/jdk/jdk/ <http://hg.openjdk.java.net/jdk/jdk/>
>>>>
>>>> 1. Some basic copy paste errors are resulting in build failures
>>>> 2. MTLTexturePool.m file is missing from the patch
>>>>
>>>> Can you please check & update?
>>>>
>>>> Regards,
>>>> Ajit
>>>>
>>>>> On 30-Apr-2019, at 2:52 PM, Alexey Ushakov <alexey.ushakov at jetbrains.com <mailto:alexey.ushakov at jetbrains.com>> wrote:
>>>>>
>>>>> Hello,
>>>>>
>>>>> Here is an update on our effort to use Metal framework for java2d rendering.
>>>>>
>>>>> We’ve added image rendering support and some support for LinearGradient. Also, the code has been refactored.
>>>>>
>>>>> Please have a look:
>>>>>
>>>>> http://cr.openjdk.java.net/~avu/JDK-8220154/webrev.01 <http://cr.openjdk.java.net/~avu/JDK-8220154/webrev.01>
>>>>>
>>>>> Best Regards,
>>>>> Alexey
>>>>>
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> As far as we know Apple has deprecated OpenGL on MacOS platform (https://developer.apple.com/macos/whats-new/ <https://developer.apple.com/macos/whats-new/>).
>>>>>>
>>>>>> Unfortunately, this decision greatly affects our products that based on Java Client technologies. So, we (here at JetBrains) decided to start a project to replace OpenGL rendering on MacOS platform with a new one based on Metal. This is a huge task, so we decided to leverage current rendering architecture that is used in OpenGL rendering pipeline on Mac.
>>>>>>
>>>>>> That’s why we didn’t use MTKView for representing AWT windows (that probably would be a better approach in the long term). Currently we're using CAMetalLayer within AWTView. We’ve implemented flat color shape/curve rendering so far and there is a lot of work to do. So, we’re looking forward to any collaboration.
>>>>>>
>>>>>> In the mean time I’d like to share our current work to discuss metal pipeline architecture at the early stage of work.
>>>>>>
>>>>>> Here is the webrev with our on going development:
>>>>>>
>>>>>> http://cr.openjdk.java.net/~avu/JDK-8220154/webrev.00 <http://cr.openjdk.java.net/~avu/JDK-8220154/webrev.00>
>>>>>>
>>>>>> Best Regards,
>>>>>> Alexey
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/2d-dev/attachments/20190516/30669de8/attachment.html>
More information about the 2d-dev
mailing list