Cycles Development Updates

Attendees

  • Christoph Neuhauser (Intel)
  • Brecht Van Lommel (Blender)
  • Michael Jones (Apple)
  • Nikita Sirgienko (Intel)
  • Patrick Mours (NVIDIA)
  • Sebastian Herholz (Blender)
  • Sergey Sharybin (Blender)
  • Thomas Dinges (Blender)
  • Weizhen Huang (Blender)

Notes

  • High Severity
    • None! :slight_smile:
  • Blender 5.1
    • Seems to be in a good shape.
    • Still some bugs being fixed, but nothing worth mentioning.
  • Ongoing projects
    • Texture Caching
      • Refactor: Cycles: Various changes to prepare for the texture cache #154668 has landed.
      • Cycles: Add image texture cache and mipmaps #154913 is under review.
      • Brecht is looking into performance issus on GPU to avoid regression when cache is not used.
      • There is WIP of the cache eviction, which is not a part of the initial review.
      • Potential during interactive navigation: load tiles asynchronously in a background thread.
    • Light BVH
      • Weizhen implemented main part for BVH2, Embree, Metal, and OptiX
      • Still missing oneAPI and HIP
      • Missing light and shadow linking, and distant lights
      • Weizhen will publish refactor and current state and focus on OpenPBR
      • Other Cycles developers could help with wrapping the project up
    • OpenPBR
      • Weizhen wants to look into the thin surface and volume
      • Sebastian started with implementation of the nodes.
      • PoC implementation using MaterialX OSL code generation, as they are seen as the reference implementation.
      • There is no official OpenPBR reference images for validation. Sebastian wants to bring it up in the OpenPBR meeting.
  • Other
    • Cycles: Add NVIDIA DLSS support for viewport denoising #153077
      • The “preparation” PRs are ready. Would be good to land those soon.
        • Cycles: Add fundamental support for upscaling denoisers #151133
        • Cycles: Add option to apply subpixel jitter to camera #153544
        • Cycles: Add specular albedo pass and improve denoising passes #153545
        • Cycles: Fix various issues when motion pass is enabled #153547
    • Some on-going PRs
      • Physical units for lights and cameras
      • Light pass expressions
      • Deep passes
      • Relies on AI generated code, which makes it hard to accept as-is
      • We are trying to figure out official policy within ourselves
    • Cycles: Improve Metal state allocation logic for RAM-constrained systems #154916 has landed!
    • WIP: Cycles: GPU Driven Scheduling Concept / Draft (Metal) #154135
      • Still needs review!
    • Michael brought up a topic of OpenData
      • Blender folks are stil working on it
    • oneAPI is in a good shape for 5.1
17 Likes

Attendees

  • Sergey Sharybin (Blender)
  • Brecht Van Lommel (Blender)
  • Thomas Dinges (Blender)
  • Nikita Sirgienko (Intel)
  • Patrick Mours (NVIDIA)
  • Sahar A. Kashi (AMD)
  • Christoph Neuhauser (Intel)
  • Sebastian Herholz (Blender)

