<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@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;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
span.EmailStyle21
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:525293316;
mso-list-template-ids:-276933612;}
@list l1
{mso-list-id:1484859158;
mso-list-template-ids:1606996298;}
@list l2
{mso-list-id:1626230108;
mso-list-template-ids:-265531992;}
@list l3
{mso-list-id:1867207909;
mso-list-template-ids:1233134408;}
@list l3:level1
{mso-level-start-at:4;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
--></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]-->
</head>
<body lang="en-NL" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">Thanks for testing! They seem to be mostly in line with what we see as well.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">I will take a closer look at those and work on improving those soon after I’m done with functional bugs we caught since EA2 :)<br>
<br>
-Lukasz<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> Marius Hanl <mariushanl@web.de>
<br>
<b>Sent:</b> Wednesday, 3 December 2025 20:32<br>
<b>To:</b> Lukasz Kostyra <lukasz.kostyra@oracle.com>; openjfx-dev@openjdk.org<br>
<b>Subject:</b> [External] : RE: RE: JavaFX Direct3D 12 - Call for performance testing help<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black;background:white">Hi Lukasz,</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black">
<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black;background:white"> </span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black;background:white">finally, here are my benchmarks.</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black;background:white">I can confirm what you found out earlier.</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black;background:white"> </span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black;background:white">Some 3D shapes seems to perform better.</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black;background:white">Especially Text Rendering seems way worse right now, as expected.</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black;background:white"> </span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black;background:white">#1 - Tower PC</span></strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black;background:white">- AMD Ryzen 9 5900X<br>
- AMD Radeon RX 6900 XT</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black;background:white"> </span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black;background:white">D3D12</span></strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black;background:white">Test;objectCount;FPS<br>
3DBox;20000;28,73<br>
3DCylinder;20000;28,77<br>
3DMesh;15000;12,50<br>
3DSphere;20000;35,57<br>
Arc;6500;15,27<br>
Button;5000;12,40<br>
Circle;70000;8,87<br>
CircleBlendAdd;22500;14,13<br>
CircleBlendDarken;22500;14,13<br>
CircleBlendMultiply;22500;14,10<br>
CircleRH;12500;13,00<br>
ColorText;25000;1,00<br>
CubicCurve;40000;10,50<br>
Ellipse;70000;8,70<br>
Image;70000;9,30<br>
ImageRH;70000;9,23<br>
Label;5000;17,80<br>
LargeColorText;30000;1,50<br>
LargeText;30000;1,50<br>
LinGradCircle;40000;8,93<br>
Line;70000;8,70<br>
MultiShape2D;22500;11,83<br>
MultiShape2D3D;22500;27,33<br>
MultiShape2D3DInterleaved;15000;24,00<br>
MultiShape2DInterleaved;12500;14,97<br>
MultiShape3D;12500;50,37<br>
MultiShape3DInterleaved;12500;36,50<br>
OpenArc;5000;17,03<br>
Path;40000;10,67<br>
Polygon;47500;9,50<br>
QuadCurve;47500;10,20<br>
RadGradCircle;4000;29,93<br>
RandomSizeText;22500;1,10<br>
Rectangle;70000;8,63<br>
RotatedRectangleRH;47500;6,60<br>
StrokedCircle;70000;8,10<br>
StrokedPolygon;47500;5,53<br>
StrokedRectangle;70000;8,10<br>
WhiteText;22500;1,00</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black;background:white">D3D</span></strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black;background:white">Test;objectCount;FPS<br>
3DBox;20000;31,97<br>
3DCylinder;20000;34,13<br>
3DMesh;15000;28,77<br>
3DSphere;20000;20,27<br>
Arc;6500;16,97<br>
Button;5000;13,07<br>
Circle;70000;20,47<br>
CircleBlendAdd;22500;11,10<br>
CircleBlendDarken;22500;11,00<br>
CircleBlendMultiply;22500;10,83<br>
CircleRH;12500;15,73<br>
ColorText;25000;14,50<br>
CubicCurve;40000;27,33<br>
Ellipse;70000;19,07<br>
Image;70000;33,37<br>
ImageRH;70000;19,67<br>
Label;5000;15,60<br>
LargeColorText;30000;16,30<br>
LargeText;30000;16,27<br>
LinGradCircle;40000;24,87<br>
Line;70000;18,33<br>
MultiShape2D;22500;16,57<br>
MultiShape2D3D;22500;32,43<br>
MultiShape2D3DInterleaved;15000;16,63<br>
MultiShape2DInterleaved;12500;8,93<br>
MultiShape3D;12500;40,67<br>
MultiShape3DInterleaved;12500;26,07<br>
OpenArc;5000;18,97<br>
Path;40000;25,50<br>
Polygon;47500;22,40<br>
QuadCurve;47500;24,17<br>
RadGradCircle;4000;14,90<br>
RandomSizeText;22500;16,10<br>
Rectangle;70000;16,60<br>
RotatedRectangleRH;47500;17,47<br>
StrokedCircle;70000;20,90<br>
StrokedPolygon;47500;20,97<br>
StrokedRectangle;70000;15,80<br>
WhiteText;22500;16,80</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black;background:white">#2 - Laptop, only iGPU</span></strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black">- AMD Ryzen 9 9955HX3D<br>
- iGPU: AMD Radeon(TM) 610M<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"> </span></strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black">D3D12</span></strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black">Test;objectCount;FPS<br>
3DBox;20000;18,43<br>
3DCylinder;20000;12,80<br>
3DMesh;15000;6,90<br>
3DSphere;20000;6,50<br>
Arc;6500;13,87<br>
Button;5000;5,20<br>
Circle;70000;8,93<br>
CircleBlendAdd;22500;15,63<br>
CircleBlendDarken;22500;15,53<br>
CircleBlendMultiply;22500;15,43<br>
CircleRH;12500;13,03<br>
ColorText;25000;0,80<br>
CubicCurve;40000;11,67<br>
Ellipse;70000;8,90<br>
Image;70000;8,93<br>
ImageRH;70000;8,97<br>
Label;5000;20,87<br>
LargeColorText;30000;0,70<br>
LargeText;30000;0,70<br>
LinGradCircle;40000;10,47<br>
Line;70000;8,30<br>
MultiShape2D;22500;10,77<br>
MultiShape2D3D;22500;15,00<br>
MultiShape2D3DInterleaved;15000;20,63<br>
MultiShape2DInterleaved;12500;15,67<br>
MultiShape3D;12500;17,97<br>
MultiShape3DInterleaved;12500;17,00<br>
OpenArc;5000;16,10<br>
Path;40000;10,97<br>
Polygon;47500;9,60<br>
QuadCurve;47500;10,03<br>
RadGradCircle;4000;43,50<br>
Rectangle;70000;8,50<br>
RotatedRectangleRH;47500;9,43<br>
StrokedCircle;70000;8,53<br>
StrokedPolygon;47500;10,60<br>
StrokedRectangle;70000;8,67<br>
WhiteText;22500;0,90<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"> </span></strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black">D3D</span></strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black">Test;objectCount;FPS<br>
3DBox;20000;7,53<br>
3DCylinder;20000;5,20<br>
3DMesh;15000;5,83<br>
3DSphere;20000;3,53<br>
Arc;6500;14,73<br>
Button;5000;2,30<br>
Circle;70000;11,77<br>
CircleBlendAdd;22500;12,00<br>
CircleBlendDarken;22500;12,30<br>
CircleBlendMultiply;22500;12,13<br>
CircleRH;12500;11,33<br>
ColorText;25000;10,90<br>
CubicCurve;40000;23,10<br>
Ellipse;70000;6,37<br>
Image;70000;11,73<br>
ImageRH;70000;11,87<br>
Label;5000;19,93<br>
LargeColorText;30000;5,43<br>
LargeText;30000;5,53<br>
LinGradCircle;40000;8,63<br>
Line;70000;19,93<br>
MultiShape2D;22500;10,70<br>
MultiShape2D3D;22500;8,77<br>
MultiShape2D3DInterleaved;15000;11,37<br>
MultiShape2DInterleaved;12500;10,53<br>
MultiShape3D;12500;8,93<br>
MultiShape3DInterleaved;12500;7,23<br>
OpenArc;5000;17,57<br>
Path;40000;12,70<br>
Polygon;47500;20,47<br>
QuadCurve;47500;21,63<br>
RadGradCircle;4000;18,27<br>
Rectangle;70000;13,07<br>
RotatedRectangleRH;47500;17,43<br>
StrokedCircle;70000;10,20<br>
StrokedPolygon;47500;17,40<br>
StrokedRectangle;70000;10,80<br>
WhiteText;22500;12,83<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black;background:white">#3 - Laptop, with dGPU</span></strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black">- AMD Ryzen 9 9955HX3D<br>
- iGPU: AMD Radeon(TM) 610M<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black">- dGPU: NVIDIA GeForce RTX 5080 Laptop GPU<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"> </span></strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black">D3D12</span></strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black">Test;objectCount;FPS<br>
3DBox;20000;39,73<br>
3DCylinder;20000;37,67<br>
3DMesh;15000;32,13<br>
3DSphere;20000;47,93<br>
Arc;6500;8,10<br>
Button;5000;1,30<br>
Circle;70000;1,00<br>
CircleBlendAdd;22500;2,20<br>
CircleBlendDarken;22500;2,20<br>
CircleBlendMultiply;22500;2,20<br>
CircleRH;12500;6,27<br>
ColorText;25000;0,00<br>
CubicCurve;40000;3,17<br>
Ellipse;70000;1,90<br>
Image;70000;1,90<br>
ImageRH;70000;1,90<br>
Label;5000;2,60<br>
LargeColorText;30000;0,00<br>
LargeText;30000;0,00<br>
LinGradCircle;40000;1,60<br>
Line;70000;1,00<br>
MultiShape2D;22500;4,30<br>
MultiShape2D3D;22500;10,20<br>
MultiShape2D3DInterleaved;15000;13,30<br>
MultiShape2DInterleaved;12500;7,70<br>
MultiShape3D;12500;76,87<br>
MultiShape3DInterleaved;12500;58,33<br>
OpenArc;5000;9,93<br>
Path;40000;3,10<br>
Polygon;47500;2,63<br>
QuadCurve;47500;2,60<br>
RadGradCircle;4000;27,30<br>
Rectangle;70000;1,00<br>
RotatedRectangleRH;47500;1,40<br>
StrokedCircle;70000;1,13<br>
StrokedPolygon;47500;2,07<br>
StrokedRectangle;70000;1,87<br>
WhiteText;22500;0,00<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"> </span></strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black">D3D</span></strong><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black">Test;objectCount;FPS<br>
3DBox;20000;59,40<br>
3DCylinder;20000;56,87<br>
3DMesh;15000;16,57<br>
3DSphere;20000;57,30<br>
Arc;6500;10,03<br>
Button;5000;5,63<br>
Circle;70000;43,63<br>
CircleBlendAdd;22500;56,60<br>
CircleBlendDarken;22500;55,57<br>
CircleBlendMultiply;22500;54,57<br>
CircleRH;12500;8,83<br>
ColorText;25000;19,23<br>
CubicCurve;40000;35,87<br>
Ellipse;70000;19,53<br>
Image;70000;41,57<br>
ImageRH;70000;34,93<br>
Label;5000;72,20<br>
LargeColorText;30000;17,97<br>
LargeText;30000;15,93<br>
LinGradCircle;40000;32,40<br>
Line;70000;20,17<br>
MultiShape2D;22500;10,70<br>
MultiShape2D3D;22500;78,77<br>
MultiShape2D3DInterleaved;15000;52,80<br>
MultiShape2DInterleaved;12500;20,67<br>
MultiShape3D;12500;87,70<br>
MultiShape3DInterleaved;12500;74,47<br>
OpenArc;5000;12,43<br>
Path;40000;31,67<br>
Polygon;47500;27,60<br>
QuadCurve;47500;31,67<br>
RadGradCircle;4000;28,70<br>
Rectangle;70000;20,97<br>
RotatedRectangleRH;47500;23,23<br>
StrokedCircle;70000;34,57<br>
StrokedPolygon;47500;24,53<br>
StrokedRectangle;70000;19,53<br>
WhiteText;22500;24,97<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black">Also attached all results. <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black">-- Marius<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black"> <o:p></o:p></span></p>
</div>
<div style="border:none;border-left:solid #C3D9E5 1.5pt;padding:0cm 0cm 0cm 8.0pt;margin-left:7.5pt;margin-top:7.5pt;margin-right:3.75pt;margin-bottom:3.75pt" id="sub-body-container">
<div style="margin-bottom:7.5pt">
<div>
<p class="MsoNormal"><strong><span style="font-family:"Calibri",sans-serif">Gesendet:
</span></strong>Freitag, 14. November 2025 um 15:10<o:p></o:p></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">lukasz.kostyra@oracle.com</a>><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-family:"Calibri",sans-serif">An: </span>
</strong>"<a href="mailto:openjfx-dev@openjdk.org">openjfx-dev@openjdk.org</a>" <<a href="mailto:openjfx-dev@openjdk.org">openjfx-dev@openjdk.org</a>><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><strong><span style="font-family:"Calibri",sans-serif">Betreff:
</span></strong>RE: JavaFX Direct3D 12 - Call for performance testing help<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Hello all,<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I got feedback on the previous call for performance testing email that, instead of using the Bash test script on Windows (and hoping you have Cygwin/MINGW installed) it would be
easier to integrate testing and CSV output functionality into RenderPerfTest. I made those changes and they are now available on jfx-sandbox direct3d12 branch (you WON’T find those on main repo yet):
<a href="https://urldefense.com/v3/__https:/github.com/openjdk/jfx-sandbox/tree/direct3d12/tests/performance/animation/RenderPerfTest/src/renderperf__;!!ACWV5N9M2RV99hQ!OPDGeZcoI8FCHDUo-VSzEu04GgAdiAsA-L-P3Yr0BQi7U99rj3vcn1EXCwJXdQEoJFydRrZ9aVcJ78LmN2mV5C03$" target="_blank">
https://github.com/openjdk/jfx-sandbox/tree/direct3d12/tests/performance/animation/RenderPerfTest/src/renderperf</a><br>
<br>
Any feedback regarding RenderPerfTest will be updated on that branch automatically, so it’s indeed a better solution if there’s more feedback to it :)<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><br>
<strong><u><span style="font-family:"Calibri",sans-serif">New steps for running tests:</span></u></strong><o:p></o:p></p>
<ol start="1" type="1">
<li class="MsoListParagraph" style="mso-list:l0 level1 lfo1">Download RenderPerfTest from above link (has to be jfx-sandbox repo, direct3d12 branch) - best to download the entire “renderperf” folder as ZIP as it contains extra resources needed for the test
app<o:p></o:p></li><li class="MsoListParagraph" style="mso-list:l0 level1 lfo1">Get JavaFX Direct3D 12 build - either download the EA2 SDK from [
<a href="https://urldefense.com/v3/__https:/jdk.java.net/javafxdirect3d12/__;!!ACWV5N9M2RV99hQ!OPDGeZcoI8FCHDUo-VSzEu04GgAdiAsA-L-P3Yr0BQi7U99rj3vcn1EXCwJXdQEoJFydRrZ9aVcJ78LmNxHJSc0g$" target="_blank">
https://jdk.java.net/javafxdirect3d12/</a> ] or build it from scratch from direct3d12 [
<a href="https://urldefense.com/v3/__https:/github.com/openjdk/jfx-sandbox/tree/direct3d12__;!!ACWV5N9M2RV99hQ!OPDGeZcoI8FCHDUo-VSzEu04GgAdiAsA-L-P3Yr0BQi7U99rj3vcn1EXCwJXdQEoJFydRrZ9aVcJ78LmN8EQENBY$" target="_blank">
https://github.com/openjdk/jfx-sandbox/tree/direct3d12</a> ] branch (make sure to
<strong><span style="font-family:"Calibri",sans-serif">build with -PCONF=Release</span></strong>; at the time of writing this email there is no functional difference between the sandbox repo and the EA2 build).<o:p></o:p></li><li class="MsoListParagraph" style="mso-list:l0 level1 lfo1">RenderPerf can be run with (underlined parts you need to fill in yourself):<br>
<strong><span style="font-family:"Calibri",sans-serif">java --upgrade-module-path="<u><path_to_jfx_sdk>/lib</u>" --add-modules=javafx.base,javafx.controls,javafx.graphics,jdk.jsobject,javafx.media --enable-native-access=javafx.graphics -Dprism.order=<u><backend></u>
renderperf/RenderPerfTest.java --output-csv -r <u><runs></u></span></strong><b><u><br>
</u></b>Where:<br>
<strong><span style="font-family:"Calibri",sans-serif"> <path_to_jfx_sdk></span></strong> - path to directory where JavaFX SDK is located (has to be where JavaFX bin and lib folders reside)<br>
<strong><span style="font-family:"Calibri",sans-serif"> <backend> </span></strong>- short-hand for which Prism backend to use<br>
<strong><span style="font-family:"Calibri",sans-serif"><runs></span></strong> - how many times each test case should run; RenderPerf will average FPS results from these runs<o:p></o:p></li></ol>
<p class="MsoListParagraph"> <o:p></o:p></p>
<ol start="4" type="1">
<li class="MsoListParagraph" style="mso-list:l3 level1 lfo2">Running RenderPerf like above will produce
<strong><span style="font-family:"Calibri",sans-serif">RenderPerf_results-<backend>-<date>-<time>.csv</span></strong> in your current directory.<o:p></o:p></li></ol>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><strong><u><span style="font-family:"Calibri",sans-serif">Examples:</span></u></strong><o:p></o:p></p>
<ol start="1" type="1">
<li class="MsoListParagraph" style="margin-bottom:12.0pt;mso-list:l1 level1 lfo3">
For D3D baseline test, run:<br>
<strong><span style="font-family:"Calibri",sans-serif">java --upgrade-module-path="<u><path_to_jfx_sdk></u>/lib" --add-modules=javafx.base,javafx.controls,javafx.graphics,jdk.jsobject,javafx.media, --enable-native-access=javafx.graphics -Dprism.order=d3d
renderperf/RenderPerfTest.java --output-csv -r 3</span></strong><o:p></o:p></li><li class="MsoListParagraph" style="mso-list:l1 level1 lfo3">For D3D12 baseline test, run:<br>
java --upgrade-module-path="<strong><u><span style="font-family:"Calibri",sans-serif"><path_to_jfx_sdk></span></u></strong>/lib" --add-modules=javafx.base,javafx.controls,javafx.graphics,jdk.jsobject,javafx.media, --enable-native-access=javafx.graphics
-Dprism.order=d3d12 renderperf/RenderPerfTest.java --output-csv -r 3<o:p></o:p></li></ol>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><strong><u><span style="font-family:"Calibri",sans-serif">Notes:</span></u></strong><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">* Closing the test on warm-up stage will stop the test run early<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">* Similarly to the test script, RenderPerfTest defines default object numbers at the beginning as
<strong><span style="font-family:"Calibri",sans-serif">Map<String, Integer> defaultObjectCounts
</span></strong>which are used for running all the tests. Similar remarks as to the test script apply - It would be preferred to keep these numbers as-is but if needed (test timeouts loading, or framerate on baseline D3D run is very low (below 15FPS) ) they
can be lowered, as long as they remain consistent between D3D and D3D12 runs.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Thanks once again for your help!<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">-Lukasz<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <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" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><strong><span style="font-family:"Calibri",sans-serif">From:</span></strong> openjfx-dev <<a href="mailto:openjfx-dev-retn@openjdk.org">openjfx-dev-retn@openjdk.org</a>>
<strong><span style="font-family:"Calibri",sans-serif">On Behalf Of </span></strong>Lukasz Kostyra<br>
<strong><span style="font-family:"Calibri",sans-serif">Sent:</span></strong> Thursday, 13 November 2025 15:50<br>
<strong><span style="font-family:"Calibri",sans-serif">To:</span></strong> <a href="mailto:openjfx-dev@openjdk.org">
openjfx-dev@openjdk.org</a><br>
<strong><span style="font-family:"Calibri",sans-serif">Subject:</span></strong> JavaFX Direct3D 12 - Call for performance testing help<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Hello openjfx-dev,<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Because Windows is very open hardware-wise, it is difficult to prepare the backend for all possible hardware combinations available, especially from performance perspective. To
make sure JavaFX performance does not degrade compared to old D3D backend we would like to call for volunteers to help performance-test the backend. These tests will let us get a general idea on how the backend behaves on different hardware and which areas
of the backend to focus on while moving forward with optimization effort for Direct3D 12.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">At this point we tested the backend quite extensively on Intel-based integrated GPUs and did some testing on a machine running a recent discrete Nvidia GPU. We are primarily looking
for testing Direct3D 12 backend <strong><span style="font-family:"Calibri",sans-serif">on a system running an AMD discrete GPU</span></strong>, but any hardware combinations are welcome - the more the merrier :). Also note that these tests
<strong><span style="font-family:"Calibri",sans-serif">require a Windows machine</span></strong>, as D3D12 backend is Windows-only.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">We run performance testing using RenderPerfTest JavaFX app located in the JavaFX repository under "tests/performance/animation/RenderPerfTest". I wrote a bash script to use with
this app for performance-testing the backend. The script will run all available demos on RenderPerfTest with a set amount of objects per test, average the FPS results from each run and output the results into a CSV file.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><strong><u><span style="font-family:"Calibri",sans-serif">How to run perf tests:</span></u></strong><o:p></o:p></p>
<ol start="1" type="1">
<li class="MsoListParagraph" style="mso-list:l2 level1 lfo4">Download the test script -
<a href="https://urldefense.com/v3/__https:/gist.github.com/lukostyra/bc354a5fd845b82805ffb3380caebe9a__;!!ACWV5N9M2RV99hQ!OPDGeZcoI8FCHDUo-VSzEu04GgAdiAsA-L-P3Yr0BQi7U99rj3vcn1EXCwJXdQEoJFydRrZ9aVcJ78LmN-QEXWQp$" target="_blank">
https://gist.github.com/lukostyra/bc354a5fd845b82805ffb3380caebe9a</a><o:p></o:p></li><li class="MsoListParagraph" style="mso-list:l2 level1 lfo4">Get JavaFX Direct3D 12 build - either download the EA2 SDK from [
<a href="https://urldefense.com/v3/__https:/jdk.java.net/javafxdirect3d12/__;!!ACWV5N9M2RV99hQ!OPDGeZcoI8FCHDUo-VSzEu04GgAdiAsA-L-P3Yr0BQi7U99rj3vcn1EXCwJXdQEoJFydRrZ9aVcJ78LmNxHJSc0g$" target="_blank">
https://jdk.java.net/javafxdirect3d12/</a> ] or build it from scratch from direct3d12 [
<a href="https://urldefense.com/v3/__https:/github.com/openjdk/jfx-sandbox/tree/direct3d12__;!!ACWV5N9M2RV99hQ!OPDGeZcoI8FCHDUo-VSzEu04GgAdiAsA-L-P3Yr0BQi7U99rj3vcn1EXCwJXdQEoJFydRrZ9aVcJ78LmN8EQENBY$" target="_blank">
https://github.com/openjdk/jfx-sandbox/tree/direct3d12</a> ] branch (make sure to
<strong><span style="font-family:"Calibri",sans-serif">build with -PCONF=Release</span></strong>; at the time of writing this email there is no functional difference between the sandbox repo and the EA2 build).<o:p></o:p></li><li class="MsoListParagraph" style="mso-list:l2 level1 lfo4">Put the script in the same directory as
<strong><span style="font-family:"Calibri",sans-serif">renderperf/RenderPerfTest.java</span></strong> - I usually copy the contents of tests/performance/animation/RenderPerfTest/src into a separate directory where the script is located. The script will look
in the current directory specifically for "<strong><span style="font-family:"Calibri",sans-serif">renderperf</span></strong>" directory containing a "<strong><span style="font-family:"Calibri",sans-serif">RenderPerfTest.java</span></strong>" source file.<o:p></o:p></li><li class="MsoListParagraph" style="mso-list:l2 level1 lfo4">Ensure nothing else is running on your system.<o:p></o:p></li><li class="MsoListParagraph" style="mso-list:l2 level1 lfo4">Perform a baseline test run with D3D backend:<br>
<strong><span style="font-family:"Calibri",sans-serif">./run_renderperf_all.sh -j <path_to_jfx_sdk> -b d3d -r 3</span></strong><b><br>
</b>When the script is done, this should result in "<strong><span style="font-family:"Calibri",sans-serif">RenderPerf_results_d3d-<date>-<time>.csv</span></strong>" file. This will let us establish how your machine performs on RenderPerf’s test cases on the
old D3D backend.<o:p></o:p></li><li class="MsoListParagraph" style="mso-list:l2 level1 lfo4">Perform a perf test run for D3D12 backend:<br>
<strong><span style="font-family:"Calibri",sans-serif">./run_renderperf_all.sh -j <path_to_jfx_sdk> -b d3d12 -r 3</span></strong><b><br>
</b>This should result in "<strong><span style="font-family:"Calibri",sans-serif">RenderPerf_results_d3d12-<date>-<time>.csv</span></strong>" file. The results will be used as a comparison to D3D backend.<o:p></o:p></li></ol>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Once you are done, reply to this email thread with details what hardware you ran the tests on and with contents of both CSV files specifying which came from which test run - I’m
pretty sure <strong><span style="font-family:"Calibri",sans-serif">attachments will be stripped when sending an email to the mailing list</span></strong>, so to make sure the results get to us you should paste them inline. Also, include the console output
of running any JavaFX app on D3D12 backend with "-Dprism.verbose=true".<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Note that these tests will run for quite a bit of time. Each test case's single run will take 15 seconds - 5 seconds of warm-up and 10 seconds of actual test run where FPS is measured.
Testing every single case, 3 runs each, for a single backend takes approximately 40 minutes - ensure your computer won't lock or turn off the screens during that process.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><strong><u><span style="font-family:"Calibri",sans-serif">Test script reference:</span></u></strong><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">
<strong><span style="font-family:"Calibri",sans-serif">./run_renderperf_all.sh -j/--jfx <path_to_jfx_sdk> [-b/--backend <backend>] [-r/--runs <runs>]</span></strong><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Where:<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">
<strong><span style="font-family:"Calibri",sans-serif">-j, --jfx </span></strong> - required; path to directory where JavaFX SDK is located (has to be where JavaFX bin and lib folders are located)<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">
<strong><span style="font-family:"Calibri",sans-serif">-b, --backend</span></strong> - optional, defaults to "d3d12"; short-hand for which Prism backend to use. Whatever is set here will be forwarded to "-Dprism.order" property.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">
<strong><span style="font-family:"Calibri",sans-serif">-r, --runs</span></strong> - optional, defaults to 3; how many times each test case should run. Script will average FPS results from these runs.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Notes:<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> * Closing currently running test during the warm-up stage (first 5 seconds since starting the execution of the test case) should stop the test script early.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> * Script starts by declaring an array of test cases and object counts to run. We recommend leaving those as they are, however if there are tests which do not load because of a
"Timeout" message (the script will then exit early) or perform significantly worse on D3D backend (below 20 FPS) you can lower the object count and retry.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Let me know if you have any problems with running the tests. And, in advance, thanks for your help!<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Regards,<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Lukasz<o:p></o:p></p>
</div>
</div>
</div>
</body>
</html>