<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>I did not encounter the vanishing issue anymore with that build,
      so at least it is usable.</p>
    <p>However, the font rendering issue still exists for some nodes:</p>
    <p><img src="cid:part1.jilJ2yi8.qSGqkFEL@xpipe.io" alt=""></p>
    <p>It is not deterministic, meaning that if I just scroll the
      scrollpane forward and back, the same text might get rendered
      correctly.</p>
    <p>Also, did you see the performance results I posted for my AMD
      system? Performance was quite bad there, so this is not in a stage
      where I can test this in production a bit.</p>
    <div class="moz-cite-prefix">On 28/11/2025 12:41, Lukasz Kostyra
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:IA3PR10MB8682E4623B0A4251DBAF9AAEFEDCA@IA3PR10MB8682.namprd10.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="Generator"
        content="Microsoft Word 15 (filtered medium)">
      <!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]-->
      <style>@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-ligatures:standardcontextual;
        mso-fareast-language:EN-US;}a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}div.WordSection1
        {page:WordSection1;}</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal"><span lang="PL">Hi Christopher,<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="PL"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">I just pushed a fix for
            JDK-8371995 onto direct3d12 branch in the sandbox -
            <a
href="https://github.com/openjdk/jfx-sandbox/tree/direct3d12"
              moz-do-not-send="true" class="moz-txt-link-freetext">https://github.com/openjdk/jfx-sandbox/tree/direct3d12</a>
            . If you find a moment, could you build JFX from that branch
            and check if your app works correctly?<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">-Lukasz<o:p></o:p></span></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <div>
          <div
style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
            <p class="MsoNormal"><b><span lang="EN-US"
                  style="mso-ligatures:none;mso-fareast-language:#0C00">From:</span></b><span
                lang="EN-US"
                style="mso-ligatures:none;mso-fareast-language:#0C00">
                openjfx-dev <a class="moz-txt-link-rfc2396E" href="mailto:openjfx-dev-retn@openjdk.org"><openjfx-dev-retn@openjdk.org></a>
                <b>On Behalf Of </b>Lukasz Kostyra<br>
                <b>Sent:</b> Monday, 17 November 2025 15:14<br>
                <b>To:</b> Christopher Schnick
                <a class="moz-txt-link-rfc2396E" href="mailto:crschnick@xpipe.io"><crschnick@xpipe.io></a><br>
                <b>Cc:</b> OpenJFX <a class="moz-txt-link-rfc2396E" href="mailto:openjfx-dev@openjdk.org"><openjfx-dev@openjdk.org></a><br>
                <b>Subject:</b> RE: Re: JavaFX Direct3D 12 - Second EA
                release<o:p></o:p></span></p>
          </div>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal"><span lang="EN-US">I might’ve found the
            problem, there is an assertion that triggers when multiple
            text objects using different fonts are drawn. It could be
            related (AFAIK Label controls will eventually end up at the
            same text rendering routines as Text nodes). Assertions are
            compiled out on Release for performance, so there is a
            chance it would corrupt the rendering without anything
            meaningful shown on screen.<br>
            <br>
            To track this I just filed <a
              href="https://bugs.openjdk.org/browse/JDK-8371995"
              moz-do-not-send="true" class="moz-txt-link-freetext">
              https://bugs.openjdk.org/browse/JDK-8371995</a> . I will
            check it and let you know when I fix it.<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">On your side It might
            still be handy to build JFX in DebugNative, to confirm if
            the triggered assertion is the same and to later confirm if
            the fix is working for you too.<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">-Lukasz<o:p></o:p></span></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <div>
          <div
