Page MenuHome

Performance degradation of Principled Shader in Eevee when metallic is turned off
Open, Waiting for Developer to ReproducePublic


System Information
Operating system: Darwin-18.6.0-x86_64-i386-64bit 64 Bits
Graphics card: AMD Radeon Pro 560X OpenGL Engine ATI Technologies Inc. 4.1 ATI-2.9.26

Blender Version
Broken: version: 2.80 (sub 74), branch: master, commit date: 2019-06-28 22:08, hash: rB648e8a1f1d4a
Worked: (optional)

Short description of error
In Eevee, when I turn metallic from 1.0 to 0.0 in principled shader, viewport becomes *extremely* sluggish.

Exact steps for others to reproduce the error
See the attached .blend file.

Follow these steps to observe the problems:

  1. Open the .blend file
  2. While in solid mode, rotate around the scene and notice great performance.
  3. The renderer should be set to Eevee but make sure that it is.
  4. Switch to rendered or lookdev mode (same problem will occur in both).
  5. Rotate around the scene and notice great performance.
  6. Make sure the object called "Knobs" (an array of knobs) selected and the shader editor shows the Knobs shader.
  7. In the Principled Shader, change Metallic from 1.0 to 0.0.
  8. Rotate around the scene and notice extremely sluggish performance. Not sure if this is something specific about my mesh or not.



Event Timeline

Sebastian Parborg (zeddb) lowered the priority of this task from Needs Triage by Developer to Needs Information from User.Jul 1 2019, 11:39 AM

I can not reproduce this on my end. Does this happen on windows too? (If you can check that is)

I do not see this problem on my Windows machine. Of course, my Windows box has got dual GTX 1080Ti's. I still experience it on my MacBook Pro, which is where this was first reported. I rebuilt Blender today and the problem persists. It may be something specific to this scene since I have not noticed this before. The Knobs object is a duplicate of a cutter object I used with the BoolTools plug-in. I made the knobs visible again (and turned back on various Cycles options that BoolTool disables). But maybe BoolTools sets some other option that makes the Knobs object weird.

Can't repro on windows either, try starting blender with the factory_startup batch files located in the same folder as blender.exe, perhaps it's an addon that is making life miserable for you.

I can observe a very small perf hit (3%) using an older nVidia Quadro 600 on Win10

Set the timeline in motion and observe the debug output for Eevee (Debug Menu -> value 21) instead of trying to rotate the viewport:

  • Knobs material set to metallic=1 I get total eevee render time of 9.65ms (lookdev display used)
  • Knobs material set to metallic=0 I get total eevee render time of 9.9ms (lookdev display used)

So ugh just about 3% (same percentage drop for rendered display too). I wonder if some lighting calculations can be skipped if you're fully metallic instead of a di-electric and this drop is somewhat expected? Or maybe it's the AMD card/drivers?

Some more info. After a reboot, I don't feel the sluggishness very much at all. However, after loading the scene multiple times (e.g. revert) it gets more and more sluggish with metallic set to 0. Even if I restart blender, it continues to become increasingly sluggish over time. Therefore, I am suspecting that somehow MacOS is experiencing some sort of resource leak related to the GPU. Rebooting appears to be the only things I can find (so far) that gets me back to good performance. I can now get this performance issue with a simple cube with the default shader (Principled BSDF) such that metallic 1 gives great performance and 0 gives horrible performance. Very weird. I'll try the suggestion with resetting to factory settings later today. I have been messing with BoolTool, HardOps, and BoxCutter. Never experienced this before.

Sebastian Parborg (zeddb) raised the priority of this task from Needs Information from User to Waiting for Developer to Reproduce.Jul 3 2019, 4:36 PM

@William Reynish (billreynish) can you reproduce this?

I have the exact same problem on my iMac Pro running Mojave. As soon as I adjust the metallic setting in my Principled BSDF element to anything other than 1, performance of the viewport goes from extremely fast to extremely sluggish (unusable).

When this happens, my CPU is pegged at 100% by the blender process. It does not seem to be using the GPU when metallic is set to any value other than 1. I can also confirm I can reproduce using the blender file Chuck attached when the bug was opened.

I tried rebooting like Chuck stated, but that makes no improvement, even temporary as it did for him. I've tried re-installing blender. I guess my point is that my blender install is going to be as bare bones as anyone given my lack of history with the program. I'm a complete noob and was going through my first online tutorial, when I discovered encountered this. So, for now, everything I do is metallic :-)

Here are the details on my system:

System Information
Operating system: Darwin-18.7.0-x86_64-i386-64bit 64 Bits
Graphics card: AMD Radeon Pro Vega 56 OpenGL Engine ATI Technologies Inc. 4.1 ATI-2.11.20

Blender Version
Broken: version: 2.80 (sub 75), branch: master, commit date: 2019-07-29 14:47, hash: rBf6cb5f54494e
Worked: (optional)

I'm more that happy to assist troubleshooting and running whatever tests necessary. I am on vacation for Monday - Wednesday of the upcoming week, so I will have time to do as much testing as you need to help diagnose further.

It is still a problem for me on 2.81.

I discovered something interesting that may or may not be helpful for those debugging this issue. Through a series of appending collections to another scene, I'm able to view Chuck's box without any performance issues. Here are the exact steps I performed:

  1. File -> New -> General
  2. Delete the cube
  3. File -> Append -> rocks_highRes.blend -> Collection -> ROCKS
  4. File -> Append -> CSGBox1.blend -> Collection -> Collection
  5. G to move the box above rocks
  6. Select Knobs from collection and switch to Shading workspace to confirm that metallic is set to 0.
  7. Move around viewport and performance is fast!!

rocks_highRes.blend is from a free online tutorial that I've been using to learn Blender. I've uploaded it so you can perform the exact same steps. Oddly, if I just try to append Chuck's box to an new scene, the performance is horrible, just like it is when I open his scene directly. However, if I first append that high res rock collection, then append Chuck's box, the performance issues disappear.

Chuck, can you confirm if this works for you too?