Compositor: Short term planning #106533

Open
opened 2023-04-04 10:05:34 +02:00 by Sergey Sharybin · 8 comments

This is a wrap-up of tasks which are planned to be worked on in a near future as part of making Blender ready for an upcoming open movie project.

It does not go into design details, but rather communicates priorities of what needs to happen in the module.

  • ImBuf Refactoring (#108618)
    • Store render passes as ImBuf (#109788)
    • GPU Texture support in ImBuf
      • Tiling for big images
      • Replace Eevee/Workbench textures storage in Image
      • Convert from GPU to CPU buffer
  • Render engine API for multiple render passes in viewport
    • Render API for writing to GPU textures
    • Cycles multiple passes
    • Eevee multiple passes
  • Painterly filters
  • Complete missing compositing nodes
    • Viewport compositor (#99210)
    • Full-frame compositor (#88150)
  • Unify GPU and full-frame compositors:
    • Canvas handling (#108944)
    • Node algorithms (#116694)
    • Resolve unwanted regression test failures when full-frame compositor replaces tiled
  • Performance
    • GPU compositor involves global locking, preventing interface from updates during compositing
    • The interface is not always fully responsive, possibly due to conflicting scheduling of compute and interface threads on the GPU
  • Unified CPU and GPU compositing implementation (converge the currently existing 3 systems into a single one, priority is low and is likely not be handled for the initial tiled based compositor replacement)
  • Multi render layer viewport compositing (priority is not yet clear)
This is a wrap-up of tasks which are planned to be worked on in a near future as part of making Blender ready for an upcoming open movie project. It does not go into design details, but rather communicates priorities of what needs to happen in the module. * [ ] ImBuf Refactoring (#108618) * [x] Store render passes as ImBuf (#109788) * [ ] GPU Texture support in ImBuf * [ ] Tiling for big images * [ ] Replace Eevee/Workbench textures storage in Image * [ ] Convert from GPU to CPU buffer * [ ] Render engine API for multiple render passes in viewport * [ ] Render API for writing to GPU textures * [ ] Cycles multiple passes * [ ] Eevee multiple passes * [x] Painterly filters * [x] Kuwahara filter (#107015) * [x] CPU * [x] GPU (#108796) * [ ] Complete missing compositing nodes * [ ] Viewport compositor (#99210) * [ ] Full-frame compositor (#88150) * [ ] Unify GPU and full-frame compositors: * [x] Canvas handling (#108944) * [x] Node algorithms (#116694) * [ ] Resolve unwanted regression test failures when full-frame compositor replaces tiled * [ ] Performance * [X] GPU compositor involves global locking, preventing interface from updates during compositing * [ ] The interface is not always fully responsive, possibly due to conflicting scheduling of compute and interface threads on the GPU * [ ] Unified CPU and GPU compositing implementation (converge the currently existing 3 systems into a single one, priority is low and is likely not be handled for the initial tiled based compositor replacement) * [ ] Multi render layer viewport compositing (priority is not yet clear)
Sergey Sharybin added the
Type
To Do
label 2023-04-04 10:05:35 +02:00
Sergey Sharybin added this to the Compositing project 2023-04-04 10:05:36 +02:00
Member

@Sergey should we add the tasks from https://devtalk.blender.org/t/compositor-improvements/13264/160?u=izo ? Most important to this list seems finalizing the full-frame compositor

@Sergey should we add the tasks from https://devtalk.blender.org/t/compositor-improvements/13264/160?u=izo ? Most important to this list seems finalizing the full-frame compositor
Author
Owner

@zazizizou Those are good tasks listed there. What I am not sure about is adding them into the list of this task. In a way I like the idea of a dedicated task for the planning we have specifically for the upcoming Open Movie project.

Lets catch up in the chat and go from there.

@zazizizou Those are good tasks listed there. What I am not sure about is adding them into the list of this task. In a way I like the idea of a dedicated task for the planning we have specifically for the upcoming Open Movie project. Lets catch up in the chat and go from there.

just chiming in from the outside - maybe add a warning that Viewport Render doesn't support viewport compositor. This was shot down as not a bug so I have to reach out here to get your attention that this is an extremely inconvenient functionality right now and needs a warning before you piss more people off with it.

just chiming in from the outside - maybe add a warning that Viewport Render doesn't support viewport compositor. This was shot down as not a bug so I have to reach out here to get your attention that this is an extremely inconvenient functionality right now and needs a warning before you piss more people off with it.
Author
Owner

Not exactly sure why this is currently unsupported, but thanks for bringing this up.

It is one of the goals to solve viewport compositor limitations. So ideally the limitation will be solved at the end of it. If not, then indeed we need to have some clear feedback about what is unsupported.

Not exactly sure why this is currently unsupported, but thanks for bringing this up. It is one of the goals to solve viewport compositor limitations. So ideally the limitation will be solved at the end of it. If not, then indeed we need to have some clear feedback about what is unsupported.

very nice thanks for understanding. From my experience it seemed to render the compositor result at the resolution of the viewport in blender and that area would be overlayed ontop of the full frame resolution viewport render result. Kinda funky. There is a thread about more involved problems of color bitrate, but I didn't fully understand that, main issue i think is the weird frame composite glitch you end up with. OK let me know if I can help in anyway with further testing (one of my ideas was to see if matching the render resolution to the viewport in the ui resolution to see if the problem goes away)

very nice thanks for understanding. From my experience it seemed to render the compositor result at the resolution of the viewport in blender and that area would be overlayed ontop of the full frame resolution viewport render result. Kinda funky. There is a thread about more involved problems of color bitrate, but I didn't fully understand that, main issue i think is the weird frame composite glitch you end up with. OK let me know if I can help in anyway with further testing (one of my ideas was to see if matching the render resolution to the viewport in the ui resolution to see if the problem goes away)

is the compositor's OIDN node planned to have GPU support?

is the compositor's OIDN node planned to have GPU support?
Member

is the compositor's OIDN node planned to have GPU support?

It seems the answer is yes. See: https://devtalk.blender.org/t/2023-03-07-render-cycles-meeting/28167

> is the compositor's OIDN node planned to have GPU support? It seems the answer is yes. See: https://devtalk.blender.org/t/2023-03-07-render-cycles-meeting/28167

is the compositor's OIDN node planned to have GPU support?

It seems the answer is yes. See: https://devtalk.blender.org/t/2023-03-07-render-cycles-meeting/28167

oh wow, that's amazing! Hopefully the OIDN compositor node will also have an option for it too. Thanks 👍

> > is the compositor's OIDN node planned to have GPU support? > > It seems the answer is yes. See: https://devtalk.blender.org/t/2023-03-07-render-cycles-meeting/28167 oh wow, that's amazing! Hopefully the OIDN compositor node will also have an option for it too. Thanks 👍
Sign in to join this conversation.
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
5 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#106533
No description provided.