style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
            <p class="MsoNormal"><b><span lang="EN-US"
                  style="mso-ligatures:none;mso-fareast-language:#0C00">From:</span></b><span
                lang="EN-US"
                style="mso-ligatures:none;mso-fareast-language:#0C00">
                Christopher Schnick <<a
                  href="mailto:crschnick@xpipe.io"
                  moz-do-not-send="true" class="moz-txt-link-freetext">crschnick@xpipe.io</a>>
                <br>
                <b>Sent:</b> Saturday, 15 November 2025 17:39<br>
                <b>To:</b> Lukasz Kostyra <<a
                  href="mailto:lukasz.kostyra@oracle.com"
                  moz-do-not-send="true" class="moz-txt-link-freetext">lukasz.kostyra@oracle.com</a>><br>
                <b>Cc:</b> OpenJFX <<a
                  href="mailto:openjfx-dev@openjdk.org"
                  moz-do-not-send="true" class="moz-txt-link-freetext">openjfx-dev@openjdk.org</a>><br>
                <b>Subject:</b> Re: [External] : Re: JavaFX Direct3D 12
                - Second EA release<o:p></o:p></span></p>
          </div>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p>Forgot to add, there is nothing out of the ordinary printed
          in the verbose logs.<br>
          <br>
          If I find the time, I can look into compiling a debug build.<o:p></o:p></p>
        <p>But the problem should be reproducible somehow when just
          automatically creating a lot of labels with random styles,
          sizes, and text. Some of them should break as they did for me.<o:p></o:p></p>
        <div>
          <p class="MsoNormal">On 15/11/2025 17:34, Christopher Schnick
            wrote:<o:p></o:p></p>
        </div>
        <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
          <p>Ok, so I had more time to debug it. The one weird thing I
            observed when it was working was that some labels have
            corrupted text rendering:<o:p></o:p></p>
          <p><img border="0" width="810" height="501"
              style="width:8.4375in;height:5.2187in"
              id="Picture_x0020_1"
              src="cid:part2.nMIB2pA2.M3XyhUOZ@xpipe.io" class=""><o:p></o:p></p>
          <p><br>
            Not all of them, most are fine. There are no differences in
            terms of style classes etc. between the labels. When
            scrolling, the rendering sometimes switches between this
            corrupted and normal state after some delay.<br>
            <br>
            After a while I also figured out that text rendering is
            responsible for the issue of the nodes vanishing: Certain
            label contents broke the renderer. For example, in my
            application, the string "Password manager" when assigned to
            a label broke it and nothing was rendered anymore. I tried
            to find an easy reproducer but was not able to. It's
            probably very dependent on all the different style classes
            that influence the text shape/size/etc.<o:p></o:p></p>
          <div>
            <p class="MsoNormal">On 13/11/2025 16:30, Lukasz Kostyra
              wrote:<o:p></o:p></p>
          </div>
          <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
            <p class="MsoNormal"><span lang="PL">Thanks for checking.</span><o:p></o:p></p>
            <p class="MsoNormal"><span lang="PL"> </span><o:p></o:p></p>
            <p class="MsoNormal"><span lang="EN-US">It is very possible
                the D3D12 runtime did not like something, could be
                related to your specific hardware. D3D12 by now has many
                extensions which differ depending on hardware and can
                lift certain restrictions - we already internally had a
                case where one GPU had some restriction that was not
                enforced on another GPU and we had to accommodate that.</span><o:p></o:p></p>
            <p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
            <p class="MsoNormal"><span lang="EN-US">The first step would
                be to try running D3D12 with “-Dprism.verbose=true
                -Dprism.debug=true”. These should print additional logs
                that might have some extra information.</span><o:p></o:p></p>
            <p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
            <p class="MsoNormal"><span lang="EN-US">If there’s nothing
                useful there, next step would be to build JavaFX with
                -PCONF=DebugNative - this will compile shaders in Debug,
                add assertions and debug logs to the backend - and then
                run your app with D3D12 debug layers and GPU debugging
                enabled by adding “-Dprsim.d3d12.debugLayers=true
                -Dprism.d3d12.gpuDebug=true”. Those will slow down the
                app significantly, but will also tell D3D12 to run
                additional API use and GPU use checks.</span><o:p></o:p></p>
            <p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
            <p class="MsoNormal"><span lang="EN-US">If the problem
                happens during a render loop and debug layers catch it,
                there is a chance it will cascade into other errors and
                spam the console output - you can tell D3D12 debug
                layers to trigger an assertion on first encountered
                error with “-Dprism.d3d12.breakOnError=true”.</span><o:p></o:p></p>
            <p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
            <p class="MsoNormal"><span lang="EN-US">I am running out of
                time today to check this myself, but if you find
                something let me know - I’ll try to reproduce the
                problem myself and we’ll see where we go from there.</span><o:p></o:p></p>
            <p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
            <p class="MsoNormal"><span lang="EN-US">Good luck!</span><o:p></o:p></p>
            <p class="MsoNormal"><span lang="EN-US">- Lukasz</span><o:p></o:p></p>
            <p class="MsoNormal"> <o:p></o:p></p>
            <div>
              <div
style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
                <p class="MsoNormal"><b><span lang="EN-US"
