GPU not maxed with rendering

Please note: Should you experience issues with Enscape or your subscription, and in case of any urgent inquiries/questions (e.g. regarding our upcoming licensing changes) please reach out to our dedicated support team via the Help Center or Support button as detailed here.
  • Hey guys, I was checking out some stuff of my system and found out that my GPU isnt even been maxed out at all.

    I have a 2070 super and was rendering a slightly heavy file and an small one. But during previewing the bigger file, my gpu usage went up to 50 / 75% while losing quite some fps on a large screen. With the smaller file, the gpu also went up around 50/75% activity during previewing, and fell down around 15% with rendering. Just as it did with the bigger file. Rendering 30fps ultra on 4k. No upsampling/no auto resolution/RTX raytracing on.

    This wasn't the case in the past (2.7, where I made some RTX performance tests, and posted them here, against my former 1660 super card)

    I have the latest game ready drivers installed, in case you are wondering.

    Why isn't the gpu around 80 to 100% active while previewing and/or rendering?

    • Official Post

    Are you sure you're testing the exact same scene with the exact same settings?

    What I can confirm is that with RTX enabled you won't get close to 100% load - that's simply due to the way RTX raytracing with Vulkan is currently integrated into the Enscape OpenGL renderer. As a simplification you could say that the GPU has to wait a small amount of time everytime when we switch from OpenGL to Vulkan for raytracing and then back to OpenGL - this synchronization also affects scheduling and therefore it's difficult to get close to 100% efficiency. That doesn't necessarily mean that the performance is worse though - when the raytracing tasks finish much faster than the synchronization overhead it's still a net win, also RTX allows much more geometry to be traced.

    Another thing to consider, what kind of scene are you testing on? In the above screenshot it looks like there's mostly sky visible. That won't keep the GPU busy enough. For capturings there's added overhead due to GPU - CPU synchronization, so the GPU load will usually be lower than during walkthroughs (with Restmode disabled). We have in fact added some more synchronization for capturing to reduce driver time outs when rendering very high resolution images, this could affect GPU load, but won't be really noticeable when it comes to rendering times.

    With a medium sized scene I can easily get a Quadro RTX 5000 to 99% GPU load on 1080p. With RTX enabled load is considerably lower.

    We're currently busy on reducing the added Vulkan interop overhead, so in future versions the efficiency with RTX enabled will definitely improve.

    Hope that clears up some of it ;)

  • Hey Clemens Musterle , thank you for your response.

    I understand that with a really light file, from the screenshot in my previous post, it wouldn't need much GPU power to render it. But the point I tried to make there, is that this is the same 'load' on my GPU as it is with a heavy file with millions of polygons. While previewing it goes around 50/65% but with rendering only around 10%, on 1080 or 4k resolution.

    So I did some extra testing, like I did in previous times, comparing non-rtx vs RTX enabled on a new project im working on. And this gave me strange results.

    I tested on 1080p / 30fps / ultra, a few times.

    With RTX, my cpu is chilling and gpu is around 10% load. When I start the process, it takes about 20 seconds from getting from black to the first good rendered frame and then it goes on, which takes 55 seconds in total to render a short clip from a few seconds.

    I turned off RTX, restarted enscape ofcourse, saw that my gpu went to around 100% during previewing and rendered the exact same clip with the same settings. It only took 5 seconds to get to the first good rendered frames and took a total 33 seconds to render the total clip.

    Redoing everything got the same results. This is totally in constrast to what I measured in the past.

    An extra test while trying to render on 4k, same results, rendering (RTX on, only around 5 to 10% gpu load)

    EDIT: I have just ordered an RTX 3080, so I hope there is use for the extra RT/tensor cores and such, and not that the 2070super would already be sufficient on it's own.

  • Is there a blog post that explains in detail how Enscape works during render time? I'm interested to better understand the process during render time with OpenGL to Vulkan and back? Understanding this more in detail may improve workflows and project file setup.

  • Extra test:

    I just rendered a scene where it takes about 3 minutes with RTX on (gpu on 5 to 10%) and about 1 minute with RTX off (80/90% gpu)

    Edit: The problem is, the RTX version has way better reflections in the water, I will upload the difference in a moment. (I do know the sun is a bit higher at the rtx off one, but this shouldn't affect the reflections in the water.)

    • Official Post

    When rendering a video there are more things that come into play here ;) For the ray tracing to work we have to do some geometry preparation work that is also done on a separate CPU thread. Since with RTX we consider a lot more geometry this means that these preparation steps take more time and this depends heavily on the scene geometry as well. For videos we have to update these acceleration structures every few frames so that you have smooth transitions when geometry is added/removed from the ray tracing acceleration structure - for image renderings this is done once at the start.

    So in that case it's absolutely possible that rendering speed is actually limited by these preparation steps and not GPU rendering speed. To do a more "fair" comparison of GPU utilization you should probably do an image rendering, but wait until you can actually see an image (which means the preprocessing should be done).

    What makes these kinds of timing comparisons even more difficult is, that some of the geometry preprocessing is happening continuously in the background (for quicker updates during walkthrough) - so depending on how long Enscape has been started in a particular scene more or less geometry might already be preprocessed and thus affecting the total time that the video/image rendering takes ;)

  • Thank you Clemens Musterle , for your answer and insight.

    Final questions: So my 8/16 cpu is also just chilling, is there any way to enhance this processing time? Because it is somewhat sad to see all the cpu and gpu power only being used for about 5 to 10%, during rendering. Or is this something I should just accept, because of all these hidden unmeasurable processes, and cannot be changed for now?

    And to close it off, would a RTX 3080 (which I hope to get in the coming 2 weeks) still matter alot then?

    • Official Post

    As previously mentioned this preprocessing time also depends on how long Enscape has been running - we're actually utilizing multiple cores for these steps, so CPU utilization after starting Enscape should usually be higher.

    Once a rendering is triggered, this is reduced to the models that need preparing for the next frame - if everything was already processed in the background previously this shouldn't take too long. Utilization might not always be optimal though, as different models might have significantly different preparationt time, based on their topology.

    I get the sentiment of not making full use of the available hardware power, but overall in my experience Enscape does scale quite well with the available hardware, especially GPU. So especially your walkthrough framerate should increase very notably with a RTX3080, but also rendering times in general, eventhough in total probably not in the same relation due to the constraints mentioned.