Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8366546

JavaFX app freezes or flickers after Intel Iris Xe driver update

XMLWordPrintable

    • generic
    • generic

      ADDITIONAL SYSTEM INFORMATION :
      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)

      A DESCRIPTION OF THE PROBLEM :
      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?


            adev Anupam Dev
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: