CFV: New Project: Lanai

I hereby propose the creation of the Lanai Project to implement a new graphics rendering pipeline for macOS, with Phil Race as the Lead and the 2D Group as the sponsoring Group. Background and Motivation: Apple Inc. have created the Metal [1] graphics API designed to be their long term replacement for OpenGL as the rendering pipeline on Apple platforms, including macOS. It promises better performance than OpenGL and simpler GPU designs by being a simpler API without the legacies of OpenGL. The JDK, and OpenJFX today both use OpenGL as the rendering pipeline on macOS, but Apple have deprecated OpenGL as of MacOS 10.14 [2], and recommend to transition to Metal. If OpenGL is not present on a macOS system, the JDK desktop APIs cannot function and will fail to start. OpenJFX is in a very similar position. For some months, engineers from Oracle and JetBrains [3], have been exploring the Metal APIs and working on some proofs of concept, starting with the existing OpenGL pipeline as a base and doing prototyping work in the JDK sandbox [4] in the metal-prototype-branch and in the case of JetBrains, separately on github. We have also discussed specific issues on the 2d-dev mailing list and have a wiki page [5]. However to further collaboration and advance the goals we would like to move this work to a location where we can work together and more engineers can contribute, and therefore propose this project. Note: the rendering pipelines in the JDK are internal implementation details, so this project will not create, or otherwise be exposed as, Java APIs Phil Race is the lead of the Java 2D group and has worked on the Java 2D APIs for many years as well. He has also made significant contributions to the OpenJFX project and to the Swing and AWT APIs Goals of the Project: This project will create a Java 2D rendering pipeline for macOS using the Apple Metal APIs which aims to be at least as capable, robust and performant, as the current OpenGL pipeline. This project will also be the basis of a similar Metal pipeline for the OpenJFX project [6]. Initial committers will include Phil Race (prr) Ajit Ghaisas (aghaisas) Jay DV (jdv) Sergey Bylokhov (serb) Kevin Rushforth (kcr) Alexey Ushakov (avu) A complete list will be provided to the registrar at the successful conclusion of this CFV. Votes are due by 5pm PDT on Tuesday July 23rd 2019. Only current OpenJDK Members [7] are eligible to vote on this motion. Votes must be cast in the open on the discuss list. Replying to this message is sufficient if your mail program honors the Reply-To header. For Lazy Consensus voting instructions, see [8]. -Phil Race. [1] https://developer.apple.com/metal/ [2] https://developer.apple.com/documentation/macos_release_notes/macos_mojave_10_14_release_notes [3] https://www.jetbrains.com/ [4] http://hg.openjdk.java.net/jdk/sandbox/ [5] https://wiki.openjdk.java.net/display/2d/Metal+Graphics+Pipeline+for+MacOS [6] http://openjdk.java.net/projects/openjfx/ [7] http://openjdk.java.net/census#members [8] http://openjdk.java.net/projects/#new-project-vote