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

Kevin Rushforth kcr at openjdk.java.net
Thu Jan 7 12:25:16 UTC 2021

On Thu, 7 Jan 2021 10:33:11 GMT, Ajit Ghaisas <aghaisas at openjdk.org> wrote:

>> If it is unsupported then why you should check that for every device creation? What happens if one device was created using metal and then another device will use OGL?
> I have moved the Metal framework availability check to be done only once now.
> There is still a check if MTLGraphicsConfig.getConfig() fails by any chance. 
> CGraphicsDevice contains GraphicsConfiguration - which is created in the constructor - It can be either MTLGraphicsConfiguration or OpenGLConfiguration. This check needs to be done while creating the config.
> For Win32GraphicsDevice - the config is not created in the constructor, but at a later stage in getDefaultConfiguration(). So only the place of checking for OGL or falling back to GDI is different, but the concept is the same.
> The whole idea of one device using metal and another device using OGL is hypothetical. The condition check cannot pass for one device and fail for another.

I agree that it makes no sense to even consider using different pipelines on different devices. The change you made to do the check once seems best.


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

More information about the lanai-dev mailing list