New Eevee Rendering Volumetrics much Slower than Legacy #125364

Open
opened 2024-07-24 11:28:21 +02:00 by rohan stevenson · 14 comments

System Information
Operating system: Linux-6.5.0-44-generic-x86_64-with-glibc2.35 64 Bits, X11 UI
Graphics card: NVIDIA GeForce RTX 4070 Ti/PCIe/SSE2 NVIDIA Corporation 4.6.0 NVIDIA 535.183.01

Blender Version
Broken: version: 4.2.0, branch: blender-v4.2-release, commit date: 2024-07-16 06:20, hash: a51f293548ad
Worked: (newest version of Blender that worked as expected)

Short description of error
New Eevee is rendering volumetrics between 15 and 20 times slower than previous versions

Exact steps for others to reproduce the error

  • Open a file with well a developed scene, lots of objects and textures - moderate, not super heavy but a generous large scale scene.
  • Add a volumetric cube with a texture and a size of about 400-600m x/y and maybe half to a third on the z axis.
  • Make a linked copy of the scene and turn everything to hold out in the outliner EXCEPT the volume cube.

In 4.2, Eevee was rendering 1 frame in nearly 40 minutes on the above machine. In 4.1 on a machine less than half as powerful (8-core RTX 2070) it rendered 1 frame in about 1:30. On yet another (8-core RTX 3070) it rendered in about 1:10. I didn't try on this machine in 4.1 but I am guessing it will render a frame in around 50 seconds.

I also tried 4.2 on the smaller computers because they both run Windows, and they also took an infeasibly long time.

On 4.2 it seems that even though objects are held out all the textures are being loaded and then some. I have 64 Gbs of RAM on this computer and 64 Gb swap file and it maxed both. I have 128 Gbs on one of the smaller computer and it made no difference. By contrast, 4.1 Eevee while rendering only loaded 10 Gbs into RAM. I was also able to render the same scene on a 4-core computer with just 16 Gb of RAM with GTX 1080 Ti.

I tried both Ray-Tracing and non-Ray-Tracing mode and it made no difference.

Initially, I was hoping to do the whole scene with Eevee but it quickly started to bog down and it would not reliably render, so I switched back to Cycles and Eevee hybrid method. But even with everything except the volume held out in Eevee it could not handle it in 4.2.

**System Information** Operating system: Linux-6.5.0-44-generic-x86_64-with-glibc2.35 64 Bits, X11 UI Graphics card: NVIDIA GeForce RTX 4070 Ti/PCIe/SSE2 NVIDIA Corporation 4.6.0 NVIDIA 535.183.01 **Blender Version** Broken: version: 4.2.0, branch: blender-v4.2-release, commit date: 2024-07-16 06:20, hash: `a51f293548ad` Worked: (newest version of Blender that worked as expected) **Short description of error** New Eevee is rendering volumetrics between 15 and 20 times slower than previous versions **Exact steps for others to reproduce the error** - Open a file with well a developed scene, lots of objects and textures - moderate, not super heavy but a generous large scale scene. - Add a volumetric cube with a texture and a size of about 400-600m x/y and maybe half to a third on the z axis. - Make a linked copy of the scene and turn everything to hold out in the outliner EXCEPT the volume cube. In 4.2, Eevee was rendering 1 frame in nearly 40 minutes on the above machine. In 4.1 on a machine less than half as powerful (8-core RTX 2070) it rendered 1 frame in about 1:30. On yet another (8-core RTX 3070) it rendered in about 1:10. I didn't try on this machine in 4.1 but I am guessing it will render a frame in around 50 seconds. I also tried 4.2 on the smaller computers because they both run Windows, and they also took an infeasibly long time. On 4.2 it seems that even though objects are held out all the textures are being loaded and then some. I have 64 Gbs of RAM on this computer and 64 Gb swap file and it maxed both. I have 128 Gbs on one of the smaller computer and it made no difference. By contrast, 4.1 Eevee while rendering only loaded 10 Gbs into RAM. I was also able to render the same scene on a 4-core computer with just 16 Gb of RAM with GTX 1080 Ti. I tried both Ray-Tracing and non-Ray-Tracing mode and it made no difference. Initially, I was hoping to do the whole scene with Eevee but it quickly started to bog down and it would not reliably render, so I switched back to Cycles and Eevee hybrid method. But even with everything except the volume held out in Eevee it could not handle it in 4.2.
rohan stevenson added the
Type
Report
Severity
Normal
Status
Needs Triage
labels 2024-07-24 11:28:22 +02:00
Member

