...
Milestones JIRA ID Owner Target Completion Actual Finish Date Comments Primitive rendering complete Oracle/JetBrains Implementation is done
31 Jan 2020
Image rendering complete JetBrains31 Jan 2020 Implementation is done (except for Bicubic interpolation - for which SW rendering fallback exists)
Text rendering complete Oracle06 Mar 2020 Implementation is done
1st early access ready (EA-1) Oracle/JetBrains Released Stabilization and bug fixing Oracle/JetBrains IDE performance Testing Oracle/JetBrains Done IDE performance JetBrains 31 Mar 2020 Execute JTREG tests and match current passrate Oracle Metal pipeline should pass all the same jtreg tests as OpenGL : i.e. no functional regressions
Done Pass all JCK tests Oracle 08 Jun 2020 Done Functional complete with performance Oracle/JetBrains 08 Jun 2020 Done 2D Alias Review Start Oracle/JetBrains Done. Link to JEP code review - https://github.com/openjdk/jdk/pull/2403
Integration to openjdk/jdk Oracle 15 Mar 2021 Done Lanai does not require reviews before pushing. Once we are functional complete, we should start reviews of the code to make sure it conforms to style/quality/etc expectations, as well as reviewing the code for correctness, robustness etc.
Task List All active issues (including tasks, subtasks and bugs) in Lanai project can be accessed with JBS filter : https://bugs.openjdk.java.net/issues/?filter=37832
This table lists the important remaining tasks in Lanai project :
Early Access Release History
Early Access Release Date Contents EA-1 First EA release EA-2 19 Jun 2020 Fixes on top of EA-1
8247464: Memory Leak in MTLBlitLoops_CopyArea() method 8247304: Use separate MTLCommandQueue for final blit and MTLDrawable 8246495: Lanai: update AA clip info on GPU via compute shader 8246454: Lanai: Create RenderPerf tests for rectangular and shape clips 8242952: fixed MTLBlitLoops::replaceTextureRegion (add correct offset 8242354: support for bufImgOps (RescaleOp, LookupOp, ConvolveOp) 8246331: Lanai: do not update AA clip info in nonAA mode 8246239: Revert JDK-8244193 as it causes performance regression EA-3 10 Jul 2020 Fixes on top of EA-2
8242950: Files which can't be selected has different color with metal than opengl in JFileChooser
8247772: Lanai: Several jtreg tests fails with assertion validateTextureDimensions: 759: failed assertion 'MTLTextureDescriptor has width greater than maximum allowed size of 16384'
8248301: Lanai - Change MTLStorageMode of MTLSurfaceData texture (render backbuffer) to private
EA-4 08 Aug 2020 Fixes on top of EA-3
8233226: Implement XOR Mode rendering option 8247564: Lanai - SwingSet2 - Motif LF - UI controls border is incorrectly drawn with uiScale=1.0 8244402: Lanai - Motif L&F - Non selected Radio button is barely rendered on non-retina display 8248831: Lanai : SwingSet2Demo Input dialog is not proper for MetalLookAndFeel with default non-retina display 8240221: XOR mode rendering option does not work with Texture paint and Gradient Paint 8247556: Lanai : J2DDemo - ImageOps demo - Few options are not working... 8247831: Clamp texture height to maxTextureSize(16384) 8249174: Fix improper glyph cache initialization logic for text rende... 8243953: Optimize encoder creation/deletion logic for LCD text rendering EA-5 18 Sep 2020 Fixes on top of EA-4
EA-6 08-Oct-2020 Fixes on top of EA-5
EA-7 18-Nov-2020 Fixes on top of EA-6
EA-8 17-Dec-2020 Fixes on top of EA-7
8257886: Build issue in macOS 10.14 8256683: Lanai: NetBeans IDE - AA Text rendering appears brighter compared to OpenGL 8242925: J2DDemo - Anti-Aliasing with Metal differs from OGL 8257618: Lanai: GradientPaint interpolates over stops limits 8257566: Lanai: System runs out of application memory while running the Unmanaged_BufferredImage_draw_NearestNeighbor test multiple times 8257441: Lanai: java/awt/image/VolatileImage/DrawHugeImageTest fails 8257442: Lanai: Create RenderPerf tests for SW to HW blits 8257413: Lanai - Use optimum sized temporary buffer while replacing texture region 8238285: Lanai: java/awt/image/DrawImage tests fail 8256576: DrawImage/BlitRotateClippedArea fails EA-9 26-Jan-2021 Fixes on top of EA-8
8258658: Print log that metal pipeline is enabled when -Dsun.java2d.metal=True is set 8260000: Remove JNF_COCOA_ENTER/EXIT usage from MTLGraphicsConfig.m 8258754: Gracefully fallback to the OpenGL rendering pipeline if Metal rendering pipeline initialization fails 8259853: Lanai: nonAA Gradient painting is not precise for VI 8259939: Remove JNF_COCOA_ENTER/EXIT usage from Lanai project 8258202: Lanai: Buffered image loses its shape after clicking on Alpha Composite option 8258202: Lanai: Buffered image loses its shape after clicking on Alpha Composite option 8252950: Lanai : sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java fails 8259653: Multistop gradients incorrectly works with non uniform stops 8245256: Cleanup OpenGL references in Metal documentation 8259341:Remove useage of JNFCallVoidMethod from Metal. 8259038: Stop CVDisplayLink when there is no active rendering 8247332: Checkbox reaches inconsistent state on tap to click 8251477: java/awt/Frame/MiscUndecorated/RepaintTest.java fails with metal pipeline 8247739: Lanai : SwingSet2Demo -More than one radio button can be selected the same time 8252501: Sometimes more than one menu items are shown as highlighted on hover 8242187: Lanai - JCheckBox and JRadioButton can get into inconsitent visual state – but recover on window refresh 8252907: Motif L&F - SwingSet2 - Two Toolbar buttons are shown as selected 8258482: Lanai: reduce data for shape clip using bounding box 8258257: Lanai: optimize stencil texture clear code EA-10 03-Mar-2021 Fixes on top of EA-9
Task JIRA ID
(If there)
Owner Comments Primitive Rendering Implement Shape Clip JDK-8233233 Oracle Done. It still needs to work with AA Rendering. Implement XOR Mode JDK-8233226 Oracle Implement Paint Type - Texture Paint JDK-8233231 Oracle In progress Image Rendering Rendering to Volatile Image JDK-8233305 JetBrains Image Rendering Option - Interpolation JDK-8233309 JetBrains Implement Remaining Blit operations JDK-8233039 JetBrains Support all Image Rendering Sources types from J2DBench JDK-8233308 JetBrains Text Rendering Grayscale without cache JDK-8225174 Oracle Grayscale with cache JDK-8233311 Oracle LCD without cache JDK-8233312 Oracle LCD with cache JDK-8233314 Oracle Implement text tendering graphics options
JDK-8233316 Oracle Additional Tasks Antialiasing JDK-8230958 JetBrains Test and support fullscreen window
JDK-8233324 Oracle Test and support multi-monitor configurations
JDK-8233320 Oracle Test and support shaped windows and translucent windows
JDK-8233327 Oracle Performance evaluation & optimization Primitives Rendering Oracle/JetBrains Text Rendering Oracle/JetBrains Image Rendering Oracle/JetBrains