Cycles feedback

That’s a strange stance to take. There are lots of developers reading this forum. Blender is open source. There are developers who are not core developers, but who might be interested in looking into stuff like this.

Why would you make the chance of anything improving actively worse? I don’t get it.

Because it’s useless to take my scene. I think that Blender developers actually know that Cycles X is slower on lower end PCs (I was reading some months old post from Brecht, when Cycles X was in alpha). I just want them to do something about it as fast as possible!

Hi Ushnik,

Please try not to repeatedly tag developers in your posts. The Cycles developers are reading this thread regularly, and frequently tagging them is bothersome. Thanks.

5 Likes

Hey folks
I’m doing some stress tests with geometry-node scattering on CyclesX + CPU and i have some surprising results (it’s bad):

  • rendering ± 50.000 instances
    initialization: instantaneous
    peak memory: 215mo
  • rendering ±5.000.000 instances
    initialization: 30 sec
    peak memory: 1Gb
  • rendering ±10.000.000 instances
    initialization 2min30
    peak memory: 2.2gb
  • rendering ±20.000.000 instances
    8:30min of init time
    peak memory: 8.8Gb
    comment: quite difficult, 10 min freeze upon cancellation
  • rendering ±40.000.000 instances
    comment: impossible? initialization will freeze to death for me, render will just stop. (edit, i herrd processing can take up to 30min in such case?)

What can explain such scaling? why such memory consumption? I remember Cycles from 2.93 capable of rendering billions of instances, now we seem to be stuck at 40millions? i’m not sure what happened. may i tag @JuanGea you might be interested by this new limitation

4 Likes

Perhaps i have bad memory? :sweat_smile: :face_with_monocle:

Yes, albedo + normal passes with the accurate prefilter.

I also wondered that as the mesh is quite low-poly, the surface might not be sufficiently smooth on the normals pass. But adding a subdivision modifier didn’t help here. The overall contrast on the base render is quite low and the blotches are somewhat more apparent after enabling filmic + high contrast + curve adjustment:


Although not as obvious here compared to in motion.

That said, NLM doesn’t produce them and is closer to a ground truth render.

Ah, ok. I wasn’t sure how widely OptiX denoising was supported, but thought I read somewhere that it relied on Turing GPUs.

I’ll look into submitting a report for the separate OptiX issue.

@brecht @leesonw

i am running in some weird rendering performance with 4x gtx1080ti system and blender 3.0 RC.
when rendering a very simple scene (cube+sphere) with default init cycles settings, i get approx. 42sec.

enableing only 2 gpus in the prefs, gives me approx. 7-10sec.

in 2.93.x the same scene with same settings gives me approx. 3sec with 4x gpus.

could it be that blender 3.0 and cycles x is hardcoded to max 2 GPUs?

also the gpu load in blender 3.0 is only 16-26% on my 4x gpu system, but in 2.93 its 100% load…

does anybody also experiance this behaviour with multi-gpu (more than two gpus)?

Are you sure about billions of instances? It should be pretty easy to test, it’s not like Blender Foundation has disabled your 2.93 license. :thinking:
I tried a simple scene with 5 million monkeys on a plane using the old particle system (because geometry nodes changed too much) and both 2.93 and 3.0 were pretty similar with 33-35s for initialization and 1.5gb memory usage. But Blender itself used over 10gb so billions of instances would require terabytes of RAM and an absurd amount of time to even start rendering.

1 Like

Yeah I should, that was a pretty quick test :smile: perhaps I have bad memory it was always like that, I’ll do some benches when I have time

however I’m curious to know what is this scaling, from few mo to 9gb ? It’s the amount of ram needed to calculate the point perhaps ?

I would imagine that each instance requires a bit of memory to store its attributes. So even if it’s less than 1kb per instance, it quickly adds up when you have millions of them. Although judging by your numbers, scaling is not linear so there’s something else going on.

1 Like

Could the memory allocation just be exponential? That is, memory was allocated for new instances in turn, using a 2-fold increase and just experiments gave exactly 2, 4, 8 …?

What happened to the viewport? Looks like someone has killed Alaska’s patch :sob:

Before:

Now:

4 Likes

Maybe create a bugreport? help → report abug.

This has almost certainly been discussed, but using adaptive sampling while leaving minimum samples at 0 leads to blotches in dark areas:

Setting minimum samples to 256 improves it significantly and hardly adds any time to the render. Is this a known issue?

1 Like

I believe it is indeed a known issue, hope they improve the adaptive sampling on this soon.
https://developer.blender.org/T82383

In T82383#1249471, brecht wrote:
When adaptive sampling is unable to detect the noise early enough, that’s leads to structured artifacts. The solution then is to increase the minimum number of samples.
While we will work on improving adaptive sampling to reduce the cases where this happens, this interaction between denoising and adaptive sampling is not a bug, but an indication we can improve our adaptive sampling algorithms further.

1 Like

Adaptive sampling in general is a complex topic that has brought a lot of proposed algorithms over the years (each with their own strengths and drawbacks).

Among the complexities is how to properly handle tonemapped data, one could try to adaptively adjust the threshold so it is higher in bright areas and lower in darker areas, but it could result in a lot of noise showing up during color grading.

2 Likes

The commit that caused this has been reverted: rB2229179faa44

1 Like

Hi all, It’s hard to keep track of the thread, so I apologize in advance if It’s a known Issue.
I don’t have any example to show since It’s an issue encountered in studio.

We are testing blender 3.0 in production , we render on multiple network machines , some of them has 20 and 30 series nvidia RTX cards, capable of Optix rendering mode, and some of them just 10 series Cards, so we just rely on CUDA for frame rendered on these machines.

With volume render, CUDA and Optix give slightly different results, and in particular, Optix seem not correct, since it has visible banding and The scene rendered are the same, just different frames. We are relying on CUDA, which is still blazing fast on Cycles X, but It would be nice to know if it’s a bug/known limitation or there is something that can fix it.

The volume is just a big atmospheric cube with emission, scatter and absorbtion , and the density is driven by an animated noise and a gradient texture. The camera is initially outside of the volume, and If I well remember it enters the volume at a certain point.

Has anyone had similar issues before?

1 Like

It would be great if you could provide a test file and create a bug report. To create a bug report, select from the top of Blender Help -> Report a bug and fill out all the relevant information.

2 Likes

When will this be fixed, motion blur problem with CyclesX OptiX still unsolved in latest 3.1.