Notes

  • High Severity
    • None! :slight_smile:
  • Blender 5.1
    • Fix #155588: Cycles Metal state allocation OOM issues #155635
      • Landed to main
      • Will be ported to Blender 5.1.1
      • OpenData will be updated to use 5.1.1 and 5.1.0 will be removed from the launcher list (but data will stay for the historical reasons)
  • Ongoing projects
    • Texture Caching
      • Cycles: Add image texture cache and mipmaps #154913
        • The review is in progress, overall looks good.
        • There is performance topic related to the autodiff changes, it is split into dedicated PR now
      • Cycles: Support automatic differentiation of shader nodes in SVM #155706
        • Looks good as well
        • There are some performance impacts that could not be fully resolved yet. It is something we might accept.
    • Light BVH
      • Not finished yet
      • Brecht helps with HIP-RT
      • More work is needed. Sergey should be able to help as well
    • OpenPBR
      • Wezhen got rough thin glass working
      • Sebastian started working on the basic OpenPBR implementation in Blender
        • Including compatibility teting, etc
  • Other
    • Question to Nikita:
      • Could he help with the performance impact of the texture caching on Intel Windows :slight_smile:
    • Performance fluctuation on Metal
      • Example: Benchmarks
      • Culd be power states
      • Blender with work with Michael to try to get to the bottom of the issue
    • Blender 5.2 library upgrades
      • What is the expectations for the library version upgrade deadlines?
        • There is a bit of discrepency between the task and the release cycle documentation
      • Ideally should be before March 24th, but there is some flexibility
      • In the context of the oneAPI/DPC++: library update request during April will be fine
        • Add a placeholder (unless version is known)
      • Sahar wants to add compiling HIP runtime from sources
        • Mid-April would be good.
        • Need to have enough head-room until switch to Beta on the June 3
      • Help from Sahar to look into HIP-RT bugs in the tracker would be very welcom
    • Patrick vas working on motion vectors working in the viewport
      • Some PRs that are green needs to be merged :slight_smile:
      • Patrick and Sebastian synced up on the debug option for the jitter pattern
      • Seems to be in a good state, just a few edge casws remained to be solved
    • Sebastian is updating the Cycles standalone repository
10 Likes

Looks like “Texture Cache” landed… :thinking:

13 Likes

Nice to have…at least as option… I prefer to be able to render an image in a longer time than no render at all or have to do more workload to reduce texture resolution or buy more RAM or a new videocard with more ram.

Obviously, if they can find a way to reduce the performance loss…well…in that way more than welcome. I remember that, speaking about Vray, the features that, in the past, were used to render big images or big scene with a limited RAM were at a performance cost…so I think that if this was working for Vray…I think it will work for Cycles because as I wrote before…it’s better to render a scene in more time than don’t render at all.

3 Likes

Blender decided to add support for the OpenPBR uber-material model in a future release. The OpenPBR material shading node will be an alternative to the PrincipledBSDF material. Other than the Blender specific PrincipledBSDF, OpenPBR is a standardized material model that is fully supported by multiple renderers and DCC software packages.

https://projects.blender.org/blender/blender/issues/156437#issue-170022

10 Likes

Well at least in their tests the performance loss seems quite acceptable !
It’s logical that finding the appropriate texture size comes with a cost… but as you said maybe it’s better to way two second more rather than having no renders at all :slight_smile:

3 Likes

This will potentially benefit significantly ArchViz workflows, among other fields.

Avoiding the good old Symplify’s Texture Limit all-or-nothing approach for texture resolution could help a lot, beyond the ability to just render a scene that hardly would fit in any rendering device.

We use dozens or hundreds of assets per scene. And they don’t easily fit in the VRAM of most GPUs. Having all assets with middle to high resolution but automatically scale them down as needed per asset and contribution to its shot instead of limit the top amount of resolution size for the whole scene solves major headaches and reduces significantly the amount of workarounds needed to fit scenes in VRAM.

We can always go CPU, bigger GPU VRAM, and all sorts of tricks, but this can potentially be a massive help.

Its usefulness is not limited to rendering. I can confidently make my own assets with high resolution texturing and details and count on them to not kill my shots. I can be sure the same asset will work on close-ups but won’t kill my scene if its pixel real estate on the final render is small but still has massive textures.

It’s similar to what adaptive subdivision offers for our meshes but for textures, if you will.

Texture caching and mip-mapping is truly welcome. Big thanks to the developers!

I hope I made some sense.

7 Likes

Yeah you’re definitely right here ! I think this is beneficial for every heavy projects lie Arch-Viz, VFX or feature-film quality animation. It’s indeed a massive step in allowing blender to handle more complex projects. and yes this allows to be a bit more sloppy with assets and you can do massive textures and let cycles manage their size. For that to be completely efficient I guess eevee needs to catch up so this principle follows in every parts of blender …

