3

I have a JavaFX desktop application that started having rendering issues after updating the Intel Iris Xe graphics driver.

  • On Java 11 + JavaFX (Zulu distribution):
    openjdk version "11.0.25" 2024-10-15 LTS OpenJDK Runtime Environment Zulu11.76+21-CA (build 11.0.25+9-LTS) OpenJDK 64-Bit Server VM Zulu11.76+21-CA (build 11.0.25+9-LTS, mixed mode)

The screen flickers and then the application completely freezes.

  • On Java 24 + JavaFX (Zulu distribution):
    openjdk version "24.0.2" 2025-07-15 OpenJDK Runtime Environment Zulu24.32+13-CA (build 24.0.2+12) OpenJDK 64-Bit Server VM Zulu24.32+13-CA (build 24.0.2+12, mixed mode, sharing)

The screen still flickers, and the following error is printed to the console, but the app eventually recovers and continues running:

D3D hresult failed :D3DERR_DEVICEHUNG
java.lang.Exception: Stack trace
        at javafx.graphics/com.sun.prism.d3d.D3DContext.validate(D3DContext.java:136)
        at javafx.graphics/com.sun.prism.d3d.D3DContext.validatePresent(D3DContext.java:226)
        at javafx.graphics/com.sun.prism.d3d.D3DSwapChain.present(D3DSwapChain.java:88)
        at javafx.graphics/com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:107)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545)
        at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:369)
        at javafx.graphics/com.sun.javafx.tk.RenderJob.run(RenderJob.java:58)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1095)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:619)
        at javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:122)
        at java.base/java.lang.Thread.run(Thread.java:1447)
D3DContext::testLostStateAndReset : D3DERR_DEVICEHUNG
D3DPipeline: reinitialize after device was removed
D3DPipelineManager: Created D3D9Ex device
Maximum supported texture size: 16384
Maximum texture size clamped to 4096
OS Information:
        Windows version 10.0 build 22631
D3D Driver Information:
        Intel(R) Iris(R) Xe Graphics
        \\.\DISPLAY1
        Driver igdumdim64.dll, version 32.0.101.6881
        Pixel Shader version 3.0
        Device : ven_8086, dev_46A6, subsys_0B1A1028
        Max Multisamples supported: 4
PPSRenderer: scenario.effect - createShader: LinearConvolveShadow_16
PPSRenderer: scenario.effect - createShader: LinearConvolveShadow_12
PPSRenderer: scenario.effect - createShader: LinearConvolveShadow_8
  • Tested on multiple machines with Intel Iris Xe → same problem.
  • Updated Java and JavaFX to latest releases.
  • If I force software rendering with Prism (-Dprism.order=sw), the problem does not occur, but application performance becomes significantly worse.
  • If I force the app to run on the NVIDIA GPU, the problem does not occur either. However, most of my clients use laptops that only have Intel Iris Xe, so this is not a viable solution for all environments.

Is this a known compatibility issue between JavaFX and the Intel Iris Xe graphics drivers (versions 32.0.101.6078 / 6556 / 6881)?
Is there a workaround (e.g., JVM flags, forcing different pipeline options) to avoid the freeze/flicker without resorting to software rendering or requiring a discrete GPU?

System details

  • Machine: Dell Precision 5680
  • OS: Windows 11 Enterprise 64-bit (10.0, Build 22631)
  • CPU: 13th Gen Intel Core i9-13900H
  • Memory: 64 GB RAM
  • GPU: Intel(R) Iris(R) Xe Graphics (integrated)
    • Driver versions tested: 32.0.101.6078, 32.0.101.6556, 32.0.101.6881
  • Discrete GPU: NVIDIA RTX 2000 Ada Generation Laptop GPU (JavaFX defaults to Intel GPU)
1

1 Answer 1

3

This is a fairly widespread compatibility issue between the JavaFX D3D hardware pipeline and recent Intel Iris Xe graphics drivers on Windows, as confirmed by your tests with multiple driver and Java versions. The D3DERR_DEVICEHUNG error and resulting freezes or flickers are typical of JavaFX running into problems with the GPU driver—these issues go away when using software rendering or a discrete NVIDIA GPU, but those solutions either severely hurt performance or aren't generally available to all users. Currently, aside from forcing software rendering (which impacts speed) or shifting to an external GPU (not possible on all systems), there is no reliable JVM flag or workaround that fully addresses this; the root cause is a low-level bug or incompatibility which requires a fix from Intel or the JavaFX/OpenJFX developers. For now, the best course is to alert both Intel and OpenJFX via a detailed bug report and, in the interim, provide users with guidance to use software mode or reduce heavy GPU effects until an official update becomes available.

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.