Eevee shader compilation stalls, freezes OS (Windows), forces to restart computer #65939

Closed
opened 2019-06-19 23:17:51 +02:00 by WenT · 6 comments

System Information:
Operating system: Windows 10 Home v1903 x64 (build 18362.175)
Graphics card: NVIDIA GeForce GT 630M (same error with integrated Intel HD Graphics 4000)

Blender Version:
Several versions since early June (have no information about previous releases), including last one: 2.80 Beta Windows 64 bit (June 19, 13:50:56 - 11c9702dd4)

Short description of error:
Shader compilation of the attached scene shaders fails after switching to Rendered view (or Render Image). It first slows down, then stalls, and ultimately freezes OS, forcing user to restart computer.

Exact steps for others to reproduce the error:
Switch to rendered view in the attached scene as it is (don't hide any items/collection, all are needed for the error to show up).
Note:
Each collection can be rendered independently. The error surfaces when all are rendered at the same time.

Due to licensing issues with the scene, I can only share it with members of the Eevee project or other developers. Leave a message here and I will send it through the specified method.

**System Information:** Operating system: Windows 10 Home v1903 x64 (build 18362.175) Graphics card: NVIDIA GeForce GT 630M (same error with integrated Intel HD Graphics 4000) **Blender Version:** Several versions since early June (have no information about previous releases), including last one: 2.80 Beta Windows 64 bit (June 19, 13:50:56 - 11c9702dd40f) **Short description of error:** Shader compilation of the attached scene shaders fails after switching to Rendered view (or Render Image). It first slows down, then stalls, and ultimately freezes OS, forcing user to restart computer. **Exact steps for others to reproduce the error:** Switch to rendered view in the attached scene as it is (don't hide any items/collection, all are needed for the error to show up). *Note:* Each collection can be rendered independently. The error surfaces when all are rendered at the same time. **Due to licensing issues with the scene, I can only share it with members of the Eevee project or other developers. Leave a message here and I will send it through the specified method.**
Author

Added subscriber: @Desierto

Added subscriber: @Desierto

Added subscriber: @brecht

Added subscriber: @brecht

We normally only debug files privately or look into full production files if there is no other solution.

Is it really not possible to simplify the file to the point that it can be shared, isolating just the problematic shader nodes?

We normally only debug files privately or look into full production files if there is no other solution. Is it really not possible to simplify the file to the point that it can be shared, isolating just the problematic shader nodes?
Author

Thanks for the response.

I could try simplifying it a bit, but as I mentioned, the bug is quite devastating and forces me to restart, so I can't iterate easily.

Also, the problem only surfaces when I try to render the whole scene. The scene itself is not that big, just a room and a character. I can render the room (with some hiccups), and character separately. I'm guessing it's some memory issue (computer has 8gb of RAM, GPU 2gb). I'm using default settings in Blender. Windows also generates massive memory dumps every time it happens.

In any case, I will try reducing the the size of it (right now it's around 300 mb with all assets packed) by removing some materials. But the licensing issues will still remain. Can't I just upload the file and only add members of the project in the visibility options? you could also tell me which other people to add.

Thanks for the response. I could try simplifying it a bit, but as I mentioned, the bug is quite devastating and forces me to restart, so I can't iterate easily. Also, the problem only surfaces when I try to render the whole scene. The scene itself is not that big, just a room and a character. I can render the room (with some hiccups), and character separately. I'm guessing it's some memory issue (computer has 8gb of RAM, GPU 2gb). I'm using default settings in Blender. Windows also generates massive memory dumps every time it happens. In any case, I will try reducing the the size of it (right now it's around 300 mb with all assets packed) by removing some materials. But the licensing issues will still remain. Can't I just upload the file and only add members of the project in the visibility options? you could also tell me which other people to add.
Author

Hello, in the end I was finally able to find the source of the problem. The scene had several 4k textures and after changing settings so the texture "Limit Size" was 1024 (instead of the default "no limit"), the shader compilation went smoother, the program didn't stall and it rendered the scene as expected. Also when working with that limit the program didn't have those big hiccups. I also changed Image Display Method to "2D Texture".

I also disabled the auto-save feature which I found to be quite demanding on resources, and also led to hiccups (even with small .blend files).

To sum up, I don't think I found bugs but optimizations issues (unless GLSL was also part of the problem).

I think the program should be a little more conservative resource-wise, and not take over all system resources like it currently does. A warning when texture sizes are too big would be welcomed. A global ram limit setting would also be a good addition. Furthermore, is there any reason why shader compilation is not cached long-term (and saved with the project)? something like what Unreal 4 does would be great. Also separating the shader compilation phase from rendering would be cleaner and easier on the system.

Nonetheless, an important remark should be made: when rendering the same scene in Cycles (with all 4k textures and "no limit") none of these problems surfaced (it was slow but it eventually rendered, it didn't stall and freeze the entire OS like Eevee does). So I suspect the way Eevee handles shader compilation with big textures might be part of the problem too. Note: I use CPU rendering in Cycles (with 8gb of RAM), while Eevee is using the GPU (both of the GPUs gave me the same problems). The NVIDIA GPU has 2gb of memory.

So I think this Task should be closed, or relabeled to "feedback" or something like that.

Note: The presence of even a single 4k .tif normal map texture (around 10mb in size), even with a limit of 1024, slows down the rendering in Eevee considerably. This normal is plugged into a Normal Map node and then into the Normal input of a Bump node and finally into the normal input of the Principled node (so the material uses both a bump .jpg texture and normal texture). All I mentioned above only used .jpg textures, so the original problem was not related to this. This is just a side problem I found while setting up the scene.

Hello, in the end I was finally able to find the source of the problem. The scene had several 4k textures and after changing settings so the texture "Limit Size" was 1024 (instead of the default "no limit"), the shader compilation went smoother, the program didn't stall and it rendered the scene as expected. Also when working with that limit the program didn't have those big hiccups. I also changed Image Display Method to "2D Texture". I also disabled the auto-save feature which I found to be quite demanding on resources, and also led to hiccups (even with small .blend files). To sum up, I don't think I found bugs but optimizations issues (unless GLSL was also part of the problem). I think the program should be a little more conservative resource-wise, and not take over all system resources like it currently does. A warning when texture sizes are too big would be welcomed. A global ram limit setting would also be a good addition. Furthermore, is there any reason why shader compilation is not cached long-term (and saved with the project)? something like what Unreal 4 does would be great. Also separating the shader compilation phase from rendering would be cleaner and easier on the system. Nonetheless, an important remark should be made: when rendering the same scene in Cycles (with all 4k textures and "no limit") none of these problems surfaced (it was slow but it eventually rendered, it didn't stall and freeze the entire OS like Eevee does). So I suspect the way Eevee handles shader compilation with big textures might be part of the problem too. Note: I use CPU rendering in Cycles (with 8gb of RAM), while Eevee is using the GPU (both of the GPUs gave me the same problems). The NVIDIA GPU has 2gb of memory. So I think this Task should be closed, or relabeled to "feedback" or something like that. Note: The presence of even a single 4k .tif normal map texture (around 10mb in size), even with a limit of 1024, slows down the rendering in Eevee considerably. This normal is plugged into a Normal Map node and then into the Normal input of a Bump node and finally into the normal input of the Principled node (so the material uses both a bump .jpg texture and normal texture). All I mentioned above only used .jpg textures, so the original problem was not related to this. This is just a side problem I found while setting up the scene.

Changed status from 'Open' to: 'Archived'

Changed status from 'Open' to: 'Archived'
Brecht Van Lommel self-assigned this 2019-07-09 19:33:33 +02:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
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
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
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
EEVEE & Viewport
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
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
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
2 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#65939
No description provided.