RFR: 8169468: NoResizeEventOnDMChangeTest.java fails because FS Window didn't receive all resizes!
Sergey Bylokhov
serb at openjdk.java.net
Wed Nov 3 01:51:13 UTC 2021
On Tue, 2 Nov 2021 03:57:54 GMT, Alexander Zuev <kizune at openjdk.org> wrote:
>> test/jdk/java/awt/FullScreen/NoResizeEventOnDMChangeTest/NoResizeEventOnDMChangeTest.java line 194:
>>
>>> 192: if (skipTest.get()) {
>>> 193: // Skipping test because graphics driver switched window to another screen
>>> 194: return;
>>
>> This test isn't about multi-mon .. it is about full screen.
>> If the window doesn't go full screen on the display we expect that's odd.
>> Are you saying it went FS on one display and then jumped ?
>> Can't we make the test more robust about it going on the display we expect OR pivot the test to verifying on the display that went FS ?
>
>> Are you saying it went FS on one display and then jumped ?
>
> That is exactly what happened and only in this case the test were failed - obviously, because the window was on a secondary display and resize was happening on the primary so window has not got any events about resize. I added a lot of debug information to the native code but after that i ran test for hours non stop and it does not reproduce - i guess it is all due to the timings. You see, when we changing resolution the physical display goes offline (at least on my system with NVidia card) meaning status LED goes from green to amber, then it goes green again with the new resolution set. If request to get full screen windows from GD comes at that exact moment the window might be placed on a secondary display which does not change. I do not know how to force OS not to reassign window to another display in this case.
In the scenario above what will happen if the window is jumped from one screen to another? Will it be full screen or it will be in the normal mode? Which (old or new) graphics device will report that the window is full screen on it? I guess we should move the window back to the old device in full-screen mode, or we should move the window to the new device but in the normal mode, in both cases, the resize event should be generated, isn't it?
-------------
PR: https://git.openjdk.java.net/jdk/pull/6186
More information about the client-libs-dev
mailing list