I'm getting an error that "Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.40.33807/bin/Hostx64/x64/cl.exe" can't be found. Indeed, I have a newer version. Do I need to downgrade to that specific one?
On Fri, Nov 14, 2025 at 4:10 PM Lukasz Kostyra <[email protected]> wrote: > Hello all, > > > > 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): > https://github.com/openjdk/jfx-sandbox/tree/direct3d12/tests/performance/animation/RenderPerfTest/src/renderperf > > 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 :) > > > *New steps for running tests:* > > 1. 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 > 2. Get JavaFX Direct3D 12 build - either download the EA2 SDK from [ > https://jdk.java.net/javafxdirect3d12/ ] or build it from scratch from > direct3d12 [ https://github.com/openjdk/jfx-sandbox/tree/direct3d12 ] > branch (make sure to *build with -PCONF=Release*; at the time of > writing this email there is no functional difference between the sandbox > repo and the EA2 build). > 3. RenderPerf can be run with (underlined parts you need to fill in > yourself): > > *java --upgrade-module-path="<path_to_jfx_sdk>/lib" > > --add-modules=javafx.base,javafx.controls,javafx.graphics,jdk.jsobject,javafx.media > --enable-native-access=javafx.graphics -Dprism.order=<backend> > renderperf/RenderPerfTest.java --output-csv -r <runs> *Where: > * <path_to_jfx_sdk>* - path to directory where JavaFX SDK is > located (has to be where JavaFX bin and lib folders reside) > * <backend> *- short-hand for which Prism backend to use > *<runs>* - how many times each test case should run; RenderPerf will > average FPS results from these runs > > > > 4. Running RenderPerf like above will produce > *RenderPerf_results-<backend>-<date>-<time>.csv* in your current > directory. > > > > *Examples:* > > 1. For D3D baseline test, run: > *java --upgrade-module-path="<path_to_jfx_sdk>/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* > > 2. For D3D12 baseline test, run: > java --upgrade-module-path="*<path_to_jfx_sdk>*/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 > > > > *Notes:* > > * Closing the test on warm-up stage will stop the test run early > > * Similarly to the test script, RenderPerfTest defines default object > numbers at the beginning as *Map<String, Integer> defaultObjectCounts *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. > > > > Thanks once again for your help! > > -Lukasz > > > > *From:* openjfx-dev <[email protected]> *On Behalf Of *Lukasz > Kostyra > *Sent:* Thursday, 13 November 2025 15:50 > *To:* [email protected] > *Subject:* JavaFX Direct3D 12 - Call for performance testing help > > > > Hello openjfx-dev, > > > > 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. > > > > 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 *on **a > system running an AMD discrete GPU*, but any hardware combinations are > welcome - the more the merrier :). Also note that these tests *require a > Windows machine*, as D3D12 backend is Windows-only. > > > > 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. > > > > > > *How to run perf tests:* > > 1. Download the test script - > https://gist.github.com/lukostyra/bc354a5fd845b82805ffb3380caebe9a > 2. Get JavaFX Direct3D 12 build - either download the EA2 SDK from [ > https://jdk.java.net/javafxdirect3d12/ ] or build it from scratch from > direct3d12 [ https://github.com/openjdk/jfx-sandbox/tree/direct3d12 ] > branch (make sure to *build with -PCONF=Release*; at the time of > writing this email there is no functional difference between the sandbox > repo and the EA2 build). > 3. Put the script in the same directory as > *renderperf/RenderPerfTest.java* - 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 "*renderperf*" directory containing a " > *RenderPerfTest.java*" source file. > 4. Ensure nothing else is running on your system. > 5. Perform a baseline test run with D3D backend: > > *./run_renderperf_all.sh -j <path_to_jfx_sdk> -b d3d -r 3 *When the > script is done, this should result in " > *RenderPerf_results_d3d-<date>-<time>.csv*" file. This will let us > establish how your machine performs on RenderPerf’s test cases on the > old D3D backend. > 6. Perform a perf test run for D3D12 backend: > > *./run_renderperf_all.sh -j <path_to_jfx_sdk> -b d3d12 -r 3 *This should > result in "*RenderPerf_results_d3d12-<date>-<time>.csv*" file. The > results will be used as a comparison to D3D backend. > > > > 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 *attachments will be stripped > when sending an email to the mailing list*, 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". > > > > 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. > > > > > > *Test script reference:* > > *./run_renderperf_all.sh -j/--jfx **<path_to_jfx_sdk> [-b/--backend > <backend>] [-r/--runs <runs>]* > > > > Where: > > *-j, --jfx * - required; path to directory where JavaFX SDK is > located (has to be where JavaFX bin and lib folders are located) > > *-b, --backend* - optional, defaults to "d3d12"; short-hand for > which Prism backend to use. Whatever is set here will be forwarded to > "-Dprism.order" property. > > *-r, --runs* - optional, defaults to 3; how many times each test > case should run. Script will average FPS results from these runs. > > > > Notes: > > * 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. > > * 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. > > > > > > Let me know if you have any problems with running the tests. And, in > advance, thanks for your help! > > > > Regards, > > Lukasz >
