Compositor: Add experimental option for new CPU compositor #125960
No reviewers
Labels
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset System
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Code Documentation
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
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 & 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
Viewport & EEVEE
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Asset Browser Project
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
Asset System
Module
Core
Module
Development Management
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Module
Viewport & EEVEE
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Severity
High
Severity
Low
Severity
Normal
Severity
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
3 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#125960
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "OmarEmaraDev/blender:new-cpu-compositor-experimental-option"
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?
This patch introduces a new experimental option for the new CPU
compositor under development. This is to make development easier such
that it happens directly in main, but the compositor is not expected to
work and will probably crash.
Generally it's all fine to have experimental option for such things. Some notes though:
@Sergey The idea behind having a dedicated DNA enum value is to allow quickly changing between different compositors, for comparing results and performance. Changing that in the preferences will be a bit less convenient.
But it is probably not a strong enough reason. I can change the behavior and rename the option to
use_new_cpu_compositor
.@OmarEmaraDev If you feel strongly about having a way to easily toggle CPU implementation, maybe we can leave the enum-as-is and have a boolean property on the scene "Use new CPU implementation"? That way we'd just remove that option once the new implementation is mature, without needing to worry about do-version , or files which might have been saved with the new-cpu-device-type.
@Sergey That would be a reasonable compromise, I will do that.
I created a to-do task in #125968.
From my side it seems fine.
Still wonder if Dalai's fine with the naming of the experimental option. Sometimes he has stronger opinions about it than me :)
Maybe ping him in the chat before landing?
Unrelated to this patch: you are not the only one to forget/neglect USER_EXPERIMENTAL_TEST. If you would/could do a pass on the code and replace all the other U.experimental with this call it would be much appreciated.
@dfelinto The reason for the extra
use_new_compositor
is now allow quickly changing between current and new implementation for comparing results and performance. But it is not strictly required and I can do without it. Do you want it removed?@OmarEmaraDev I think it is simpler without:
It is not a deal-breaker. But one of the inspirations of the Experimental panel was to prevent having experimental features scattered everyone in Blender (or in CMake building options).
We've gone through this, please read discussion above. Overall it will (a) answer your questions (b) saves everyone's time.
It makes it much easier to compare old/new behavior to ensure they match.
I probably would be better to just negate the meaning of DNA flag, and use
RNA_def_property_boolean_negative_sdna
for the RNA. This way the scene-specific setting is defaulted to the new behavior, solving possible confusion for those brave people testing the new implementation, but keeping it easy for developers to do comparison.It is a debugging option. Just similar to the ones we have for Cycles and Hydra.
So perhaps solution is to just move this option to a panel which is only visible with Developers Extra, and make it have no effect if Developers Extras are disabled.
@OmarEmaraDev you can just assign a shortcut to toggle the experimental feature. Would that make things slower for you?
For example:
@dfelinto While this is does the job done, it is unideal from development process. Just think of a way how you'd communicate to contributors what the easy way to ensure things render the same in current/new CPU compsiutor.
It is just much easier if it is in a panel next to compositor itself. The setting you could also animate, and toggle frames back-n-forth.
So, ultimately, it is a Debug panel material. Hopefully it is not too annoying to add such panel for compositor for the currently-single-option in there.
+1 then, I have nothing further to add
Approving. See my suggestion about the name and USER_EXPERIMENTAL_TEST.