Hi, thanks for the report. Can you attach the simplified .blend file for comparison? Performance impact is likely expected due to ray tracing and a few newer features but there would be a way to improve the performance after few tweaks in render properties.

Hi, thanks for the report. Can you attach the simplified .blend file for comparison? Performance impact is likely expected due to ray tracing and a few newer features but there would be a way to improve the performance after few tweaks in render properties.
Pratik Borhade added
Status
Needs Information from User
and removed
Status
Needs Triage
labels 2024-07-31 11:23:55 +02:00

Hi, thanks for the report. Can you attach the simplified .blend file for comparison? Performance impact is likely expected due to ray tracing and a few newer features but there would be a way to improve the performance after few tweaks in render properties.

I thought you might ask for this. The .blend files I am working with are too large to send to you but I will if you insist.

I am finding the problem consistent though so if I get time later today I will try with a simplified file with the volume cube.

It does NOT seem to be related to ray-tracing. I thought that as well, but turning it off makes no difference.

Could I suggest simply opening any medium size project (enough geometry and textures) and then putting a volume cube of around 300 metres square and 50-100 metres high? Create a misty foggy ambience. That would be faster and easier than my sending a project. If you can't seem to replicate my problems then I'll send a project.

My final thoughts: I have always found Eevee to use an extraordinary amount of memory even when only rendering volumes with the main scene held out (no textures). I have gotten around this with very large swap files and a smaller machine with 128Gbs of RAM. Eevee often loads anything up to and over 10 times the actual file size. But Eevee-Next is next level. Even with a small scene with a rowing boat, a ship and an ocean its using something like 96 Gb of memory. Crazy.

> Hi, thanks for the report. Can you attach the simplified .blend file for comparison? Performance impact is likely expected due to ray tracing and a few newer features but there would be a way to improve the performance after few tweaks in render properties. I thought you might ask for this. The .blend files I am working with are too large to send to you but I will if you insist. I am finding the problem consistent though so if I get time later today I will try with a simplified file with the volume cube. It does NOT seem to be related to ray-tracing. I thought that as well, but turning it off makes no difference. Could I suggest simply opening any medium size project (enough geometry and textures) and then putting a volume cube of around 300 metres square and 50-100 metres high? Create a misty foggy ambience. That would be faster and easier than my sending a project. If you can't seem to replicate my problems then I'll send a project. My final thoughts: I have always found Eevee to use an extraordinary amount of memory even when only rendering volumes with the main scene held out (no textures). I have gotten around this with very large swap files and a smaller machine with 128Gbs of RAM. Eevee often loads anything up to and over 10 times the actual file size. But Eevee-Next is next level. Even with a small scene with a rowing boat, a ship and an ocean its using something like 96 Gb of memory. Crazy.
Pratik Borhade added
Status
Needs Triage
and removed
Status
Needs Information from User
labels 2024-08-09 12:01:48 +02:00
Bart van der Braak added
Type
Bug
and removed
Type
Report
labels 2024-08-14 12:55:03 +02:00
Member

Hi, a simple .blend would still help to speed up the investigation. Not much can be done without a reference file in which the performance difference can be observed.

Hi, a simple .blend would still help to speed up the investigation. Not much can be done without a reference file in which the performance difference can be observed.
Pratik Borhade added
Status
Needs Information from User
and removed
Status
Needs Triage
labels 2024-09-11 09:03:06 +02:00
Member

Also check recent 4.2.1/4.3 build: https://builder.blender.org/download/daily/

Also check recent 4.2.1/4.3 build: https://builder.blender.org/download/daily/
Member
@rohan.stevenson ^

