Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

ready
MilestonesJIRA IDOwnerTarget Completion Comments
Primitive rendering complete
Oracle/JetBrains

Approx May 2020


  • XOR Composite (Blocked)
  • Bug fixes in progress.

    Implementation is done

    Image rendering complete
    JetBrains

    Approx May 2020

     


    Work in progressImplementation is done (except for Bicubic interpolation - for which SW rendering fallback exists)

    Text rendering complete
    Oracle

    Approx May 2020

    • Grayscale Text Rendering is complete.
    • LCD Text rendering is being worked upon.


    Implementation is done

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

    15 May 2020

    Released
    Stabilization and bug fixing
    Oracle/JetBrainsTBD

    IDE performance performance Testing
    Oracle/JetBrains


    TBDDone
    Execute JTREG tests and match current passrate
    Oracle

     


    Metal pipeline should pass all the same jtreg tests as OpenGL : i.e. no functional regressionsDone
    Pass all JCK tests
    Oracle


    Done
    Functional complete with performance
    Oracle/JetBrains


    Done
    2D Alias Review Start
    Oracle/JetBrains

    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.

    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

    This table lists the important remaining tasks in Lanai project  : 


    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

    Task

    JIRA ID

    (If there)

    OwnerComments
    Primitive Rendering
    Implement XOR ModeJDK-8233226Oracle

    Current implementation works only for basic colors.

    Metal framework does not support Color Logical operations. This task is blocked.

    Image Rendering
    Rendering to Volatile ImageJDK-8233305JetBrainsDone.
    Image Rendering Option - InterpolationJDK-8233309JetBrainsDone.
    Implement Remaining Blit operationsJDK-8233039JetBrainsDone.
    Support all Image Rendering Sources types from J2DBenchJDK-8233308JetBrainsDone.
    Text Rendering
    Grayscale with cacheJDK-8233311OracleDone.
    LCD without cacheJDK-8233312OracleDone. Performance optimization pending.
    LCD with cacheJDK-8233314OracleWork In Progress

    Implement text rendering graphics options

    JDK-8233316OracleOptions work for Grayscale text.
    Additional TasksAntialiasingJetBrains

    Most of the Antialiasing work is done.

    Need to address performance/corner cases.

    Test and support multi-monitor configurations

    JDK-8233320OracleMulti monitor configuration does not work correctly. Issue filed as - JDK-8240175

    Test and support shaped windows and translucent windows

    JDK-8233327OraclePerformance evaluation & optimizationPrimitives RenderingOracle/JetBrainsText RenderingOracle/JetBrainsImage RenderingOracle/JetBrains