RFR: 8313648: JavaFX application continues to show a black screen after graphic card driver crash

Marius Hanl mhanl at openjdk.org
Wed Nov 22 20:48:17 UTC 2023


On Sat, 5 Aug 2023 12:28:16 GMT, Thorsten Fischer <duke at openjdk.org> wrote:

> Hi,
> 
> I did open the bug report. Some notes to this PR:
> 
> My colleagues and I are able to reproduce this bug regularly, even though it takes sometimes up to 3 or 4 weeks until the D3DERR_DEVICEHUNG error shows up. We are currently evaluating two versions of fixes, but until now we do not have any results. I will post them as soon as I got them.
> 
> Version 1 (this version): Based on the observation, that the TestCooperativeLevel/CheckDeviceState method returns D3D_OK again after about 20 - 60 seconds, the reinitialize is called after the first time the state is returning D3D_OK. The 'isHung' flag stores the information until then.
> 
> Version 2: calls reinitialize directly after D3DERR_DEVICEHUNG has been returned. Basically
> if (hr == D3DERR_DEVICEREMOVED || hr == D3DERR_DEVICEHUNG  ) { .. }
> 
> I did not modify the validatePresent method, as for our workaround (see ticket) it was not necessary. At least the native call swapchain->present dows not return that error code (https://learn.microsoft.com/en-us/windows/win32/api/d3d9/nf-d3d9-idirect3dswapchain9-present). I did not look decisively into all the native calls behind D3DRTTexture#readPixels.
> 
> As I said I will post the results (prism.verbose output) for the 2 versions later as a base for discussions.

Looks good to me as well.

modules/javafx.graphics/src/main/native-prism-d3d/D3DContext.cc line 761:

> 759:         TraceLn1(NWT_TRACE_INFO, "  device %d has been removed", adapterOrdinal);
> 760:         break;
> 761:     case D3DERR_DEVICEHUNG:

you probably need to adjust the copyright here as well

-------------

Marked as reviewed by mhanl (Committer).

PR Review: https://git.openjdk.org/jfx/pull/1199#pullrequestreview-1745352628
PR Review Comment: https://git.openjdk.org/jfx/pull/1199#discussion_r1402696340


More information about the openjfx-dev mailing list