Hi, I have recently come back to this problem. I have the new LTS 4.2.3 and Eevee is still problematic. I have a large scene I am rendering in Cycles, and holding all but the volume to render volumetrics in Eevee. Here is Eevee loading its shaders on its way to crashing:

image

Here is the scene which worked perfectly in 4.1.1:

image

Obviously I can't send you the file - it's just way too big. The scene statistics are < 9 million verts, 12.7 million faces, 17.9 tris. Memory is 14.5 Gbs and VRAM is 8/12 Gbs.

So I don't how better to help you lock this down, but to recreate I would think these steps:

  • Open a large scene similar in size to mine
  • Hold out objects except a volume cube
  • Switch to Eevee

Repeat process (or simply open the file). 4.1.1 and compare memory usage etc.

In my case, 4.2.3 Eevee crashes altogether, but in the past it just chokes the system but does actually open, probably because the scenes I was using were smaller. If the problem is as result of memory handling on larger scenes, then sending a "simple" blend file won't show anything. The current file is around 900 mbs and I am willing to share it to show the problem, but I don't know for example, it I would be required to send the textures as well in order to trigger problems. That would means sending a many multiple Gb file. Let me know how you would like me to proceed in order to help you figure out what the issue is.

Hi, I have recently come back to this problem. I have the new LTS 4.2.3 and Eevee is still problematic. I have a large scene I am rendering in Cycles, and holding all but the volume to render volumetrics in Eevee. Here is Eevee loading its shaders on its way to crashing: ![image](/attachments/fed1cdfa-c21a-4712-9894-e5ab52956b0f) Here is the scene which worked perfectly in 4.1.1: ![image](/attachments/0de207d0-7996-43b8-ab04-20ab036246d5) Obviously I can't send you the file - it's just way too big. The scene statistics are < 9 million verts, 12.7 million faces, 17.9 tris. Memory is 14.5 Gbs and VRAM is 8/12 Gbs. So I don't how better to help you lock this down, but to recreate I would think these steps: - Open a large scene similar in size to mine - Hold out objects except a volume cube - Switch to Eevee Repeat process (or simply open the file). 4.1.1 and compare memory usage etc. In my case, 4.2.3 Eevee crashes altogether, but in the past it just chokes the system but does actually open, probably because the scenes I was using were smaller. If the problem is as result of memory handling on larger scenes, then sending a "simple" blend file won't show anything. The current file is around 900 mbs and I am willing to share it to show the problem, but I don't know for example, it I would be required to send the textures as well in order to trigger problems. That would means sending a many multiple Gb file. Let me know how you would like me to proceed in order to help you figure out what the issue is.
187 KiB
1.1 MiB

So here's my problem:
I have a rather heavy scene I am trying to render. I have:

  • the principle foreground characters, 2 robots who are flying a trapeze, on their own viewer layer,
  • and the background which is a hall with an audience.
  • I have a separate linked scene for the volumetrics (the beams of light from spot lights) to be done in Eevee.

The camera is parented to the swinging robot in order to see their face with the background swooshing around.

I rendered the Robots and the Hall in 4.2.3, and on another machine opened the file in 4.1.1 to do the volumetrics. However, the problem is there is some weird bug with the animation and the complex interaction of parents, IK contraints, and damped tracks etc that means that the images from the volume render in 4.1.1 and the robots and hall do not match up.

The animation is resolving differently in one blender version to the next. I just tried (again) rendering one frame in 4.2.3 in Linux and Blender was just choking up the system with memory before I cancelled it. Eevee 4.1.1 uses only a tiny bit and renders in no time on a much weaker system. Because the camera is parented to the robot which is resolving buggily, it doesn't render the same in both versions of blender.

So I am a bit stuffed here unless I re-rendered the robots and the main hall in 4.1.1.

I am trying to render the volume scene in 4.2.3 on a Windows machine which has 128 Gb of RAM so it is taking a long time to fill that memory up before it will inevitably crash. I am not doing anything particularly special - it's just a heavy scene. Am I really the only one who has discovered EeveeNext doesn't handle big scenes at all?

