JDK-8220154 : Improve java2d rendering performance on macOS by using Metal framework
  • Type: New Feature
  • Component: client-libs
  • Affected Version: 11,12,13
  • Priority: P3
  • Status: Resolved
  • Resolution: Duplicate
  • OS: os_x
  • CPU: x86
  • Fix Versions: tbd
  • Submitted: 2019-03-05
  • Updated: 2021-01-11
  • Resolved: 2021-01-11
Related Reports
Duplicate :  
Description
Currently, java2d on Mac uses OpenGL to render graphics primitives. Metal framework provides better performance and has better support for modern macOS versions and hardware. So, we need to leverage it to improve the rendering performance of java2d.
Comments
[~avu], please close this as a duplicate of JEP - JDK-8238361
05-01-2021

http://mail.openjdk.java.net/pipermail/macosx-port-dev/2019-March/007087.html
05-03-2019

As far as we know Apple has deprecated OpenGL on MacOS platform (https://developer.apple.com/macos/whats-new/). Unfortunately, this decision greatly affects our products 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 the 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 meantime, 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 ongoing development: http://cr.openjdk.java.net/~avu/JDK-8220154/webrev.00
05-03-2019