On Wed, 7 Apr 2021 02:50:03 GMT, Sergey Bylokhov <s...@openjdk.org> wrote:
>> Ajit Ghaisas has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Review fixes > > src/java.desktop/macosx/classes/sun/java2d/metal/MTLGraphicsConfig.java line > 149: > >> 147: try { >> 148: // getMTLConfigInfo() creates new MTLContext, so we should >> first >> 149: // invalidate the current Java-level context and flush the >> queue... > > The old discussion was related not only to the comment but to the > invalidateCurrentContext, do we need to do it? This is the only place where we use MTLContext.invalidateCurrentContext() - which when processed in MTLRenderQueue - clears some native stuff and nulls out both mtlc and dstOps pointers maintained in MTLRenderQueue.m. I think, this will be important once we get rid of SET_SCRATCH_SURFACE under JDK-8263309. > src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLGraphicsConfig.m > line 152: > >> 150: NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; >> 151: >> 152: > > Please also check how this function is called, looks like previously it was > called as a selector+an array as a parameter, and then reworked as a > performOnMainThreadWaiting+block, but it still use an array as a parameter. I > think it is similar to JDK-8238075. Excellent point! Thanks for the pointer to the bug. A lot of code in this file can be cleaned up. I will update the PR soon. ------------- PR: https://git.openjdk.java.net/jdk/pull/3357