Page MenuHome

Fix T93382: Blender still generates subsurface render passes
ClosedPublic

Authored by Lukas Stockner (lukasstockner97) on Oct 19 2022, 4:04 AM.

Details

Summary

In T93382, the problem was that the Blender-side rendering code was
still generating the subsurface passes because the old render pass
flags were set, even though Cycles doesn't generate them anymore.

After a closer look, it turns out that the entire hardcoded pass
creation code can be removed. We already have an Engine API function
to query the list of render passes from the engine, so we might as
well just call that and create the returned passes.

Turns out that Eevee already did this anyways. On the Cycles side, it
allows to deduplicate a lot of BlenderSync::sync_render_passes.
Before, passes were defined in engine.py and in sync.cpp. Now, all
passes that engine.py returns are created automatically, so sync.cpp
only needs to handle a few special cases.

I'm not really concerned about affecting external renderer addons,
since they already needed to handle the old "builtin passes" in
their Engine API implementation anyways to make them show up in the
compositor. So, unless they missed that for like 10 releases, they
should not notice any difference.

Diff Detail

Repository
rB Blender
Branch
fix-T93382 (branched from master)
Build Status
Buildable 24327
Build 24327: arc lint + arc unit

Event Timeline

Lukas Stockner (lukasstockner97) requested review of this revision.Oct 19 2022, 4:04 AM
Lukas Stockner (lukasstockner97) created this revision.

Very nice simplification.

Even if it's likely existing engines will continue to work, this will still need to be mentioned in the release notes.

This revision is now accepted and ready to land.Oct 19 2022, 8:15 PM