style="mso-ligatures:none;mso-fareast-language:#0C00">From:</span></b><span
                    lang="EN-US"
style="mso-ligatures:none;mso-fareast-language:#0C00"> Christopher
                    Schnick
                    <a href="mailto:crschnick@xpipe.io"
                      moz-do-not-send="true"><crschnick@xpipe.io></a>
                    <br>
                    <b>Sent:</b> Thursday, 13 November 2025 16:11<br>
                    <b>To:</b> Lukasz Kostyra <a
                      href="mailto:lukasz.kostyra@oracle.com"
                      moz-do-not-send="true"><lukasz.kostyra@oracle.com></a><br>
                    <b>Cc:</b> <a href="mailto:openjfx-dev@openjdk.org"
                      moz-do-not-send="true"
                      class="moz-txt-link-freetext">openjfx-dev@openjdk.org</a><br>
                    <b>Subject:</b> [External] : Re: JavaFX Direct3D 12
                    - Second EA release</span><o:p></o:p></p>
              </div>
            </div>
            <p class="MsoNormal"> <o:p></o:p></p>
            <p>I just tried to run a project with provided jmods and at
              some point, certain nodes are just not rendered anymore
              and the window contents vanish. But they render for a
              short period of time.<br>
              <br>
              There is no exception thrown as far as I can see, so not
              sure what you need for debugging.<br>
              <br>
              For testing, this is the built application with the d3d12
              jmods that you can use to attempt to reproduce the
              problem:
              <a
href="https://urldefense.com/v3/__https:/we.tl/t-DJuX0BeqXm__;!!ACWV5N9M2RV99hQ!K0ztYeDtYFyIwxlmMB-9MDuvY7Xyd60-LuJK99hex3mclCWl29MJfnxkz2mmECxINzNr5bAdKvQ64O9Xn7hHbsl_$"
                moz-do-not-send="true">
                https://we.tl/t-DJuX0BeqXm</a> . It is built from these
              sources: <a
href="https://urldefense.com/v3/__https:/github.com/xpipe-io/kickstartfx__;!!ACWV5N9M2RV99hQ!K0ztYeDtYFyIwxlmMB-9MDuvY7Xyd60-LuJK99hex3mclCWl29MJfnxkz2mmECxINzNr5bAdKvQ64O9Xn9_QfENu$"
                moz-do-not-send="true">
                https://github.com/xpipe-io/kickstartfx</a><o:p></o:p></p>
            <div>
              <p class="MsoNormal">On 13/11/2025 14:40, Lukasz Kostyra
                wrote:<o:p></o:p></p>
            </div>
            <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
              <p class="MsoNormal">Hello openjfx-dev,<o:p></o:p></p>
              <p class="MsoNormal"> <o:p></o:p></p>
              <p class="MsoNormal">The second Early Access(EA) build of
                JavaFX with the Windows Direct3D 12 rendering pipeline
                is now available at:
                <a
