<div style="font-family: 'verdana'; font-size: 12px; color: #000;">Hi Lukasz,</div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"> </div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;">I can reproduce both bugs with the newest version from the sandbox repository.</div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;">I created a reproducer, both bugs are very simple to reproduce there</div>
<ul>
<li style="font-family: 'verdana'; font-size: 12px; color: #000000;">The fullscreen bug: Just press ALT+ENTER, and the window tries to get into fullscreen, fails and the exception is printed. <br>Interestingly, this seems to be a new feature from Direct3D 12? Because before, ALT+ENTER did nothing for me <br>(I reimplemented that into an application, thats where I found this problem initially, but found out that this works even without handling ALT+ENTER since Direct3D 12) </li>
<li style="font-family: 'verdana'; font-size: 12px; color: #000000;">The LineChart bug: Just resize the window, the LineChart Axis Text disappears sometimes. <br>This happens for me even initally in another application. Works on the latest branch without Direct3D 12.</li>
</ul>
<div style="font-family: "verdana"; font-size: 12px; color: rgb(0, 0, 0);">The reproducer:</div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000000;"> </div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000000;">
<div style="font-family: 'verdana'; font-size: 12px; color: #000;">import javafx.application.Application;<br>import javafx.scene.Scene;<br>import javafx.scene.chart.LineChart;<br>import javafx.scene.chart.NumberAxis;<br>import javafx.scene.layout.BorderPane;<br>import javafx.scene.layout.StackPane;<br>import javafx.stage.Stage;</div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"> </div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;">public class LineChartBug {</div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;">    public static void main(String[] args) {<br>        Application.launch(FxApp.class, args);<br>    }</div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;">    public static class FxApp extends Application {</div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;">        @Override<br>        public void start(Stage primaryStage) {<br>            BorderPane root = new BorderPane();</div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;">            NumberAxis xAxis = new NumberAxis();<br>            NumberAxis yAxis = new NumberAxis();<br>            LineChart<Number, Number> lineChart = new LineChart<>(xAxis, yAxis);</div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;">            StackPane stackPane = new StackPane(lineChart);<br>            stackPane.setMaxSize(300, 300);</div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;">            root.setCenter(stackPane);</div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;">            Scene scene = new Scene(root, 1280, 540);<br>            primaryStage.setScene(scene);<br>            primaryStage.show();<br>        }<br>    }</div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;">}</div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"> </div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;">I can also create 2 tickets if needed. Just let me know!</div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"> </div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;">-- Marius</div>
</div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="background-color: #ffffff;"> </span></div>
<div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span style="background-color: #ffffff;"> </span></div>
<div id="sub-body-container" style="margin: 10px 5px 5px 10px; padding: 10px 0px 10px 10px; border-left: 2px solid rgb(195, 217, 229);">
<div style="margin: 0px 0px 10px;">
<div><strong>Gesendet: </strong>Donnerstag, 2. Oktober 2025 um 16:56</div>
<div><strong>Von: </strong>"Lukasz Kostyra" <lukasz.kostyra@oracle.com></div>
<div><strong>An: </strong>"Marius Hanl" <mariushanl@web.de></div>
<div><strong>CC: </strong>"openjfx-dev@openjdk.org" <openjfx-dev@openjdk.org></div>
<div><strong>Betreff: </strong>RE: [External] : Aw: JavaFX Direct3D 12 rendering pipeline for Windows</div>
</div>
<div class="WordSection1">
<p class="MsoNormal">Hi Marius,</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Thanks for checking! It is difficult to say whether this is still an issue, as that EA build is already a couple months old and I did squash some similar looking bugs since then.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">We have a new one in the works, but if you don’t want to wait for it you should be able to build the most recent version out of jfx-sandbox repo, “direct3d12” branch and test this again (on that branch D3D12 builds by default so you shouldn’t have to worry about any additional flags for gradle). If the problem still persists, submitting a JBS issue with a reproducer would be helpful.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">-Lukasz</p>
<p class="MsoNormal"> </p>
<div style="border: none; border-top: solid rgb(225,225,225) 1.0pt; padding: 3.0pt 0.0cm 0.0cm 0.0cm;">
<p class="MsoNormal"><strong>From:</strong> Marius Hanl <mariushanl@web.de> <br><strong>Sent:</strong> Thursday, 2 October 2025 16:18<br><strong>To:</strong> Lukasz Kostyra <lukasz.kostyra@oracle.com>; openjfx-dev@openjdk.org<br><strong>Subject:</strong> [External] : Aw: JavaFX Direct3D 12 rendering pipeline for Windows</p>
</div>
<p class="MsoNormal"> </p>
<div>
<p class="MsoNormal"><span style="font-size: 9.0pt; font-family: Verdana , sans-serif; color: black; background: white;">Hi Lukasz</span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 9.0pt; font-family: Verdana , sans-serif; color: black; background: white;"> </span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 9.0pt; font-family: Verdana , sans-serif; color: black; background: white;">just tried the build under <a href="https://urldefense.com/v3/__https:/jdk.java.net/javafxdirect3d12/__;!!ACWV5N9M2RV99hQ!JngYLLw7RiUv70PBZplk9GHtsiaxBopDoNZKImjtPXoaDO8VzXFe7Emsl1z07OcYzvos_tkadNga_dfleYXQ7Tzu$" target="_blank" rel="noopener noreferrer"> https://jdk.java.net/javafxdirect3d12/</a> with some applications (not sure if that is the newest though).</span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 9.0pt; font-family: Verdana , sans-serif; color: black; background: white;">Thing look very good, however, I found two issues:</span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 9.0pt; font-family: Verdana , sans-serif; color: black; background: white;"> </span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 9.0pt; font-family: Verdana , sans-serif; color: black; background: white;">When I toggle fullScreen on the primary stage with: </span><span style="font-size: 9.0pt; font-family: 'Courier New'; color: black; background: white;">stage.setFullScreen(..)</span><span style="font-size: 9.0pt; font-family: Arial , sans-serif; color: black; background: white;"> </span><span style="font-size: 9.0pt; font-family: Verdana , sans-serif; color: black; background: white;">, I get an exception (D3D12 swapchain is NULL):</span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 9.0pt; font-family: Verdana , sans-serif; color: black; background: white;"><br>java.lang.NullPointerException: D3D12 swapchain is NULL<br>    at <a href="mailto:javafx.graphics@25-direct3d12/com.sun.prism.d3d12.D3D12SwapChain.%3cinit%3e(D3D12SwapChain.java:66)" target="_blank" rel="noopener noreferrer"> javafx.graphics@25-direct3d12/com.sun.prism.d3d12.D3D12SwapChain.<init>(D3D12SwapChain.java:66)</a><br>    at <a href="mailto:javafx.graphics@25-direct3d12/com.sun.prism.d3d12.D3D12SwapChain.create(D3D12SwapChain.java:78)" target="_blank" rel="noopener noreferrer"> javafx.graphics@25-direct3d12/com.sun.prism.d3d12.D3D12SwapChain.create(D3D12SwapChain.java:78)</a><br>    at <a href="mailto:javafx.graphics@25-direct3d12/com.sun.prism.d3d12.D3D12ResourceFactory.createPresentable(D3D12ResourceFactory.java:338)" target="_blank" rel="noopener noreferrer"> javafx.graphics@25-direct3d12/com.sun.prism.d3d12.D3D12ResourceFactory.createPresentable(D3D12ResourceFactory.java:338)</a><br>    at <a href="mailto:javafx.graphics@25-direct3d12/com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:81)" target="_blank" rel="noopener noreferrer"> javafx.graphics@25-direct3d12/com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:81)</a><br>    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545)<br>    at java.base/java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:369)<br>    at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java)<br>    at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)<br>    at java.base/java.util.concurrent.FutureTask.<init>(FutureTask.java:153)<br>    at <a href="mailto:javafx.graphics@25-direct3d12/com.sun.javafx.tk.RenderJob.%3cinit%3e(RenderJob.java:45)" target="_blank" rel="noopener noreferrer"> javafx.graphics@25-direct3d12/com.sun.javafx.tk.RenderJob.<init>(RenderJob.java:45)</a><br>    at <a href="mailto:javafx.graphics@25-direct3d12/com.sun.javafx.tk.quantum.PaintCollector.lambda$liveRepaintRenderJob$2(PaintCollector.java:330)" target="_blank" rel="noopener noreferrer"> javafx.graphics@25-direct3d12/com.sun.javafx.tk.quantum.PaintCollector.lambda$liveRepaintRenderJob$2(PaintCollector.java:330)</a><br>    at <a href="mailto:javafx.graphics@25-direct3d12/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)" target="_blank" rel="noopener noreferrer"> javafx.graphics@25-direct3d12/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)</a><br>    at <a href="mailto:javafx.graphics@25-direct3d12/com.sun.javafx.tk.quantum.PaintCollector.liveRepaintRenderJob(PaintCollector.java:329)" target="_blank" rel="noopener noreferrer"> javafx.graphics@25-direct3d12/com.sun.javafx.tk.quantum.PaintCollector.liveRepaintRenderJob(PaintCollector.java:329)</a><br>    at <a href="mailto:javafx.graphics@25-direct3d12/com.sun.javafx.tk.quantum.GlassViewEventHandler$ViewEventNotification.get(GlassViewEventHandler.java:810)" target="_blank" rel="noopener noreferrer"> javafx.graphics@25-direct3d12/com.sun.javafx.tk.quantum.GlassViewEventHandler$ViewEventNotification.get(GlassViewEventHandler.java:810)</a><br>    at <a href="mailto:javafx.graphics@25-direct3d12/com.sun.javafx.tk.quantum.GlassViewEventHandler$ViewEventNotification.get(GlassViewEventHandler.java:770)" target="_blank" rel="noopener noreferrer"> javafx.graphics@25-direct3d12/com.sun.javafx.tk.quantum.GlassViewEventHandler$ViewEventNotification.get(GlassViewEventHandler.java:770)</a><br>    at <a href="mailto:javafx.graphics@25-direct3d12/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)" target="_blank" rel="noopener noreferrer"> javafx.graphics@25-direct3d12/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)</a><br>    at <a href="mailto:javafx.graphics@25-direct3d12/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleViewEvent(GlassViewEventHandler.java:850)" target="_blank" rel="noopener noreferrer"> javafx.graphics@25-direct3d12/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleViewEvent(GlassViewEventHandler.java:850)</a><br>    at <a href="mailto:javafx.graphics@25-direct3d12/com.sun.glass.ui.View.handleViewEvent(View.java:543)" target="_blank" rel="noopener noreferrer"> javafx.graphics@25-direct3d12/com.sun.glass.ui.View.handleViewEvent(View.java:543)</a><br>    at <a href="mailto:javafx.graphics@25-direct3d12/com.sun.glass.ui.View.notifyResize(View.java:884)" target="_blank" rel="noopener noreferrer"> javafx.graphics@25-direct3d12/com.sun.glass.ui.View.notifyResize(View.java:884)</a><br>    at <a href="mailto:javafx.graphics@25-direct3d12/com.sun.glass.ui.win.WinView.notifyResize(WinView.java:91)" target="_blank" rel="noopener noreferrer"> javafx.graphics@25-direct3d12/com.sun.glass.ui.win.WinView.notifyResize(WinView.java:91)</a><br>    at <a href="mailto:javafx.graphics@25-direct3d12/com.sun.glass.ui.win.WinApplication._runLoop(Native" target="_blank" rel="noopener noreferrer"> javafx.graphics@25-direct3d12/com.sun.glass.ui.win.WinApplication._runLoop(Native</a> Method)<br>    at <a href="mailto:javafx.graphics@25-direct3d12/com.sun.glass.ui.win.WinApplication.lambda$runLoop$0(WinApplication.java:168)" target="_blank" rel="noopener noreferrer"> javafx.graphics@25-direct3d12/com.sun.glass.ui.win.WinApplication.lambda$runLoop$0(WinApplication.java:168)</a><br>    at java.base/java.lang.Thread.run(Thread.java:1474)</span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 9.0pt; font-family: Verdana , sans-serif; color: black; background: white;"> </span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 9.0pt; font-family: Verdana , sans-serif; color: black; background: white;">The other problem is related to LineChart. For me, sometimes the lines and the text is not rendered on the x and y axis.<br>When the axis change, it will render them again, but they will always disappear again after resizing the window.</span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 9.0pt; font-family: Verdana , sans-serif; color: black; background: white;"> </span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 9.0pt; font-family: Verdana , sans-serif; color: black; background: white;">Let me know if I should create an issue, or if I should build the branch by myself and test again! :)<br><br>-- Marius</span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size: 9.0pt; font-family: Verdana , sans-serif; color: black; background: white;"> </span></p>
</div>
<div id="sub-body-container" style="border: none; border-left: solid rgb(195,217,229) 1.5pt; padding: 0.0cm 0.0cm 0.0cm 8.0pt; margin: 7.5pt 3.75pt 3.75pt 7.5pt;">
<div style="margin-bottom: 7.5pt;">
<div>
<p class="MsoNormal"><strong><span style="font-family: Calibri , sans-serif;">Gesendet: </span></strong>Montag, 14. Oktober 2024 um 17:24</p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-family: Calibri , sans-serif;">Von: </span> </strong>"Lukasz Kostyra" <<a href="mailto:lukasz.kostyra@oracle.com" target="_blank" rel="noopener noreferrer">lukasz.kostyra@oracle.com</a>></p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-family: Calibri , sans-serif;">An: </span> </strong>openjfx-dev <<a href="mailto:openjfx-dev@openjdk.org" target="_blank" rel="noopener noreferrer">openjfx-dev@openjdk.org</a>></p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-family: Calibri , sans-serif;">Betreff: </span></strong>JavaFX Direct3D 12 rendering pipeline for Windows</p>
</div>
</div>
<div>
<p class="MsoNormal">Hello openjfx-dev,</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">we just pushed a prototype of a new JavaFX Direct3D 12 rendering pipeline</p>
<p class="MsoNormal">for Windows to a new "direct3d12" branch on jfx-sandbox. It is more than an</p>
<p class="MsoNormal">experiment branch - we intend to fully develop the D3D12 backend there.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">We're not necessarily looking for contributions at this point, but if anyone</p>
<p class="MsoNormal">has early feedback about it or wants to try it by building it themselves,</p>
<p class="MsoNormal">that would be fine. We also did not test it on a wider range of hardware, so</p>
<p class="MsoNormal">your mileage may vary. While D3D12 pipeline will build by default, D3D9</p>
<p class="MsoNormal">pipeline is still the default pick at runtime. To run anything on D3D12</p>
<p class="MsoNormal">pipeline you need to force it with ex.:</p>
<p class="MsoNormal">  java -Dprism.order=d3d12 ...</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Backend supports 2D rendering (albeit with some graphical issues here and there</p>
<p class="MsoNormal">that need to be ironed out) and basic 3D rendering. Expect not everything fully</p>
<p class="MsoNormal">working yet (ex. some gradients on 2D controls are incorrect, or 3D-in-2D will</p>
<p class="MsoNormal">straight up not work) and the performance not matching D3D9 yet. Our goal is to</p>
<p class="MsoNormal">first reach feature completion and then focus on performance.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Lukasz</p>
</div>
</div>
</div>
</div>