Performance Overview

Hi Peter,

I have some good news about the investigation! Profiling your project helped us to identify an issue in legacy graphics jobs, as used in the project. The default sync point between the render jobs and main thread had been mistakenly changed to the End Of Frame, causing the main thread to wait for it instead of allowing the rendering to overlap. We have a fix prepared that is being tested for release, but we would really appreciate if you could test this on your hardware, as the issue was highly dependent on hardware configuration and scene complexity. In 2019.1.0a6 onwards, you can mimic the behaviour of the fix by running your test .exe with the command line option “-gfx-jobs-sync=after-script-update” to change the graphics jobs sync point, or by adding this line to the boot.config file. Please let us know if you see an improvement so we know whether this fix resolves it for you.

Your performance tests also highlighted a Job Queue optimization that was able to give us a small performance gain on our hardware. This will also be available in a future release.

Our Sustained Engineering team will be taking on the project to use to compare against future releases, as although we have tests in the areas identified, this covers a new configuration. They will especially be looking at the UI, as it was identified as a large part of the regression. However as discussed in a previous thread ( (Case 1081996) UI Performance Regression ) a lot of this is due to sync fences which are important for multithreaded data synchronization.

Running your performance tests also helped identify a profiler bug when using BeginSample with an object, causing some user markers to be missing. A fix for this is also being currently tested, and you can track this case here.

Thanks again for taking the time to send us your feedback and your project. It has been really useful, and I hope that you will see visible performance improvements made as a result :slight_smile:

19 Likes