WIP: GSOC-individual-node-refresh #110725

Draft
Colin Marmond wants to merge 71 commits from Kdaf/blender:GSOC-individual-node-refresh into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
Member

Refactor the refreshing process of the shader previews in a way that only the nodes descendant from the modified nodes have their previews updated.

This patch's aim is to reduce the false positive that we have with the current "all nodes" refresh.

TODO:

  • Verify that nothing is wrong, and improve the quality of the code
Refactor the refreshing process of the shader previews in a way that only the nodes descendant from the modified nodes have their previews updated. This patch's aim is to reduce the false positive that we have with the current "all nodes" refresh. TODO: - [ ] Verify that nothing is wrong, and improve the quality of the code
Colin Marmond added 51 commits 2023-08-02 17:54:35 +02:00
7ff16bb007 Merge branch 'main' into shader-node-previews-GSOC
Not working, have to adapt for ImBuf
d1659784a2 Use ImBuf for preview drawing
There is still a thing to do about locking the result.
9a6169ecc7 Remove the ability to preview some nodes
Remove the ability to preview group inputs/outputs and material outputs.

Also clean the drawing spaces made for the old design.
88357f905e Rename: use more convenient names
The structure owning each nodetree previews is now called `NestedNodePreviews` and the map of them stored in the spacenode is called `tree_previews_per_context`.
f71ab1ff69 Add comments and clean a bit
Also remove Volume support
593c3f06b4 Remove unused mat_orig and tree_path
also use all_nodes() instead of nodes.
5ed6784e36 Wrong socket names
I thought I already fixed that, strange that I did not committed or merged.
ba5acaeb99 Clarify the node preview acquisition from the node_draw_basis
And also dont render previews if the size is 0 (should not be the case, but in a wrong situation it could)
b709502297 Useless commit
just to see if git can recover the diff.
0338271dd4 Update depsgraph when changing the scene during the render
It fixes the black preview issue with eevee and cycles (persistent mode enabled).

I then added the persistent mode for cycles to allow some optimization of the engine.
91cd2c1da0 Fix wrong wiring
and also follow coding styleguide
01b2d41b89 Partial tree refresh implemented
TODO: add some comments, clean some parts.
45d8027a15 Move the stuff to the runtime datas
and also avoid recursive function to avoid a stack overflow.
I still have to figure out the refresh of partial vs whole tree from which dirty state to use and when.
f423c76518 Rename/format/comment/fix/clean
Fix the forcing of whole tree refreshing for certain conditions (described in the comments).

There is still a wrong behaviour when moving links.
Colin Marmond changed title from GSOC-individual-node-refresh to WIP: GSOC-individual-node-refresh 2023-08-02 17:58:45 +02:00
Colin Marmond added 2 commits 2023-08-03 09:54:47 +02:00
Colin Marmond added 1 commit 2023-08-03 15:28:23 +02:00
Colin Marmond added 2 commits 2023-08-04 11:06:46 +02:00
Colin Marmond force-pushed GSOC-individual-node-refresh from 61113eb194 to 7e98c9105d 2023-08-04 11:24:54 +02:00 Compare
Colin Marmond added 11 commits 2023-08-09 10:25:42 +02:00
Colin Marmond added 2 commits 2023-08-09 16:45:54 +02:00
769ad286cc Clarify the rendering and cached properties
Do a better distinction between which variables are corresponding to runtime data (job_data) and which are corresponding to cached data, and thus only update the cached data when we are sure to do so.
Colin Marmond added 1 commit 2023-08-11 18:06:09 +02:00
This pull request has changes conflicting with the target branch.
  • source/blender/blenkernel/BKE_node_tree_update.h
  • source/blender/blenkernel/intern/node.cc
  • source/blender/blenkernel/intern/node_tree_update.cc
  • source/blender/editors/space_node/node_shader_preview.cc
  • source/blender/render/intern/pipeline.cc

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u GSOC-individual-node-refresh:Kdaf-GSOC-individual-node-refresh
git checkout Kdaf-GSOC-individual-node-refresh
Sign in to join this conversation.
No reviewers
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
1 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#110725
No description provided.