2
$\begingroup$

I'm currently following a texturing tutorial in which I end up making a big and complex node tree.

I just got a new GPU and Cycles is running like a charm with GPU acceleration. In Eevee there is a slight lag when I move in the viewport and change parameters in the nodes, but overall it's ok (I am a bit surprised however as I thought having a better GPU would make Eevee super smooth).

The issue takes place when I add a whole new node in the tree or remove one while in Eevee. The node editor then starts lagging a LOT to the point that I risk adding the node in the wrong place if I click too early. And the shader takes a full twenty seconds to compile (with the "shaders compilation" bar at the bottom staying at 0% for most of the time before it finally compiles).

It's my understanding that Eevee uses the GPU to render, but the CPU to compile the nodes. What's weird is that when I look at my CPU usage during that compilation time, Blender only uses around 30% CPU power, and never more than 50%. I don't understand why this is. If I limit Cycles to render with CPU only it does max it out, but Eevee seemingly never does.

I also don't understand why it makes the node editor laggy, as it's never laggy when I'm in Cycles and I would have thought the interface being laggy during compilation time would come from a GPU limitation, not a CPU one.

Any insight would be very appreciated.

$\endgroup$
4
  • $\begingroup$ What Blender vrsion are you using? - I believe that a lot of work is being done on speeding up Blender in the latest versions. $\endgroup$
    – John Eason
    Mar 21, 2022 at 10:47
  • $\begingroup$ @JohnEason Oh yeah sorry I forgot to mention in the body of the question. I'm using Blender 3.1.0, which I just downloaded a few days ago. $\endgroup$ Mar 21, 2022 at 11:05
  • $\begingroup$ I believe speed-up improvements are still in progress for 3.2 but whether that includes Eevee node compilation is anybody's guess. Nodes are still being updated though. It might be worth trying to submit a bug report via Help > report a bug. $\endgroup$
    – John Eason
    Mar 21, 2022 at 12:19
  • $\begingroup$ Your system is waiting on I/O, probably from main memory due to cache misses. $\endgroup$ Mar 21, 2022 at 13:32

1 Answer 1

2
$\begingroup$

Probably your system is stalling for I/O. The CPU can't work if it can't get data so it waits until data is loaded from memory. In this case it is probably not also waiting for data from secondary storage (hard drives and SSDs are secondary) because everything it needs is probably already in main memory. It might also be stalling because it is trying to use multiple processors but they have to spend time waiting for each other to finish bits of work.

If you want to know the nature of the stalls, you can use tools like opcm/pcm on Intel systems to read the hardware performance counters and see why the stalls are happening. Or you can use system tools, like perfmon on Windows, to get a coarser picture. But you have to know a bit about how hardware interlocks work to slow down computing to be able to interpret that data.

Developers will also use profiling tools to find out where in their code the performance bottlenecks are; but the Blender foundation only has 12 developers and they're all very busy and performance analysis is very hard.

$\endgroup$
0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .