On Thu, 23 Sep 2021 06:47:33 GMT, Prasanta Sadhukhan <psadhuk...@openjdk.org> wrote:
> java/awt/FullScreen/UninitializedDisplayModeChangeTest/UninitializedDisplayModeChangeTest.java > is timing out every time on macOS 12 even though the test passed. > Looks like the the main process waits for child process created in the test > forever, making it timeout after jtreg timeout of 2min. > Modified to wait for childprocess for 30secs. The child process executing DisplayModeChanger class hangs when it is supposed to go into windowed mode in gd.setFullScreenWindow(null) call. It seems in macos12, it hangs while executing CGCompleteDisplayConfiguration() in Java_sun_awt_CGraphicsDevice_nativeSetDisplayMode method in CGraphicsDevice.m Basically, setFullScreenWindow() calls CGGraphicsDevice.java#setFullScreenWindow which calls JNI nativeSetDisplayMode which does CGBeginDisplayConfiguration, CGConfigureDisplayWithDisplayMode and CGCompleteDisplayConfiguration. Now, DisplayModeChanger class calls setFullScreenWindow to go to fullscreen mode and then to windowed mode. When going to fullscreen mode, it calls Java_sun_awt_CGraphicsDevice_nativeSetDisplayMode() with displayId:724860118, w:1280, h:720, bpp:32, refrate 60 and CGCompleteDisplayConfiguration works ok But when it is called for windowed mode, Java_sun_awt_CGraphicsDevice_nativeSetDisplayMode() is called with displayId:724860118, w:1920, h:1080, bpp:32, refrate 60 and CGCompleteDisplayConfiguration hangs. For macos11, also the same code flow is followed with same values but CGCompleteDisplayConfiguration executes and the testcase works. For macos10.15.7 also, same codeflow is followed where fullscreen mode is called with displayId:731394562, w:640, h:480, bpp:32, refrate 60 and windowed mode with displayId:731394562, w:1920, h:1080, bpp:32, refrate 60 and it works. So, it seems to be some macos12 quirk. ------------- PR: https://git.openjdk.java.net/jdk/pull/5647