So here's my problem: I have a rather heavy scene I am trying to render. I have: - the principle foreground characters, 2 robots who are flying a trapeze, on their own viewer layer, - and the background which is a hall with an audience. - I have a separate **linked** scene for the volumetrics (the beams of light from spot lights) to be done in Eevee. The camera is parented to the swinging robot in order to see their face with the background swooshing around. I rendered the Robots and the Hall in 4.2.3, and on another machine opened the file in 4.1.1 to do the volumetrics. However, the problem is there is some weird bug with the animation and the complex interaction of parents, IK contraints, and damped tracks etc that means that the images from the volume render in 4.1.1 and the robots and hall do not match up. The animation is resolving differently in one blender version to the next. I just tried (again) rendering one frame in 4.2.3 in Linux and Blender was just choking up the system with memory before I cancelled it. Eevee 4.1.1 uses only a tiny bit and renders in no time on a much weaker system. Because the camera is parented to the robot which is resolving buggily, it doesn't render the same in both versions of blender. So I am a bit stuffed here unless I re-rendered the robots and the main hall in 4.1.1. I am trying to render the volume scene in 4.2.3 on a Windows machine which has 128 Gb of RAM so it is taking a long time to fill that memory up before it will inevitably crash. I am not doing anything particularly special - it's just a heavy scene. Am I really the only one who has discovered EeveeNext doesn't handle big scenes at all?

Screenshot 2024-10-30 at 14.47.12

Here is Blender on the Windows computer on its way to sucking up all of the 128Gb of RAM trying to render one image with no textures - just the volumetrics.

![Screenshot 2024-10-30 at 14.47.12](/attachments/80b7b5aa-f9d9-458e-9296-8be3aa6d6f1d) Here is Blender on the Windows computer on its way to sucking up all of the 128Gb of RAM trying to render one image with no textures - just the volumetrics.
Member

In my case, 4.2.3 Eevee crashes altogether,

Could you send crash logs?

The current file is around 900 mbs and I am willing to share it to show the problem, but I don't know for example, it I would be required to send the textures as well in order to trigger problems... Here is Blender on the Windows computer on its way to sucking up all of the 128Gb of RAM trying to render one image with no textures - just the volumetrics.

Without textures, given that issue is visible just with volumetrics.

@fclem hi, I don't see such issue reported before on eevee-next. Any idea?

> In my case, 4.2.3 Eevee crashes altogether, Could you send crash logs? > The current file is around 900 mbs and I am willing to share it to show the problem, but I don't know for example, it I would be required to send the textures as well in order to trigger problems... Here is Blender on the Windows computer on its way to sucking up all of the 128Gb of RAM trying to render one image with no textures - just the volumetrics. Without textures, given that issue is visible just with volumetrics. @fclem hi, I don't see such issue reported before on eevee-next. Any idea?

Interesting.

  • Do you see this memory "leak" pattern in lower complexity scene?
  • If you reduce the volume resolution setting does the issue disappear or is it just mitigated?
  • If you disable the volumes, does the issue disappear?
  • Does it happens only with object volumes or is it also happening with world volume?
Interesting. - Do you see this memory "leak" pattern in lower complexity scene? - If you reduce the volume resolution setting does the issue disappear or is it just mitigated? - If you disable the volumes, does the issue disappear? - Does it happens only with object volumes or is it also happening with world volume?

All excellent questions.

As I write this I have started the process with the latest blender project. It does take a while for the memory to fill up and then crash and as things get close to maxing out the memory, the system chokes up. As a result I have been cancelling the blender app in system monitor. So now I'll let blender crash and hopefully generate a crash log.

So, I let it run and it crashed the system completely and did not create a crash log.

Do you see this memory "leak" pattern in lower complexity scene?

No. When 4.2 came out I started a completely fresh project and as I built the scene up the problem became apparent.

f you reduce the volume resolution setting does the issue disappear or is it just mitigated?

No. Setting it to the lowest resolution, ray tracing on or off results in the same behaviour.

If you disable the volumes, does the issue disappear?

No. The scene I am testing on now (and which works very well in 4.1 on a much weaker computer) is still behaving in the same way. I have to cancel blender otherwise it will crash the system completely. In fact, I just had to hard restart and repair file systems on my drives.

