High Level Milestones

MilestonesJIRA IDOwnerTarget Completion Comments
Primitive rendering
Oracle/JetBrains


Implementation is done

Image rendering
JetBrains

Implementation is done (except for Bicubic interpolation - for which SW rendering fallback exists)

Text rendering
Oracle


Implementation is done

1st early access (EA-1)
Oracle/JetBrains

15 May 2020

Released
Stabilization and bug fixing
Oracle/JetBrains

IDE performance Testing
Oracle/JetBrains


Done
Execute JTREG tests and match current passrate
Oracle

Done
Pass all JCK tests
Oracle


Done
Functional complete with performance
Oracle/JetBrains


Done
2D Alias Review
Oracle/JetBrains

4 Feb 2021

Done. Link to JEP code review - https://github.com/openjdk/jdk/pull/2403

Integration to openjdk/jdk
Oracle15 Mar 2021Done

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


Early Access Release History


Early Access ReleaseDateContents
EA-1

15 May 2020

First EA release
EA-219 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-310 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-408 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-518 Sep 2020

Fixes on top of EA-4

EA-608-Oct-2020

Fixes on top of EA-5

EA-718-Nov-2020

Fixes on top of EA-6

EA-817-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-926-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-1003-Mar-2021

Fixes on top of EA-9