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

Reply via email to