Also I’m wondering what appends if say you’re on viewport preview and zooming toward an asset, is blender going to slowdown each time it loads a different mip level, or it will keep the initial one…

So yeah I guess it’s a great new thing we can rely on but maybe not the time to throw old school techniques to save memory out of the window either.

3 Likes

First step towards getting DLSS and other upscaling denoisers in the viewport has been merged!

https://projects.blender.org/blender/blender/pulls/151133

9 Likes

Attendees

  • Brecht Van Lommel (Blender)
  • Christoph Neuhauser (Intel)
  • Michael Jones (Apple)
  • Patrick Mours (NVIDIA)
  • Sahar A. Kashi (AMD)
  • Sebastian Herholz (Blender)
  • Sergey Sharybin (Blender)
  • Weizhen Huang (Blender)

Notes

  • High Severity
    • Sharp Edges No Longer Work Properly #156603
  • Blender 5.1
    • Planned for mid-April
    • 5.1: Candidates for corrective releases #155533
  • Ongoing projects
    • Texture Caching
      • Tha main work landed!
      • Cache eviction is in the works, PR is coming up.
    • OpenPBR
      • Sebastian spent time on organizing the project: setting up tasks etc
      • Have it working for OSL: coating, phase, metalling, emissive, transmission components. Mising subsurface and thin film.
      • Next step is to port it to SVM and EEVEE. This is what Sebastian is currently working on.
      • Work to compare Cycles with other renderers is in the works. Working with OpenPBR WG to introduce testing.
      • Weizhen is working on anisotropy support for SSS: negative anisotropy was not supported. This in the context of thin sheet (thin surface, wall) support.
    • Cycles standalone repository has been updated. Both 5.1 and main Blender branches.
      • We’ll try to keep it up to date more regularly.
  • Other
    • Brecht is working on SVM refactor
      • Goal is to avoid packing to uint4
      • Will be using proper data structures
    • Sahar looked into remaining HIP-RT issues
      • Some of them were actually resolved
      • BVH memory usage still needs work
      • The Rock integration: PR for integration is coming up
        • The problem is that the runtime currently need to be linked against non-opensource library on Windows, which is a problem
        • No conclusion could be done during the meeting. Sahar will bring it up internally
    • Patrick: we’ve run out of sockets in the Integrator class
      • Should be possible to move to bit vector
      • Simpler change could also work though
7 Likes

What Rock ?

2 Likes

Maybe ROCm

But today’s 1st of April, could also be “The Rock” :face_with_open_eyes_and_hand_over_mouth:

The_Rock

6 Likes

That one:

:stuck_out_tongue_winking_eye:

4 Likes

Such unilateral motor control is impossible to achieve without a good rig or a background in wrestling. But ultimately, unabashedly, does not answer my question

This mention of “The Rock” is needlessly ambiguous. It leaves everybody wondering what the involvement of a wrestling star turned movie icon is exactly with the free software movement. Is Dwayne Johnson a platinum sponsor ? does he have vested interest in spectral rendering ?

Is it related to ROCm ?

3 Likes

Didn’t you know ? Dwayne Johnson uses cycles…

https://www.youtube.com/shorts/wc_smUCYb_A

4 Likes

You got me good with that one

2 Likes

Maybe this has something to do with it

https://github.com/ROCm/TheRock

4 Likes

They called it TheRock. Brilliant. I guess to differentiate themselves from nVidia’s RoberDowneyJr toolkit. Oh well. :confused: Was it an inside job sabotage? :smiley:

Hopefully it’ll eventually work, though. It seems like a good idea, besides the Boaty MyBoatface situation over there.

2 Likes

Good, it will be ok!:grinning:

“The Rock” is a new initiative by AMD to streamline the build process for ROCm. It is designed as a unified CMake super-project that provides a cleaner, more efficient way to build ROCm components and PyTorch from source.

1 Like