href="https://urldefense.com/v3/__https:/jdk.java.net/javafxdirect3d12/__;!!ACWV5N9M2RV99hQ!K0ztYeDtYFyIwxlmMB-9MDuvY7Xyd60-LuJK99hex3mclCWl29MJfnxkz2mmECxINzNr5bAdKvQ64O9Xnw7Bj6i8$"
                  moz-do-not-send="true">
                  https://jdk.java.net/javafxdirect3d12/</a><o:p></o:p></p>
              <p class="MsoNormal"> <o:p></o:p></p>
              <p class="MsoNormal">Please test this bundle and share
                your feedback by:<o:p></o:p></p>
              <p class="MsoNormal">- emailing <a
                  href="mailto:openjfx-dev@openjdk.java.net"
                  moz-do-not-send="true" class="moz-txt-link-freetext">openjfx-dev@openjdk.java.net</a>
                or<o:p></o:p></p>
              <p class="MsoNormal">- reporting issues via JBS[<a
                  href="https://bugs.openjdk.org/"
                  moz-do-not-send="true" class="moz-txt-link-freetext">https://bugs.openjdk.org/</a>]
                or at
                <a
href="https://urldefense.com/v3/__https:/bugreport.java.com__;!!ACWV5N9M2RV99hQ!K0ztYeDtYFyIwxlmMB-9MDuvY7Xyd60-LuJK99hex3mclCWl29MJfnxkz2mmECxINzNr5bAdKvQ64O9Xn-g1RFIV$"
                  moz-do-not-send="true">
                  https://bugreport.java.com</a><o:p></o:p></p>
              <p class="MsoNormal"> <o:p></o:p></p>
              <p class="MsoNormal">This is the second EA release. The
                backend is feature-complete
                <span lang="EN-US">and went through a first optimization
                  pass</span>, but it <span lang="EN-US">
                  still </span>requires <span lang="EN-US">some </span>more
                testing <span lang="EN-US">
                  on more hardware variants </span>before we can
                consider it complete. As such, with this release we also
                would like to call for
                <span lang="EN-US">help with </span>performance <span
                  lang="EN-US">testing the backend
                </span>(more details on that will be sent in a separate
                email thread).<o:p></o:p></p>
              <p class="MsoNormal"> <o:p></o:p></p>
              <p class="MsoNormal">Known issues and pending tasks are
                captured on JBS and can be accessed using the filter
                provided on the Direct3D 12 EA page [<a
href="https://urldefense.com/v3/__https:/jdk.java.net/javafxdirect3d12/__;!!ACWV5N9M2RV99hQ!K0ztYeDtYFyIwxlmMB-9MDuvY7Xyd60-LuJK99hex3mclCWl29MJfnxkz2mmECxINzNr5bAdKvQ64O9Xnw7Bj6i8$"
                  moz-do-not-send="true">https://jdk.java.net/javafxdirect3d12/</a>].
                Before reporting a new bug, please review the existing
                issues to avoid duplicates.<o:p></o:p></p>
              <p class="MsoNormal"> <o:p></o:p></p>
              <p class="MsoNormal">Important Notes:<o:p></o:p></p>
              <p class="MsoNormal">1. This is a Windows-specific
                feature, so only a Windows-specific bundle is provided.<o:p></o:p></p>
              <p class="MsoNormal">2. The default rendering pipeline is
                set to d3d12. Use "-Dprism.order=d3d" or
                "-Dprism.order=sw" to select one of the other pipelines
                for comparison testing.<o:p></o:p></p>
              <p class="MsoNormal">3. It is recommended to use JDK 25 or
                later.<o:p></o:p></p>
              <p class="MsoNormal">4. At this stage D3D12 backend is
                feature-complete and went through the first phase of
                optimization.
                <span lang="EN-US">I</span>t is worth noting <span
                  lang="EN-US">that, while generally we noticed
                  performance improvements,</span> it might not be
                <span lang="EN-US">on par with D3D backend on every
                  machine combo  - </span>we already noted performance
                being worse on recent NVidia discrete GPUs [<a
                  href="https://bugs.openjdk.org/browse/JDK-8370486"
                  moz-do-not-send="true" class="moz-txt-link-freetext">https://bugs.openjdk.org/browse/JDK-8370486</a>]
                and are looking for solutions.<o:p></o:p></p>
              <p class="MsoNormal">5. Issue behavior may vary across
                different hardware<span lang="EN-US">, so
                </span>please provide detailed information, such as the
                output of "java -Dprism.verbose=true" or used hardware,
                when reporting or discussing issues.<o:p></o:p></p>
              <p class="MsoNormal">6. Refer: Run HelloWorld using JavaFX
                SDK [<a
href="https://urldefense.com/v3/__https:/openjfx.io/openjfx-docs/*install-javafx__;Iw!!ACWV5N9M2RV99hQ!K0ztYeDtYFyIwxlmMB-9MDuvY7Xyd60-LuJK99hex3mclCWl29MJfnxkz2mmECxINzNr5bAdKvQ64O9Xn8uMZKUY$"
                  moz-do-not-send="true">https://openjfx.io/openjfx-docs/#install-javafx</a>]<o:p></o:p></p>
              <p class="MsoNormal"> <o:p></o:p></p>
              <p class="MsoNormal">We look forward to your feedback.<o:p></o:p></p>
              <p class="MsoNormal"> <o:p></o:p></p>
              <p class="MsoNormal">Regards,<o:p></o:p></p>
              <p class="MsoNormal">Lukasz<o:p></o:p></p>
              <p class="MsoNormal"><span
                  style="mso-ligatures:none;mso-fareast-language:#0C00"> </span><o:p></o:p></p>
              <p style="margin:5.0pt"><span
                  style="font-size:10.0pt;color:black">Confidential-
                  Oracle Internal</span><o:p></o:p></p>
            </blockquote>
          </blockquote>
        </blockquote>
      </div>
    </blockquote>
  </body>
</html>