I've just tested the scene on this computer in 4.1 and it works fine. It's using 4.6 Gb of VRAM and around 20 Gb of RAM. That's with the volume on.

Does it happens only with object volumes or is it also happening with world volume?

I have been using object volume rather than world volume. I have not tested with world volume. I don't think it is necessarily volume related.

Some information that might be relevant:

  • I use multiple scenes, and only rarely use multiple layers. That's because (without finegaling) you can set different render settings and file paths per scene. In the smaller scene below, there is only one scene.
  • Currently testing a much smaller scene with EEVEEnext (no volumes). It's using 12/12GB VRAM, 24 Gb of memory, but System Monitor reports 61.4Gb/67.4 Gb RAM being used. In 4.1 Eevee uses 11.9/12Gb VRAM, 51 Gb of computer RAM. It has dense animation, but Eevee navigates smoothly in rendered mode, EeveeNEXT does not. Also it take much longer load in render kernels and finally displayed viewport in rendered mode.
All excellent questions. As I write this I have started the process with the latest blender project. It does take a while for the memory to fill up and then crash and as things get close to maxing out the memory, the system chokes up. As a result I have been cancelling the blender app in system monitor. So now I'll let blender crash and hopefully generate a crash log. So, I let it run and it crashed the system completely and did not create a crash log. > Do you see this memory "leak" pattern in lower complexity scene? No. When 4.2 came out I started a completely fresh project and as I built the scene up the problem became apparent. > f you reduce the volume resolution setting does the issue disappear or is it just mitigated? No. Setting it to the lowest resolution, ray tracing on or off results in the same behaviour. > If you disable the volumes, does the issue disappear? No. The scene I am testing on now (and which works very well in 4.1 on a much weaker computer) is still behaving in the same way. I have to cancel blender otherwise it will crash the system completely. In fact, I just had to hard restart and repair file systems on my drives. I've just tested the scene on this computer in 4.1 and it works fine. It's using 4.6 Gb of VRAM and around 20 Gb of RAM. That's with the volume on. > Does it happens only with object volumes or is it also happening with world volume? I have been using object volume rather than world volume. I have not tested with world volume. I don't think it is necessarily volume related. Some information that might be relevant: - I use multiple scenes, and only rarely use multiple layers. That's because (without finegaling) you can set different render settings and file paths per scene. In the smaller scene below, there is only one scene. - Currently testing a much smaller scene with EEVEEnext (no volumes). It's using 12/12GB VRAM, 24 Gb of memory, but System Monitor reports 61.4Gb/67.4 Gb RAM being used. In 4.1 Eevee uses 11.9/12Gb VRAM, 51 Gb of computer RAM. It has dense animation, but Eevee navigates smoothly in rendered mode, EeveeNEXT does not. Also it take much longer load in render kernels and finally displayed viewport in rendered mode.

Is there a way to sample the process on linux like you can on a mac? Would that help? I could then start the issue off and sample the process and post it here.

Is there a way to sample the process on linux like you can on a mac? Would that help? I could then start the issue off and sample the process and post it here.

Hi - small update - just tested this in 4.3 release with the same problem. I can't recreate in a fresh project so I am going to need some advice as to how to pin it down.

At this stage it might be best to send the offending project - but its 2.3 Gb even when zipped. It causes the same issue on every system I have tested it on (3 altogether) Linux and Windows. Let me know.

Hi - small update - just tested this in 4.3 release with the same problem. I can't recreate in a fresh project so I am going to need some advice as to how to pin it down. At this stage it might be best to send the offending project - but its 2.3 Gb even when zipped. It causes the same issue on every system I have tested it on (3 altogether) Linux and Windows. Let me know.

@rohan.stevenson you can try to upload it to a file sharing website and send me the link in private message on chat.blender.org . I am fclem there.

@rohan.stevenson you can try to upload it to a file sharing website and send me the link in private message on chat.blender.org . I am `fclem` there.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset System
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Code Documentation
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Viewport & EEVEE
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Asset Browser Project
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Module
Viewport & EEVEE
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Severity
High
Severity
Low
Severity
Normal
Severity
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#125364
No description provided.