Extreme FPS loss (24x) between 2.79 and 2.8 with particle systems #58188
Labels
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
14 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#58188
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
System Information
Operating system: Ubuntu 17.10
Graphics card: GTX 1080
Blender Version
Broken: blender2.8
23284e4dde
Worked: master
786870e26f
Short description of error
Production scenes going between 2.79 and 2.8 have a heavy performance hit. I 'think' it is because of particle systems, and have created a scene which shows this slowdown. There may be other slow downs also but this is the first step
Exact steps for others to reproduce the error
test (1).blend
Added subscriber: @candreacchio
Added subscriber: @WilliamReynish
Changed status from 'Open' to: 'Resolved'
If this is broken in 2.78 but works in 2.79 then it's been resolved.
Changed status from 'Resolved' to: 'Open'
How is this resolved? there is a massive performance hit with Blender 2.8 making it unusable for production based scenes.
OH... i typed the main comment incorrectly for the step by step part... the rest was accurate
Added subscriber: @bastiansalmela
well, I tried it out. my poor little compu couldn't really handle well the opening part in 2.8, took ages.. and couldn't really do anything in blender. 2.79 was fast, as you said, opening and animation running.
then in 2.79, I removed the particle planes and tried again in 2.8, same thing, extremely slow. so, it's not just particles.
I started selecting the cubes, and turning from "wire" mode to "solid". one by one blender got better, and after it was done, it's fast again.
so, I'm not saying that particles don't have say in this, but I think it's more the viewport and all getting slow on drawing all those wires. it's a crazy cube you have there, you have to admit :)
.b
Added subscriber: @SergeyIvanov
gtx 1070 ti , the same fps, so slow
Removed subscriber: @SergeyIvanov
Added subscriber: @SergeyIvanov
Added subscriber: @CharlieJolly
Confirm here, 2.8 is unworkable on my laptop but 2.79 works fine. Looks like a good test file!
Added subscriber: @LaurenceWeedy
I have been working with the daily builds for some time now.
My blend file has multiple rigged objects with a shared particle system. Its a long animation - 3500 frames
2.8 (64bit) was working fine until the release on 27th November ending 436 when scrolling through the timeline became very slow (unusable). I am still using the build made on 24th Nov ending 0af, though doing a test on other builds I have stored, 25th November ending 3d8, seems OK as well.
Hope this helps
Windows 10 Pro - Intel i7 6800K - MSI 1080 X Gaming - 16 GB Ram
Added subscriber: @rdnmnm
I started having performance issues with moving vertices in edit mode with subdivision modifier enabled after that exact release.
Just updated to
756df74fca
and can confirm it is still here.Would someone be able to confirm this bug?
hmm, what does the image empty rendering bug has to do with this?
but, I can confirm, that the slowness of your file is still there.. and I think it will be for some time, doesn't feel like the simplest thing to do, hunt down the specific reason behind what makes this slow.. is it the rendering, or is it the new depsgraph, or.. well, we will see. hope devs get a look at it..
.b
Added subscriber: @brecht
The cubes in this file are very high poly, but due to hiding of flat edges the effective number of edges that gets drawn is low in wireframe mode. In 2.7 this happens once for each original mesh, on the CPU. The result is that very few edges need to be drawn. In 2.8 the flat edge detection happens on the GPU for every instance, which is slow.
There's cases where doing on the GPU faster, if you're for example animating a single high poly character it's likely faster. If you've got many static instances, in wireframe mode, with mostly flat edges, then it's a problem.
We could consider doing it on the CPU again. This test scene is a bit of a weird artificial case, but part of why wireframe drawing can be fast in heavy scenes is because many of the edges can be skipped for drawing. Not sure how practical this would be to fit in with the new wireframe drawing.
Removed subscriber: @SergeyIvanov
@brecht it could be solved by only drawing the faces that have at least one edge above the wireframe threshold.
Doing this means sorting the faces but I think we can get away with just separating them into 2 blocks based on an arbitrary value (maybe just a bit higher than the default wireframe threshold). This has the advantage that it's really easier and fast to sort and it will fix most of the issue reported here as long as the threshold is below the chosen threshold.
Going further we could sort the entire buffer and have a lookuptable with how much primitive to draw given a wireframe threshold. But this is way more complex and I wouldn't do it for animated/deformed objects.
I was trying to replicate a similar slowdown from our production scenes. They have very high poly trees on particle systems / duplicollections. I am unsure whether this slowdown will fix the problem we have but it was the most similar case i could create.
All of these particle systems / duplicollections are static instances aswell.
If any more information is needed, or if a more similar production scene is required please let me know and I will try to organise something that represents it better.
Thanks
Carlo
After this fix... I have noticed that it has helped the test scene i made, but has not impacted the production scenes all that much.
I have attached a new test file to this comment... Apologies for the fuzzying over the particle object... but it should give you a more realworld example of the slowdown.
slowdown.blend
If there is anything else I can provide to help with the the viewport performance please let me know
Carlo
I have just tried this mornings buld for Win 64 - 5/12/18 ending a3a. As with Carlo above there is an improvement but as I scroll the time line it is still about half the speed of the release 24/11/18 ending 0af (which is still quite slow - there's a lot going on). I see there are some more fixes by Clement since this build and will try them tomorrow when they're available to me.
Thanks for all your work
Windows 10 Pro - Intel i7 6800K - MSI 1080 X Gaming - 16 GB Ram
Added subscriber: @RobiTheReporter
I tried building from
a46290aaa8
(November 25) and31e3b7790a
(November 24), but both have had really low FPS for me which contradicts the posts above. Blender 2.79b on the same scene I tested easily gets 10 FPS with 28K particles. If there is a way to extract only specific objects from a scene to a separate .blend, I can upload a test case as well.Retesting after
89db684d82
Seems like this didn't have much of an impact (i guess because it only effects edit mode). we are still running a significant slowdown, which is even more exacerbated by selecting the particle system.
Has there been any developments on this?
So after profiling this with
perf
it gives me this flamegraph.So there seems to be a huge overhead in the iterator.
Concerning the draw manager, drw_batch_cache_generate_requested is taking a really long time for what should be a no-op. I'll work on this first.
Added subscriber: @intrigus-3
Added subscriber: @Astiero
Added subscriber: @mares-1
Is this still targeted for blender 2.8?
Added subscriber: @Valouptitloup
Blender 2.8 has come and went. Is this a target for 2.81?
This case should be improved by D4997 which is a target for 2.81.
Changed status from 'Open' to: 'Resolved'
With D4997 applied, the slowdown.blend file is ~32fps which is about the same performance as 2.79 [which is around 30fps (hard to tell because the fps is really not stable)].
So I will mark this as resolved.
Changed status from 'Resolved' to: 'Open'
Just marking this as open as D4997 has been reverted.
Changed status from 'Open' to: 'Resolved'
Seems like D4997 now has been applied.