Poor performance with Eevee (system freeze on high res) [solved]


Eevee renderer seems to use my monitor graphic card to render the scene. I have a secondary graphic card, specifically for rendering, but I don’t see any settings to make it use that (like I can set for Cycles: Preferences -> System -> Cycles Render Devices)

The problem arises with very high-res picture sizes (about 40+ megapixel). Eevee simply freezes my whole system. Sometimes it finishes, sometimes I get bored after 5min waiting and hard reset the comp. It is a VRAM issue?

Monitor card: GTX 1050 Ti, with 4gig of vram
Rendering card: GTX 1070, with 8 gigs
Blender 2.82 on Linux

What are my options?

With Eevee (OpenGL) the higher the resolution, the higher vRAM required. So that is probably the problem. Try using 8GB vRAM card to handle the display. You can monitor vRAM with this:
watch -n 0.5 nvidia-smi

Or you ask in the nvidia Linux forum about how to launch an app so that the second nvidia card is in charge of handle OpenGL in the app:

1 Like

I’m not sure how fine-grained you can get when it comes to which graphics card is allowed to do what, but it is generally a bad idea to pair a stronger card with a weaker one as the latter will often get in the way as a handicap. I don’t think the Blender devs. had this type of setup in mind when coding Eevee.

@YAFU, thanks for the swift reply, much appreciated. Yes, it looks like a VRAM issue. I’ll look into that possibility of running Blender on the secondary card.

@Ace_Dragon, I’ve had such a setup for CUDA rendering (Octane/Cycles) for years. I never had a reason to have a strong GPU to run the monitor, as the 1070 was doing all the rendering.

Eevee seems pretty neat for projects that don’t require a heavyweight renderer like Octane (and hours of render time that come with it). I only now bumped into this problem, because I haven’t done much serious stuff with Eevee yet.

It happens that when you render with CUDA with the same graphics card that you use with the Display, the system slows down completely and you cannot use the machine to do other jobs while rendering. So using a weaker graphics card as the main card can be useful in many cases. I suffered this problem for many years, and only since this last year with a new Prime feature in Linux that allows OpenGL render offload can I 100% enjoy my experience of having an Intel iGPU (HD 4000) and GTX card:

While iGPU is the main GPU where the display (two monitors actually) is connected I am able to launch Blender so that GTX card does the OpenGL render in Blender/Eevee. So heavy renderings in Eevee don’t hurt performance on other system tasks, and I can continue to work normally on PC. The same if you render in CUDA with GTX card, it does not slow down/hang the system.
Another advantage of this in fact is that system and other applications do not use vRAM from the card you use for render.


Thanks again @YAFU for additional info.

That procedure seems a bit too daunting. :smile: For now
For the current project I can compromise on resolution / work around the limitation by zooming closer and composite partial renders in GIMP. I’m still testing what can be done with Eevee. Looks quite promising though.