RFR: 8258754: Gracefully fallback to the OpenGL rendering pipeline if Metal rendering pipeline initialization fails [v5]

Kevin Rushforth kcr at openjdk.java.net
Fri Jan 8 19:29:10 UTC 2021


On Fri, 8 Jan 2021 19:13:19 GMT, Ajit Ghaisas <aghaisas at openjdk.org> wrote:

>> This implements fallback to the OpenGL rendering pipeline if Metal rendering pipeline initialization fails.
>> I have tested this fallback on 10.15.4 by stubbing code. We need real testing on a system where Metal is not available.
>
> Ajit Ghaisas has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Cover all combinations of OGL and Metal pipelines

The logic looks correct to me (I didn't run it). I did leave one question about whether we want to initialize both pipelines in the typical case where we don't need a fallback.

src/java.desktop/macosx/classes/sun/java2d/macos/MacOSFlags.java line 126:

> 124: 
> 125:                     boolean oglAvailable = CGLGraphicsConfig.isCGLAvailable();
> 126:                     boolean metalAvailable = MTLGraphicsConfig.isMetalAvailable();

This will attempt to initialize both, loading both native libraries, even in the typical case where we don't fallback. Is this what we want?

-------------

Marked as reviewed by kcr (Committer).

PR: https://git.openjdk.java.net/lanai/pull/147


More information about the lanai-dev mailing list