To reproduce:
```
_JAVA_OPTIONS="-Dprism.order=d3d12 -Dprism.verbose=true" gradle --info \
-PTEST_ONLY=true -PFULL_TEST=true -PUSE_ROBOT=true :systemTests:test --tests RobotTest
...
Picked up _JAVA_OPTIONS: -Dprism.order=d3d12 -Dprism.verbose=true
RobotTest STANDARD_OUT
Prism pipeline init order: d3d12
Using Double Precision Marlin Rasterizer
Using dirty region optimizations
Not using texture mask for primitives
Not forcing power of 2 sizes for textures
Using hardware CLAMP_TO_ZERO mode
Opting in for HiDPI pixel scaling
Prism pipeline name = com.sun.prism.d3d12.D3D12Pipeline
Loading D3D12 native library ...
succeeded.
(X) Got class = class com.sun.prism.d3d12.D3D12Pipeline
RobotTest STANDARD_ERROR
GraphicsPipeline.createPipeline failed for com.sun.prism.d3d12.D3D12Pipeline
java.lang.RuntimeException: InputStream must be non-null
at javafx.graphics@24-internal/com.sun.prism.d3d12.D3D12Utils.getShaderCodeBuffer(D3D12Utils.java:37)
at javafx.graphics@24-internal/com.sun.prism.d3d12.D3D12Utils.getShaderCodeBuffer(D3D12Utils.java:69)
at javafx.graphics@24-internal/com.sun.prism.d3d12.D3D12Pipeline.loadInternalShader(D3D12Pipeline.java:133)
at javafx.graphics@24-internal/com.sun.prism.d3d12.D3D12Pipeline.loadInternalShaders(D3D12Pipeline.java:140)
at javafx.graphics@24-internal/com.sun.prism.d3d12.D3D12Pipeline.init(D3D12Pipeline.java:173)
at javafx.graphics@24-internal/com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:230)
at javafx.graphics@24-internal/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:92)
at javafx.graphics@24-internal/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
at java.base/java.lang.Thread.run(Thread.java:1570)
Graphics Device initialization failed for : d3d12
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at javafx.graphics@24-internal/com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:283)
at javafx.graphics@24-internal/com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:253)
at javafx.graphics@24-internal/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:263)
at javafx.graphics@24-internal/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:290)
at javafx.graphics@24-internal/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:162)
at javafx.graphics@24-internal/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:651)
at javafx.graphics@24-internal/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:671)
at javafx.graphics@24-internal/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196)
at java.base/java.lang.Thread.run(Thread.java:1570)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at javafx.graphics@24-internal/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:95)
at javafx.graphics@24-internal/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
... 1 more
Exception in thread "Thread-3" java.lang.RuntimeException: No toolkit found
at javafx.graphics@24-internal/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:275)
at javafx.graphics@24-internal/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:290)
at javafx.graphics@24-internal/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:162)
at javafx.graphics@24-internal/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:651)
at javafx.graphics@24-internal/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:671)
at javafx.graphics@24-internal/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196)
at java.base/java.lang.Thread.run(Thread.java:1570)
```
We ran into a somewhat similar problem for Metal that I fixed a few months ago, although this might be different.
```
_JAVA_OPTIONS="-Dprism.order=d3d12 -Dprism.verbose=true" gradle --info \
-PTEST_ONLY=true -PFULL_TEST=true -PUSE_ROBOT=true :systemTests:test --tests RobotTest
...
Picked up _JAVA_OPTIONS: -Dprism.order=d3d12 -Dprism.verbose=true
RobotTest STANDARD_OUT
Prism pipeline init order: d3d12
Using Double Precision Marlin Rasterizer
Using dirty region optimizations
Not using texture mask for primitives
Not forcing power of 2 sizes for textures
Using hardware CLAMP_TO_ZERO mode
Opting in for HiDPI pixel scaling
Prism pipeline name = com.sun.prism.d3d12.D3D12Pipeline
Loading D3D12 native library ...
succeeded.
(X) Got class = class com.sun.prism.d3d12.D3D12Pipeline
RobotTest STANDARD_ERROR
GraphicsPipeline.createPipeline failed for com.sun.prism.d3d12.D3D12Pipeline
java.lang.RuntimeException: InputStream must be non-null
at javafx.graphics@24-internal/com.sun.prism.d3d12.D3D12Utils.getShaderCodeBuffer(D3D12Utils.java:37)
at javafx.graphics@24-internal/com.sun.prism.d3d12.D3D12Utils.getShaderCodeBuffer(D3D12Utils.java:69)
at javafx.graphics@24-internal/com.sun.prism.d3d12.D3D12Pipeline.loadInternalShader(D3D12Pipeline.java:133)
at javafx.graphics@24-internal/com.sun.prism.d3d12.D3D12Pipeline.loadInternalShaders(D3D12Pipeline.java:140)
at javafx.graphics@24-internal/com.sun.prism.d3d12.D3D12Pipeline.init(D3D12Pipeline.java:173)
at javafx.graphics@24-internal/com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:230)
at javafx.graphics@24-internal/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:92)
at javafx.graphics@24-internal/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
at java.base/java.lang.Thread.run(Thread.java:1570)
Graphics Device initialization failed for : d3d12
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at javafx.graphics@24-internal/com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:283)
at javafx.graphics@24-internal/com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:253)
at javafx.graphics@24-internal/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:263)
at javafx.graphics@24-internal/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:290)
at javafx.graphics@24-internal/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:162)
at javafx.graphics@24-internal/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:651)
at javafx.graphics@24-internal/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:671)
at javafx.graphics@24-internal/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196)
at java.base/java.lang.Thread.run(Thread.java:1570)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at javafx.graphics@24-internal/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:95)
at javafx.graphics@24-internal/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
... 1 more
Exception in thread "Thread-3" java.lang.RuntimeException: No toolkit found
at javafx.graphics@24-internal/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:275)
at javafx.graphics@24-internal/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:290)
at javafx.graphics@24-internal/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:162)
at javafx.graphics@24-internal/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:651)
at javafx.graphics@24-internal/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:671)
at javafx.graphics@24-internal/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196)
at java.base/java.lang.Thread.run(Thread.java:1570)
```
We ran into a somewhat similar problem for Metal that I fixed a few months ago, although this might be different.
- blocks
-
JDK-8342162 ☂ JavaFX D3D12: Road to feature-completeness
-
- In Progress
-