axel.goris Posted April 28, 2025 Posted April 28, 2025 (edited) Yo! I'm currently editing a virtual reality application with unigine 2.19.1 and it seems that our app is CPU Bound. I find this rather annoying considering I'm not running a single script and we're running on a core 7 ultra 265. After using the microprofile and trying multiple things, I have no idea what is the engine::swap doing and a quick search on the forum did not yield any successful result :( Can someone enlighten me? Thanks a lot! Axel Edited April 28, 2025 by axel.goris
silent Posted April 29, 2025 Posted April 29, 2025 Hi Axel, It's better to capture microprofile dumps from the standalone application (outside of the Editor) to get a more accurate performance picture. Running within the Editor may introduce additional overhead due to Qt integration, which can affect results. Also, keep in mind that performance can appear CPU-bound due to the fact that the scene is being rendered twice (though with some internal optimizations). VR runtimes often enforce their own VSync, which can make it seem like you're CPU-limited when looking at the engine profiler. For example, if your application is capable of running at 75–80 FPS, you might still see a flat 22ms frame time (rather than the actual 12–13ms) and 45 FPS in the HMD. This behavior is intentional, to reduce motion sickness by maintaining consistent frame pacing. Another challenge with the Varjo XR-4 is its extremely high resolution (nearly 8K per eye). This significantly impacts deferred rendering performance, as it requires transferring large G-buffer textures, potentially several gigabytes per frame. To improve performance in this area, we highly recommend enabling DLSS to reduce the rendering load. Our development team is actively working on rendering optimizations to better support high-resolution VR experiences with less performance overhead. This research is scheduled to continue throughout 2025, and we’re hopeful that some improvements will begin rolling out by the end of this year. Regarding your initial Microprofile capture from the Editor: it appears you're simply hitting the default 150 FPS limit. You can remove this cap by adjusting the setting in the Editor preferences or by entering the following console command: render_max_fps 0. Thanks! 1 How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN
axel.goris Posted April 29, 2025 Author Posted April 29, 2025 Hey Silent! I expected so ahah, thanks. Yep, I already activated DLSS! It sounds like your doing a good chunk of development, thanks a lot. A bit unrelated but I also activated the foveated rendering and the difference between where you look and the outside area is quite noticeable? As if it was changing LODs or something like that and you can see stuff appearing/disappearing at the edge of your FOV? Does it make sense?
silent Posted April 30, 2025 Posted April 30, 2025 Quote A bit unrelated but I also activated the foveated rendering and the difference between where you look and the outside area is quite noticeable? The visual difference you’re observing is likely due to the scattering haze not rendering correctly inside detailed viewport in version 2.19.1. This issue is known and should be resolved in 2.20. However, objects should not be disappearing in the outside areas. Could you please check if increasing the distance scale helps resolve the issue? Thanks! How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN
axel.goris Posted April 30, 2025 Author Posted April 30, 2025 Oh, awesome! I'll take a look once on 2.20 :) I'll try but our app runs smooth even without foveated rendering so it should be alright even if we don't use it! Thanks a lot for all the great and fast answers! 1
Recommended Posts