Fix #117780: Allow Embossing With Horizontal Layouts #118304

Merged
Harley Acheson merged 2 commits from Harley/blender:Fix117780 into blender-v4.1-release 2024-02-19 22:26:16 +01:00
Member

Although it is nice to skip embossing for middle buttons in aligned
rows, this only applies to vertically-aligned buttons. Horizontal ones
need to keep their embossing, if enabled.

Although it is nice to skip embossing for middle buttons in aligned rows, this only applies to vertically-aligned buttons. Horizontal ones need to keep their embossing, if enabled.
Harley Acheson added this to the User Interface project 2024-02-15 01:01:19 +01:00
Harley Acheson requested review from Leon Schittek 2024-02-15 01:01:26 +01:00
Leon Schittek requested changes 2024-02-15 22:46:38 +01:00
Leon Schittek left a comment
Member

Thanks for working on this!

I get the idea of using the height to width ratio as a heuristic, but this doesn't seem to work too well. For me it doesn't fix the issue in all cases and it also undoes some of the nice fixes from your previous patch, like reintroducing the emboss inside of stacks:

emboss-patch-annotated.png


I've tinkered a bit and I think we can estimate whether a button should get an emboss by checking if it's bottom edge is close to the bottom edge of it's block. At least it works pretty well in my test case (EDIT: I actually found that this doesn't work in a lot of panels. There can be several aligned groups of buttons in the same block. So the assumption that the block's bottom edge is close to the bottom edge of the lowest aligned button doesn't hold true in general.)

emboss-alternative.png

These are the changes on top of your patch in case you think we could go this route (I hope the attached diff applies for you, since I'm not up to date with current main branch):

Diff
diff --git a/source/blender/editors/interface/interface_widgets.cc b/source/blender/editors/interface/interface_widgets.cc
index 37e5ce652a9..6e12e4d4b28 100644
--- a/source/blender/editors/interface/interface_widgets.cc
+++ b/source/blender/editors/interface/interface_widgets.cc
@@ -2633,6 +2633,21 @@ static float widget_radius_from_rcti(const rcti *rect, const uiWidgetColors *wco
 
 /** \} */
 
+/* -------------------------------------------------------------------- */
+/** \name Widget Emboss Helper
+ *
+ * The emboss is supposed to indicate a shadow under the bottom edge of buttons to help them stand
+ * out. For multiple vertically aligned buttons it's only meant to display under the buttons in the
+ * bottom most row.
+ * \{ */
+
+static bool button_is_in_bottom_row(const uiBut *but)
+{
+  return (but->rect.ymin - but->block->rect.ymin) < U.widget_unit;
+}
+
+/** \} */
+
 /* -------------------------------------------------------------------- */
 /** \name Widget Types
  * \{ */
@@ -3481,16 +3496,12 @@ static void widget_numbut_draw(const uiBut *but,
 
     /* outline */
     wtb.draw_inner = false;
-    const bool horizontal = BLI_rctf_size_x(&but->block->rect) >
-                            BLI_rctf_size_y(&but->block->rect);
-    wtb.draw_emboss = horizontal || (roundboxalign & (UI_CNR_BOTTOM_LEFT | UI_CNR_BOTTOM_RIGHT));
+    wtb.draw_emboss = button_is_in_bottom_row(but);
     widgetbase_draw(&wtb, wcol);
   }
   else {
     /* inner and outline */
-    const bool horizontal = BLI_rctf_size_x(&but->block->rect) >
-                            BLI_rctf_size_y(&but->block->rect);
-    wtb.draw_emboss = horizontal || (roundboxalign & (UI_CNR_BOTTOM_LEFT | UI_CNR_BOTTOM_RIGHT));
+    wtb.draw_emboss = button_is_in_bottom_row(but);
     widgetbase_draw(&wtb, wcol);
   }
 
@@ -4408,8 +4419,7 @@ static void widget_box(uiBut *but,
   const float rad = widget_radius_from_zoom(zoom, wcol);
   round_box_edges(&wtb, roundboxalign, rect, rad);
 
-  const bool horizontal = BLI_rctf_size_x(&but->block->rect) > BLI_rctf_size_y(&but->block->rect);
-  wtb.draw_emboss = horizontal || (roundboxalign & (UI_CNR_BOTTOM_LEFT | UI_CNR_BOTTOM_RIGHT));
+  wtb.draw_emboss = button_is_in_bottom_row(but);
   widgetbase_draw(&wtb, wcol);
 
   copy_v3_v3_uchar(wcol->inner, old_col);
@@ -4465,8 +4475,7 @@ static void widget_roundbut_exec(uiBut *but,
   /* half rounded */
   round_box_edges(&wtb, roundboxalign, rect, rad);
 
-  const bool horizontal = BLI_rctf_size_x(&but->block->rect) > BLI_rctf_size_y(&but->block->rect);
-  wtb.draw_emboss = horizontal || (roundboxalign & (UI_CNR_BOTTOM_LEFT | UI_CNR_BOTTOM_RIGHT));
+  wtb.draw_emboss = button_is_in_bottom_row(but);
   widgetbase_draw(&wtb, wcol);
 }
 

I've attached my test file, as well. I'm on a small laptop screen and some of the issues rely on the editor being rather narrow, so you might need to change the window size a bit to reproduce the result from my screenshot.

Thanks for working on this! I get the idea of using the height to width ratio as a heuristic, but this doesn't seem to work too well. For me it doesn't fix the issue in all cases and it also undoes some of the nice fixes from your previous patch, like reintroducing the emboss inside of stacks: ![emboss-patch-annotated.png](/attachments/0ae05ff9-242a-4651-8618-aae42ade06b2) --- I've tinkered a bit and I think we can estimate whether a button should get an emboss by checking if it's bottom edge is close to the bottom edge of it's block. At least it works pretty well in my test case *(EDIT: I actually found that this doesn't work in a lot of panels. There can be several aligned groups of buttons in the same block. So the assumption that the block's bottom edge is close to the bottom edge of the lowest aligned button doesn't hold true in general.)* ![emboss-alternative.png](/attachments/d5a1a4fd-2f05-4aa9-91b7-890d74771742) These are the changes on top of your patch in case you think we could go this route (I hope the attached diff applies for you, since I'm not up to date with current main branch): <details><summary>Diff</summary> ```diff diff --git a/source/blender/editors/interface/interface_widgets.cc b/source/blender/editors/interface/interface_widgets.cc index 37e5ce652a9..6e12e4d4b28 100644 --- a/source/blender/editors/interface/interface_widgets.cc +++ b/source/blender/editors/interface/interface_widgets.cc @@ -2633,6 +2633,21 @@ static float widget_radius_from_rcti(const rcti *rect, const uiWidgetColors *wco /** \} */ +/* -------------------------------------------------------------------- */ +/** \name Widget Emboss Helper + * + * The emboss is supposed to indicate a shadow under the bottom edge of buttons to help them stand + * out. For multiple vertically aligned buttons it's only meant to display under the buttons in the + * bottom most row. + * \{ */ + +static bool button_is_in_bottom_row(const uiBut *but) +{ + return (but->rect.ymin - but->block->rect.ymin) < U.widget_unit; +} + +/** \} */ + /* -------------------------------------------------------------------- */ /** \name Widget Types * \{ */ @@ -3481,16 +3496,12 @@ static void widget_numbut_draw(const uiBut *but, /* outline */ wtb.draw_inner = false; - const bool horizontal = BLI_rctf_size_x(&but->block->rect) > - BLI_rctf_size_y(&but->block->rect); - wtb.draw_emboss = horizontal || (roundboxalign & (UI_CNR_BOTTOM_LEFT | UI_CNR_BOTTOM_RIGHT)); + wtb.draw_emboss = button_is_in_bottom_row(but); widgetbase_draw(&wtb, wcol); } else { /* inner and outline */ - const bool horizontal = BLI_rctf_size_x(&but->block->rect) > - BLI_rctf_size_y(&but->block->rect); - wtb.draw_emboss = horizontal || (roundboxalign & (UI_CNR_BOTTOM_LEFT | UI_CNR_BOTTOM_RIGHT)); + wtb.draw_emboss = button_is_in_bottom_row(but); widgetbase_draw(&wtb, wcol); } @@ -4408,8 +4419,7 @@ static void widget_box(uiBut *but, const float rad = widget_radius_from_zoom(zoom, wcol); round_box_edges(&wtb, roundboxalign, rect, rad); - const bool horizontal = BLI_rctf_size_x(&but->block->rect) > BLI_rctf_size_y(&but->block->rect); - wtb.draw_emboss = horizontal || (roundboxalign & (UI_CNR_BOTTOM_LEFT | UI_CNR_BOTTOM_RIGHT)); + wtb.draw_emboss = button_is_in_bottom_row(but); widgetbase_draw(&wtb, wcol); copy_v3_v3_uchar(wcol->inner, old_col); @@ -4465,8 +4475,7 @@ static void widget_roundbut_exec(uiBut *but, /* half rounded */ round_box_edges(&wtb, roundboxalign, rect, rad); - const bool horizontal = BLI_rctf_size_x(&but->block->rect) > BLI_rctf_size_y(&but->block->rect); - wtb.draw_emboss = horizontal || (roundboxalign & (UI_CNR_BOTTOM_LEFT | UI_CNR_BOTTOM_RIGHT)); + wtb.draw_emboss = button_is_in_bottom_row(but); widgetbase_draw(&wtb, wcol); } ``` </details> I've attached my test file, as well. I'm on a small laptop screen and some of the issues rely on the editor being rather narrow, so you might need to change the window size a bit to reproduce the result from my screenshot.
Member

Hmm, seems like I missed a few cases in my testing, where the approach in my previous doesn't work.

There can be several aligned groups of buttons in the same block. So the assumption that the block's bottom edge is close to the bottom edge of the lowest aligned button doesn't hold true in general and this happens a lot in panels:

emboss-block-bottom-failure.png

Some of these cases can be fixed by also checking the corner rounding of the bottom corners like in your original fix, but that still misses a few cases.

I wonder if we could just use the button's drawflag, like in the diff below. After all that's already how the buttons are propperly stitched together, so it seems more reliable and less roundabout.

Diff
diff --git a/source/blender/editors/interface/interface_widgets.cc b/source/blender/editors/interface/interface_widgets.cc
index 74cac98d589..7593e309739 100644
--- a/source/blender/editors/interface/interface_widgets.cc
+++ b/source/blender/editors/interface/interface_widgets.cc
@@ -2637,6 +2637,21 @@ static float widget_radius_from_rcti(const rcti *rect, const uiWidgetColors *wco
 
 /** \} */
 
+/* -------------------------------------------------------------------- */
+/** \name Widget Emboss Helper
+ *
+ * The emboss is supposed to indicate a shadow under the bottom edge of buttons to help them stand
+ * out. For multiple vertically aligned buttons it's only meant to display under the buttons at the
+ * bottom.
+ * \{ */
+
+static bool draw_emboss(const uiBut *but)
+{
+  return (but->drawflag & UI_BUT_ALIGN_DOWN) == 0;
+}
+
+/** \} */
+
 /* -------------------------------------------------------------------- */
 /** \name Widget Types
  * \{ */
@@ -3494,16 +3509,12 @@ static void widget_numbut_draw(const uiBut *but,
 
     /* outline */
     wtb.draw_inner = false;
-    const bool horizontal = BLI_rctf_size_x(&but->block->rect) >
-                            BLI_rctf_size_y(&but->block->rect);
-    wtb.draw_emboss = horizontal || (roundboxalign & (UI_CNR_BOTTOM_LEFT | UI_CNR_BOTTOM_RIGHT));
+    wtb.draw_emboss = draw_emboss(but);
     widgetbase_draw(&wtb, wcol);
   }
   else {
     /* inner and outline */
-    const bool horizontal = BLI_rctf_size_x(&but->block->rect) >
-                            BLI_rctf_size_y(&but->block->rect);
-    wtb.draw_emboss = horizontal || (roundboxalign & (UI_CNR_BOTTOM_LEFT | UI_CNR_BOTTOM_RIGHT));
+    wtb.draw_emboss = draw_emboss(but);
     widgetbase_draw(&wtb, wcol);
   }
 
@@ -4420,9 +4431,7 @@ static void widget_box(uiBut *but,
 
   const float rad = widget_radius_from_zoom(zoom, wcol);
   round_box_edges(&wtb, roundboxalign, rect, rad);
-
-  const bool horizontal = BLI_rctf_size_x(&but->block->rect) > BLI_rctf_size_y(&but->block->rect);
-  wtb.draw_emboss = horizontal || (roundboxalign & (UI_CNR_BOTTOM_LEFT | UI_CNR_BOTTOM_RIGHT));
+  wtb.draw_emboss = draw_emboss(but);
   widgetbase_draw(&wtb, wcol);
 
   copy_v3_v3_uchar(wcol->inner, old_col);
@@ -4478,8 +4487,7 @@ static void widget_roundbut_exec(uiBut *but,
   /* half rounded */
   round_box_edges(&wtb, roundboxalign, rect, rad);
 
-  const bool horizontal = BLI_rctf_size_x(&but->block->rect) > BLI_rctf_size_y(&but->block->rect);
-  wtb.draw_emboss = horizontal || (roundboxalign & (UI_CNR_BOTTOM_LEFT | UI_CNR_BOTTOM_RIGHT));
+  wtb.draw_emboss = draw_emboss(but);
   widgetbase_draw(&wtb, wcol);
 }
 

This does seem pretty promising, but there might be more cases I've missed...

emboss-draw-flag.png

Hmm, seems like I missed a few cases in my testing, where the approach in my previous doesn't work. There can be several aligned groups of buttons in the same block. So the assumption that the block's bottom edge is close to the bottom edge of the lowest aligned button doesn't hold true in general and this happens a lot in panels: ![emboss-block-bottom-failure.png](/attachments/eef61a94-1205-4417-83ba-8f8aaac29b22) Some of these cases can be fixed by also checking the corner rounding of the bottom corners like in your original fix, but that still misses a few cases. I wonder if we could just use the button's `drawflag`, like in the diff below. After all that's already how the buttons are propperly stitched together, so it seems more reliable and less roundabout. <details><summary>Diff</summary> ```diff diff --git a/source/blender/editors/interface/interface_widgets.cc b/source/blender/editors/interface/interface_widgets.cc index 74cac98d589..7593e309739 100644 --- a/source/blender/editors/interface/interface_widgets.cc +++ b/source/blender/editors/interface/interface_widgets.cc @@ -2637,6 +2637,21 @@ static float widget_radius_from_rcti(const rcti *rect, const uiWidgetColors *wco /** \} */ +/* -------------------------------------------------------------------- */ +/** \name Widget Emboss Helper + * + * The emboss is supposed to indicate a shadow under the bottom edge of buttons to help them stand + * out. For multiple vertically aligned buttons it's only meant to display under the buttons at the + * bottom. + * \{ */ + +static bool draw_emboss(const uiBut *but) +{ + return (but->drawflag & UI_BUT_ALIGN_DOWN) == 0; +} + +/** \} */ + /* -------------------------------------------------------------------- */ /** \name Widget Types * \{ */ @@ -3494,16 +3509,12 @@ static void widget_numbut_draw(const uiBut *but, /* outline */ wtb.draw_inner = false; - const bool horizontal = BLI_rctf_size_x(&but->block->rect) > - BLI_rctf_size_y(&but->block->rect); - wtb.draw_emboss = horizontal || (roundboxalign & (UI_CNR_BOTTOM_LEFT | UI_CNR_BOTTOM_RIGHT)); + wtb.draw_emboss = draw_emboss(but); widgetbase_draw(&wtb, wcol); } else { /* inner and outline */ - const bool horizontal = BLI_rctf_size_x(&but->block->rect) > - BLI_rctf_size_y(&but->block->rect); - wtb.draw_emboss = horizontal || (roundboxalign & (UI_CNR_BOTTOM_LEFT | UI_CNR_BOTTOM_RIGHT)); + wtb.draw_emboss = draw_emboss(but); widgetbase_draw(&wtb, wcol); } @@ -4420,9 +4431,7 @@ static void widget_box(uiBut *but, const float rad = widget_radius_from_zoom(zoom, wcol); round_box_edges(&wtb, roundboxalign, rect, rad); - - const bool horizontal = BLI_rctf_size_x(&but->block->rect) > BLI_rctf_size_y(&but->block->rect); - wtb.draw_emboss = horizontal || (roundboxalign & (UI_CNR_BOTTOM_LEFT | UI_CNR_BOTTOM_RIGHT)); + wtb.draw_emboss = draw_emboss(but); widgetbase_draw(&wtb, wcol); copy_v3_v3_uchar(wcol->inner, old_col); @@ -4478,8 +4487,7 @@ static void widget_roundbut_exec(uiBut *but, /* half rounded */ round_box_edges(&wtb, roundboxalign, rect, rad); - const bool horizontal = BLI_rctf_size_x(&but->block->rect) > BLI_rctf_size_y(&but->block->rect); - wtb.draw_emboss = horizontal || (roundboxalign & (UI_CNR_BOTTOM_LEFT | UI_CNR_BOTTOM_RIGHT)); + wtb.draw_emboss = draw_emboss(but); widgetbase_draw(&wtb, wcol); } ``` </details> This does seem pretty promising, but there might be more cases I've missed... ![emboss-draw-flag.png](/attachments/4beee8d8-1be1-44ac-82da-85c9219e3c25)
Harley Acheson added 367 commits 2024-02-18 01:11:14 +01:00
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
fb0f06a2ac
Revert "Release cycle: 4.1, Bcon3"
This reverts commit 4db1426818.
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
fbf47b9a12
Refactor: Use std::string for keymap string return values
The main simplification is using return values rather than return
arguments, and the additional semantic clarity from std::optional.
Also use `fmt` for formatting and use lambdas instead of macros
as helpers in a few modal keymap formatting functions.

Similar commits:
- a1792e98a4
- f04bc75f8c
- 6abf43cef5
- 7ca4dcac5a

Pull Request: #117785
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
84b9fe3dbe
Cleanup: Curves Selection: Rename `coords` argument to `lasso_coords`
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
6702f74d0b
Curves: Improve copy and move assignment
Previously the default constructor ran, then the copy or move
assignment. This resulted in extra creations of runtime data,
including allocations of all the shared caches, only for them
to be immediately replaced by the new ones. Move assignment also
didn't clear the source curves completely, which could result in
higher memory usage or worse, extra users for attribute arrays,
which could lead to unnecessary copying.

In a very simple test repeatedly copying a tiny Curves data-block,
I observed a 30% performance improvement.

This also fixes a memory leak of the offsets in the copy assignment.

Pull Request: #117932
631a44afc3 Fix #117929: Extract face set operator crash
The problem was calling a "for eval" function on an original mesh
in the main data-base. The parameters are already copied anyway,
so the call was unnecessary. Also reorder some changes to happen
before the geometry is moved to the original mesh.
0a45acbe3b GPv3: Layer Parenting/Transforms
This implements layer parenting and layer transforms.

* Adds a new "Transform" panel in the object-data properties with the (local) translation, rotation and scale.
* Adds a new "Relations" panel with the parent property (and also bone name in case the parent is an armature).
* When converting from GPv2 to GPv3, the parent and transforms are converted too.
* Bone names are updated if they are renamed in the armature.

Implementation details:
* The positions in the drawings are always in layer space. During extraction, we transform the positions to object space. Note that this could be optimized further and done in the render engine itself.
* This means that e.g. the selection code (which needs to know where the positions are on screen) now takes this transform into account.
* The layer transform is calculated when accessed (from the location, rotation, scale properties).
* Code that needs to know where the positions are on screen now takes this new transform into account.

Pull Request: #117247
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
a227f08343
Cleanup: Use std::string for operator props popup arguments
The title and confirmation text are stored in a string anyway,
we might as well use that type for the arguments.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
bd22059752
GPv3: Add initial weight paint mode support
This makes it possible to enter and exit weight paint mode in Grease Pencil 3.
No other functionality is added for now.

Pull Request: #117945
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
18218a5e1d
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
2a2eeb8195
Fix: Operator popup crash with default arguments
Caused by a227f08343.
Thanks to Guillermo Venegas for reporting.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
680b9a9c35
Merge branch 'blender-v4.1-release' into main
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
661e0e5fdc
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
b503a37808
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
67c12236e6
GHOST/WIN32: remove start time offset from getMilliSeconds
This isn't necessary and has been removed from macOS & X11,
Wayland never did this.

Besides removing the offset GetTickCount() has been replaced by
GetTickCount64 to prevent 32bit rollover when high resolution timers
aren't supported.

Ref !117618
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
8f553391e5
Fix division by 0 in tree view drawing
Would happen when there is no View2D data, like in popups.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
412b279629
Build: unbreak building flex on Rock8 Linux from aclocal-1.16
Flex's bundled configure depended on aclocal-1.15 which has been
updated to 1.16.

Resolve by regenerating configure files on Linux which in turn adds a
new dependency on texinfo.
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
510a7ff452
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
aead8a0428
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
b28e6751f9
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
000bed915d
Cleanup: replace magic numbers with event value, improve function name
Use a more concise name for event type conversion.
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
cb514b9e9d
Merge branch 'blender-v4.1-release'
763b3b3b12 EEVEE-Next: Change light_attenuation_facing
Take light shape into consideration and do a small
fade to avoid abrupt lighting changes.
This fixes quite a lot of light leak but doesn't
fix all of them since light can still leak
during the fade. We could do this fade on the
lit side but then it break the working cases.
This does however fix the appearant sharp shadowing
that was visible on big light source.

Co-authored-by: Weizhen Huang <weizhen@blender.org>
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
73d4b148a3
Cleanup: fix formatting.
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
fa8c7e1dfe
Merge branch 'blender-v4.1-release'
dfec8171cc Modifiers: Increase the length of name strings in ModifierTypeInfo
These name fields run out of space for some of the new Grease Pencil
modifiers, like "GreasePencilEnvelopeModifierData". Only one of these
strings is stored for each modifier type, so this should have almost no
impact on size.

Pull Request: #117980
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
179430857d
GPv3: Add and reorder menus to follow GPv2 menu layout
This PR add missing menus, reorder and remove some redundant menu titles to follow the GPv2 menu layout.

Pull Request: #117959
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
9c0bb3d8f9
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
da2d3be202
GPv3: Lattice modifier
Ported lattice modifier from GPv2.

The `LatticeDeformData` is no longer stored in the modifier data, but calculated on-the-fly like in the mesh deform modifier. This is quite trivial data and only stores deformed positions of the lattice, so not really worth the effort and complexity of caching it.

Pull Request: #117955
8303bb167b Add runtime field on the Scene
For C it is an opaque pointer, for the C++ it is a class which is
defined in BKE_scene_runtime.hh.

The runtime field ensured to exist after file load, and after new
scene is added. The field is not copied when scene is copied, and
instead the copy of the scene has its own runtime field. If any of
the fields in the runtime are desired to be copied it needs to be
done explicitly.

Currently unused, but is planned to be utilized for the upcoming
compositor timing functionality,

Pull Request: #117978
2b0caf00a8 Refactor: RNA property undo push only when there is an owner ID
RNA pointers should always have valid owner IDs. And most structs
using STRUCT_UNDO do not need it because the owner is a UI datablock
which already determines if undo is needed.

With this change, it is possible to have structs used both in UI and scene
datablocks and have undo work depending on the owner. This is needed for
collections storing operator properties for export (#116646).

Pull Request: #117640
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
f312c07a1d
Merge branch 'blender-v4.1-release' into main
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
2c8de207b7
GPv3: Dash modifier
Reimplements the "Dash" (aka Dash-Dot) modifier of GPv2.

Pull Request: #117758
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
7b44c2ffb3
Merge branch 'blender-v4.1-release'
1f35dc9d48 Grease Pencil: Fix zero default hardness created by the opacity modifier
Opacity modifier can also change hardness. It was creating the curve
"hardness" attribute but using the default zero value. Hardness should
be 1.0 by default.

Pull Request: #118000
74b8f99b43 Render: Merge EEVEE and Cycles motion blur settings
Merge duplicated motion blur settings between Cycles and EEVEE,
and move them to `RenderData`/`scene.render`:
* `scene.cycles.motion_blur_position` -> `scene.render.motion_blur_position`
* `scene.eevee.use_motion_blur` -> `scene.render.user_motion_blur`
* `scene.eevee.motion_blur_position` -> `scene.render.motion_blur_position`
* `scene.eevee.motion_blur_shutter` -> `scene.render.motion_blur_shutter`

On the C/C++ side, this also renames `RenderData::blurfac` to
`RenderData::motion_blur_shutter`.

Pull Request: #117913
a39e8a4ab9 Cleanup: Use StringRef instead of C strings in CustomData API
This simplifies some code. It may improve performance slightly too,
because of faster string comparisons with a known length.

Pull Request: #117996
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
4196cbd175
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
25b71bc9c1
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
fb6324bdd0
Fix: GPv3: Draw tool not writing hardness attribute
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
30f8dfc474
Cleanup: Fix string format warning after recent commit
63a4c03b09 Refactor: EEVEE-Next: Light-probe management and structure
This cleanup and centralize lightprobe object management
into the LightProbeModule as it was always intended.
The other modules are kept for data / rendering management.

A few logic were simplified along the way.

Rename a lot of defines and classes for more consistency.

No functional change expected.

Pull Request: #117941
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
a1ceeef2f9
Merge branch 'blender-v4.1-release'
7e8fd2cc2c Fix: GPU: Fix closure evaluation order
EEVEE-Next can only store data for a single (global) closure at a time,
which, when combined with ShaderToRGB nodes, requires extra care in the
order that closures are evaluated.
For example:
![image](/attachments/0c56613f-3515-40a2-bf0e-282a8a99d64e)
Here, after `ntree_shader_shader_to_rgba_branch` there will be 2 Diffuse
nodes (the original and a copy for the ShaderToRGB branch).
However, the generated code order will be something like this:
```
Diffuse (original)
Diffuse (copy)
ShaderToRGB // This resets closures
Mix
```
So while the original node is technically "evaluated", the closure data
is reset after ShaderToRGB.
This patch updates the code generation to ensure closure evaluation is
ordered taking ShaderToRGB branches into account, so the generated code
looks like this:
```
Diffuse (copy)
ShaderToRGB // This resets closures
Diffuse (original)
Mix
```
This also fixes ShaderToRGB support for AOVs, removes unused code, and
fixes several bugs that I've found along the way that were harmless for
EEVEE but broke EEVEE Next.

Pull Request: #117767
7f5f37ea65 Cleanup: Simplify asset metadata copying
Use `BLI_strdupn` instead of repeating the same logic a bunch of times.
Use StringRef where StringRefNull isn't necessary, and use StringRefNull
instead of a std::string reference in one case.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
ca259f751d
Cleanup: Remove unused parameter
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
2ec7ab066f
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
239f307eb4
Fix missing keymaps for UV editor tools
Regression in fa77e9142d
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
67e3704a45
Merge branch 'blender-v4.1-release'
467a132166 Compositor: Implement per-node execution time report
Visually it is the same as the execution time implemented for the
geometry nodes, and it is to be enabled in the overlay popover.

The implementation is separate from the geometry nodes, as it is
not easy or practical to re-use the geometry nodes implementation.

The execution time is stored in a run-time hash, indexed by a node
instance key. This is similar to the storage of the mode preview
images, but is stored on the scene runtime data and not on the node
tree. Indexing the storage by key allows to easily copy execution
statistics from localized tree to its original version.

The time is only implemented for full-frame compositor, as for the
tiled compositor it could be tricky to calculate reliable time for
pixel processing nodes which process one pixel at a time.

Pull Request: #117885
69e0e9f19f GPv3: Assert drawing before first frame
Assert at `BLI_assert(active_layer.has_drawing_at(current_frame))`
New keyframe is not added when brush draws on a frame which is before
the first frame that actually contains the drawing.

Pull Request: #117983
a18324ff10 Fix compilation error when WITH_COMPOSITOR_CPU is OFF
The render only uses `ProfilerData` for which it is enough to only
have header. No linking is needed to the bf_compositor for things
to work.

Pull Request: #118030
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
aa051f788d
Cleanup: New line at the end of file
Pull Request: #118032
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
1fb113848e
Fix: GPv3: Draw tool overwrites hardness value
The draw tool didn't skip over the hardness attribute when
initializing the rest of all the attributes with default values.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
9743d6992c
Compositor: Unify Variable Size Bokeh Blur node
This patch adjusts the Variable Size Bokeh Blur node such that it
matches between CPU and GPU. The GPU implementation is mostly followed
for the reasons stated below.

The first difference is a bug in the CPU implementation, where the upper
limit of the blur window is not considered, but the lower limit is.

The second difference is due to CPU ignoring outside pixels instead of
clamping them to border, which is done until an option is added to the
node to control the boundary condition.

The third difference is due to CPU ignoring the bounding box input.

The fourth difference is that CPU doesn't allow zero maximum blur
radius, which is a valid option.

The fifth difference is that the threshold option, which is only used
for the Defocus node, was considered in a greater than manner, while it
should be greater than or equal. Since the default threshold of one
should allow a blur size of one.

The GPU implementation now considers the maximum size of its input,
following the CPU implementation.

Pull Request: #117947
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
f2e27ef7b6
Cycles: Override World option per View Layer
This feature is useful for many production scenarios as it allows for the
creation of separate render passes with specific worlds. This would help
workflows that require different skies or other backgrounds for compositing.

Ref #117919

Pull Request: #117920
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
84aed88b91
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
91e54fdd83
Cleanup: Move BLO_readfile.h to C++
I added a new BLO_userdef_default.h header to contain declarations of
two global variables that are still defined in C files. Use of designated
initializers for large structs make those files harder to change.
Arguably this is a better header for them anyway.

Pull Request: #118015
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
c6b6714555
Clang-Format: Ensure new line at the end of files
Not all editors are configured by default to ensure new line at the
end of file.

To reduce noise and make code more uniform ensure the new lines are
ensured by the clang-format.

Pull Request: #118031
568c99d191 Fix #117989: GPv3: Cannot move Node(s) in Geo Node Editor in 'Edit Mode'
The transform system reacts to `CTX_GPENCIL_STROKES` in a special way
that is only useful in `SPACE_VIEW3D`.
There was a similar case fixed in 23e9ebfdbd, but there would be
multiple other places to also check the spacetype.

So now do this more generalized and only ever set `CTX_GPENCIL_STROKES`
if we are in editmode (that check existed before) **and** in
`SPACE_VIEW3D`.

Pull Request: #118042
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
01f2c32700
Merge branch 'blender-v4.1-release' into main
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
ee493b3c05
Fix: EEVEE Next: View Layer Motion Blur UI
Outdated properties after
74b8f99b43
c065ef94ee Readfile: Make 'alloc name' for ID type automatically generated.
Avoids having yet another `switch` case over all ID types.

Note that we could also add a string to the IDTypeInfo, but imho this is
a bit too limited in scope/interest to expose this outside of the readfile
code.

Pull Request: #117958
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
98231ea880
GPU: Optimize GLStorageBuf::read performance
Add a separate persistent mapped buffer where the main SSBO can be
copied, so its contents can be read from the CPU without stalling the
GPU.

Pull Request: #117521
b8bb5a0700 Fix: GPv3: Read/write of the parsubstr (parent bone name)
This is now an allocated string and needs to be mapped on file read.

Pull Request: #118048
899b53e9d8 Cleanup: Anim, add explanation to bone collection code
I had questions about my own code, so I answered them in a comment.

No functional changes.
09a2688684 Refactor `BKE_lib_query_unused_ids` API.
Add a new `BKE_lib_query_unused_ids_amounts` to query expected amounts
of deleted IDs. This function does not tag IDs in main anymore.

Factorize most parameters (and output data) into a new struct
`LibQueryUnusedIDsData`.

Part of PR #117304.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
0fd8f29e88
IDManagement: Update the Purge operator to display an interactive popup.
Make the 'purge' operation show an interactive popup by default, with
a preview of the type and amount of data-blocks to be deleted.

Idea and initial UI/UX design are from @Harley (see PR !117242).

Pull Request: #117304
6f7ac2be53 VSE: Simplify and speedup sequencer cache drawing
5 years ago (18b693bdbd) part of cache rendering was converted to not
draw one quad at a time. However the other part (drawing strip
backgrounds when cache visualization is on) was left still drawing one
quad at a time.

Now that sequencer timeline drawing code has SeqQuadsBatch that batches
arbitrary number of things for drawing fairly easily, the existing
cache drawing batching code can be simplified to just use that, and
the background code changed from immediate quad drawing to use the
batcher.

Sprite Fright edit, whole timeline visible, all caches visualized and
full: `draw_cache_view` on Windows/Ryzen5950X goes 2.40ms -> 0.16ms.
And there's less code.

Pull Request: #118027
30a22b92ca Cycles: Rename SSE4.1 kernel to SSE4.2
This commit updates all defines, compiler flags and cleans up some code for unused CPU capabilities.

There should be no functional change, unless it's run on a CPU that supports sse41 but not sse42. It will fallback to the SSE2 kernel in this case.

In preparation for the new SSE4.2 minimum in Blender 4.2.

Pull Request: #118043
4c50e6992f UI: Configurable Layout Separators
Ability to create vertical bar separators in horizontal layouts,
horizontal lines in popovers, and vertical (non-line) spacers in menus.

Pull Request: #117310
f21b5663e2 Cleanup: Update naming in mesh DNA header comments
Also attempt to improve wording on a few of the descriptions.
45e7827898 Clenup: Move BLT headers to Cpp.
Noisy but fairly straight forward.
b21ceece05 Cleanup: Move `BKE_blender.h` to CPP header.
Also fix comment in `build_files/cmake/macros.cmake`, CMake blender version
parsing depends in the (still C) `BKE_blender_version.h` header now.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
6c6a3b8afc
Cleanup: make format.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
eaeaf8322c
BLI: Bump SSE check from 4.1 to 4.2
This will be the new minimum for Blender 4.2, so check for the SSE4.2 flag and update the function name.

Pull Request: #118058
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
48390d018d
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
567a33ab32
BLI: Fix non-square matrix print (`cout<<`).
The iterations through the rows and columns where flipped.
This would cause invalid memory to be accessed and an assertion
error in debug mode.

Note: This is only fixing an error with non-square matrix printing
and has no effect on square matrices.

Pull Request: #118076
28e771372b Cleanup: wrap lines for in CMake's build-environment for readability
- Commands which have arguments split over multiple lines use
  indented lines.
- Wrap lines where multiple commands run using "&&".
- Blank lines between multiple commands helps the text from becoming
  too dense.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
727d47c015
Cleanup: move convexhull_2d to C++
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
3b809ac99b
Cleanup: minor changes to convexhull_2d
- Function style casts.
- Use reduce indentation, use continue.
- Replace argument "n" with "points_num".
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
bb5b4b1f2f
BLI: add comparison operators for IndexMask
Support `==` and `!=` operators for `IndexMask`.

Pull Request: #117814
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
c3b7f76e5f
BLI: support repeating index masks
This adds two new constructors to `IndexMask`:
* `from_repeating(mask_to_repeat, repetitions, stride, initial_offset, memory)`:
  It allows repeating an existing index mask with a stride.
* `from_every_nth(n, indices_num, initial_offset, memory)`: Creates an index
  mask like `{0, 2, 4, 6, ...}`.

`from_every_nth` is implemented in terms of `from_repeating` which is optimized
to handle this case (and other cases) very efficiently.

Pull Request: #118084
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
5146e118c5
Fix broken MacOS builds after recent refactor.
For some reasons IDE did not search in MTL OSX files...
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
3e0d77c80f
Build: macOS support for "make source_archive"
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
835b9a506d
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
34feee3499
Cleanup: Remove unused internal FFMPEG presets
Formats like VCD and SVCD are obsolete, others are done via Python.

Pull Request: #118069
b91918564d Tests: add tests for convexhull_2d
Move BLI_convexhull_aabb_fit_points_2d to a public function to be able
to compare compare fitting one convex hull with a simple reference
method.

One test is disabled as it exposes an error in convex hull calculation
which needs further investigation.
f4f97ea979 Cleanup: comments in convexhull_2d, correct variable name
Also remove BLI_ prefix from static function.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
8f09fffef7
Cleanup: replace qsort with std::sort
Also replace the PointRef struct with an integer array as this was
a workaround for `qsort` not taking additional arguments.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
0bf9b10a93
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
18b594075c
Fix #118034: Cycles: Driven View Layer property not considered in realtime
The issue was caused by Cycles doing dependency tracking on its
side, relying on the fact that view layer needs to be tagged as
modified when its properties change.

This was not the case when custom property on the a view layer is
modified via a driver.

Now the dependency graph will tag IDs which generic properties did
change as ID_RECALC_PARAMETERS, giving it a chance to render engines
to react to it.

Since this is quite generic code which might have unforeseen side
effects the change is not targeted to the current release branch.

Note that this chaneg does not fix the #103140, as the issue there
is use of RNA path to another data-block, without the node tree
registering relation to that data-block.

Pull Request: #118134
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
3b3eace193
code_clean: fix error running header_clean
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
4618db7f5a
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
fb81bbaa60
Tests: disable BLI_convexhull_2d_test which fails on macOS
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
16c1e84c6c
Fix: GPU: Fix shader builder option not building
This was caused by the recent change in DNA headers
making all extern data C++.
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
98c0802ab0
Merge branch 'blender-v4.1-release'
a4051b31d5 Fix #118135: Make sure the new active index is always valid
When deleting all the segments the active index is generally 0. Adding a
new segment increments the active index, which pushes it out of range.
The code should not expect active index to be inside the current range.

Pull Request: #118143
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
f3c55b9f9c
Cleanup: Remove unused DerivedMesh function
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
b0b6bc86ab
Cleanup: Use more standard face corner naming in mesh normals code
Mostly replace "ml" with "corner"
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
d434ef6566
Docs: Add comments to node tree runtime struct clarifying design
Currently we have some old code from shader/compositor/texture nodes
that stores runtime data during and after evaluation on the node tree
itself. This is meant to be avoided, since the node tree is just meant
to be evaluation _instructions_.

Pull Request: #118056
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
c48ea92429
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
7ca46bb25d
Merge branch 'blender-v4.1-release'
1c77779160 Refactor: Store a 'Mesh' in the editmesh snap cache and use it for snapping
In this commit, a temporary mesh is created representing the edit mesh.
This mesh is then used in the Edit Mesh snapping system instead of the
BMesh.

By using a Mesh object for snapping, we remove a considerable amount of
code and use a more optimized version of snapping.

This simplifies the code and makes it easier to implement new features.

## Performance test: Face + Edge + Vert
|        | Cache     | Gen. Snap |
|--------|-----------|-----------|
| Before | 680.88 ms | 0.1250 ms |
| After  | 489.06 ms | 0.1064 ms |
| Improv | 28.65%    | 14.88%    |

## Performance test: Face
|        | Cache     | Gen. Snap |
|--------|-----------|-----------|
| Before | 293.90 ms | 0.0230 ms |
| After  | 411.92 ms | 0.0256 ms |
| Improv | -40.15%   | -11.30%   |

Pull Request: #117047
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
3ac9babe35
Fix #118087: Remove Bad Spacing Introduced With #117310
This reverts to the exact prior spacing values for layout separator
item, so only difference is vertical spacing if vertical bar.

Pull Request: #118151
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
d691ed2f3b
GPU: Use std::string instead of C strings for code gen output
The benefits are removing unnecessary reallocations of the string data
and unnecessary recalculations of the size, better type safety, and more
automatic memory management.

Pull Request: #118045
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
4f68fa453f
Fix compiling after previous fix in release branch
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
1410615079
Nodes: expose multi-input sockets to custom nodes in the Python API
Currently the multi-input sockets are not exposed to the custom nodes
Python API. This makes some features cumbersome to implement if one
wants a node to process an arbitrary number of inputs.
One workaround is to make inputs duplicate themselves when a link is
created, but a proper multi-input would be easier to use for both
add-on developers and users.

This commit exposes a new `use_multi_input` boolean parameter when
creating a new node socket. This makes it possible to declare a
multi-input, while still leaving the existing `is_multi_input`
property read-only so that existing nodes cannot be made unstable.

The parameter is optional so existing scripts stay compatible. It also
raises an error when used on output sockets, since it makes no sense
for those to be multi-input.

The Custom Node Tree Python template was updated to reflect this
change by making one of the inputs of the custom node multi-input.

Pull Request: #114474
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
751d9c5999
Fix: VSE transition strip factor is not clamped
Previewing strip outside of it's boundary caused overflow.
Clamp the factor to prevent overflow.

Pull Request: #118086
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
39f0dbf47a
Cleanup: use FILE_MAX instead of PATH_MAX for operators
FILE_MAX is used by operators, avoid an MSVC specific include.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
eb318b7733
Cleanup: use FILE_MAX instead of PATH_MAX for paths based on blend files
The blend file path is limited to FILE_MAX.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
b372ebae68
Cleanup: unused headers for source/blender/editors
Remove 1317 includes from editors.
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
de18b629f0
Cleanup: unused includes in source/blender/blenlib
Remove 30 includes.
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
9e4129feeb
Cleanup: unused includes in source/blender/blenkernel
Remove 397 includes.
c29fdd1e12 Fix error in recent blenkernel cleanup
The BLI_endian_defines.h include was removed in [0] because
the resulting object files were unchanged on little endian systems.
Using -Werror=undef with GCC prevents this from happening in the future.

[0]: 9e4129feeb
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
6cc6ccecd0
Cleanup: unused includes from source/blender/windowmanager
Remove 56 includes.
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
bdd9f32f84
Cleanup: unused includes in source/blender/modifiers
Remove 359 includes.
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
1394907474
Cleanup: Move uvproject.c to C++
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
1a3b5452c4
Cleanup: unused includes in source/blender/nodes
Remove 166 includes.
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
cc154144ef
Cleanup: unused includes in source/blender/blenloader
Remove 45 includes.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
7747b8c944
Fix convexhull_2d_test for macOS & re-enable the test
Use EXPECT_NEAR instead of EXPECT_EQ to account for a differences in
atan2 implementation on macOS, more generally relying on exact
float comparison for tests is error prone.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
680701e915
Cleanup: spelling in comments
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
c8961d150d
Tests: update BLI_convexhull_2d_test since fixing vertical segments
Changing the angle was needed as there is no longer a duplicate
end-point added to the polygon for vertical lines.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
da2ba2f3f6
Windows: Compile error due to missing header
Caused by 9e4129feeb
Error: `undeclared identifier M_PI and M_PI_2`

Pull Request: #118185
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
9ad127780a
Tests: remove unnecessary fmod in BLI_convexhull_2d_test
The intention was to accept both 0 and M_PI however this isn't needed
as the result is always M_PI.

See !118186 for details.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
866974ae56
Cleanup: unused includes in source/blender/animrig
Remove 13 includes.
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
0e4f9104bc
Cleanup: unused includes in source/blender/gpencil_modifiers_legacy
Remove 159 includes.
f85538a56b RNA: unify property flag descriptions between enum and non-enum flags
These flags (like `'HIDDEN', 'SKIP_SAVE', etc.) mean the same thing when
used on enums and non-enum properties. Now they actually use the same
description definition in the source code, ensuring that any
improvements will apply to both.

No changes to the actual messages. Just using them for both enums and
non-enum property flags.

Pull Request: #118036
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
ff4a473ad4
RNA: update property flag descriptions
Add new descriptions to the `PROP_HIDDEN`, `PROP_SKIP_SAVE`, and
`PROP_LIB_EXCEPTION` flags. For the former two, these are more
explanatory than the previous descriptions. For the latter it's the
first ever description.

Personally I don't think "Do not use ghost values" was particularly
helpful, as the concept of "ghost values" isn't actually that well known
(compared to generally how many people use `bpy`). Granted, it's
described at [1], but IMO if the term "ghost values" is to be kept here,
it should include a link to that page.

[1]: https://docs.blender.org/api/current/bpy.types.bpy_struct.html

Pull Request: #118036
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
888c4d0766
BLI_convexhull_2d: optimize AABB fitting method
Previously the bounding box was calculated for each rotation,
even though the loop would early exit if the area exceeded the best
known area, this meant the areas of the bounds was checked for
each point too. This scaled poorly, close to O(n^2).

Replace this with simple logic that keeps track of the indices
at the bounds, advancing them forward for each rotation.

This is around ~140x faster for a hull with 10k points on my system.

Note that there is potential for other improvements although
the cases where this new method doesn't perform well are quite specific
and faster than checking all points, see code-comments for details.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
2f0b293da3
GPv3: Add function to retrieve falloff factor for multi frame editing
This PR prepares GPv3 for calculating falloff factors when working in  multi frame editing mode.

The falloff popover is added to the UI.
A `float multi_frame_falloff` is added to `MutableDrawingInfo`. This is a factor from 0.0 to 1.0f.
A `retrieve_editable_drawings_with_falloff()` is added to the utility functions, which retrieves the falloff factor for each drawing when
multi frame falloff is enabled.

To avoid a copy, the return type of  `retrieve_editable_drawings()` and friends is changed from
`Array<MutableDrawingInfo>` to `Vector<MutableDrawingInfo>`.

Pull Request: #118108
2f42782fa8 Fix: GPv3: Memory leak after conversion
The `LayerMask` structs were allocated with just using `new`.
They should use the guarded allocator. This
fixes a memory leak reported by ASAN.
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
cd0e41c73e
BLI: improve printing of IndexMask
The new printed format is like this: `(Size: 503 | 0-499, 555, 699, 900)`.
cb37fe751b Fix #118184: crash deleting a material output node
Caused by 7e8fd2cc2c

Code added in above commit didnt take into account that we might have no
output node in the tree.

Pull Request: #118202
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
749768db5b
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
2b02d6c1e2
GPv3: Include hide/reveal operators in layer menu
Similar to gpv2 layer panel, add these operators in gpv3 layer popup
menu.

Pull Request: #118199
7c90018f23 CLI: make "-noaudio" implicit with "-b/--background"
Running background mode now behaves as if the "-noaudio" was passed in.

The -setaudio command now has a "Default" option which can be used
in the rare cases audio playback is desired in background mode. e.g.

  blender --background -setaudio Default

Ref !118192
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
2119d271e0
Cleanup: remove "-noaudio" argument in background mode
This is no longer needed as background mode implies -noaudio.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
1dd163c2f7
Fix: build error with 'WITH_CXX_GUARDEDALLOC'
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
d284941e89
Fix #99172: Sculpt Paint Tool: Strength doesn't use unified paint settings.
Previously in the function brush_strenght , the SCULPT_TOOL_PAINT case didn't took into account the unified strength parameter.

Pull Request: #118109
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
5baef63a20
BKE ID remap: Refactor: Remove C API around CPP `IDRemapper`.
The ID remapper code was already largely defined in a CPP struct
(IDRemapper). Make this an actual class, and remove the C API wrapper
around.

This makes the code cleaner, easier to follow, and easier to extend or
modify in the future.

Pull Request: #118146
778945a2cd Fix: EEVEE-Next: NaN in surfel lighting with area lights
This fix broken lighting in volume probe baking if
any area light is present in the scene.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
9fb17c1ca4
Workbench: Skip per-sample sync in image renders
Use the same method as viewport image renders.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
8b46fdeab8
Fix: Translate node crashes for single inputs
The Translate node crashed for single inputs in the Full Frame
compositor, that's because it always assumed image inputs. So fix this
by handling the single value case.
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
21cea65ea6
WM: Add runtime struct
Currently most of the data stored in `wmWindowManager` is runtime
data not saved to files. It's confusing that it's declared in DNA then. That
also prevents us from using C++ features. This commit adds an initial
runtime struct. Moving data there can be done as a separate step.
Initially I wanted to look at moving the `ReportList` system to C++.

The runtime struct has to be defined in the blenkernel module because
the members are (will be) used there in a few places.

Pull Request: #118157
1cfe9dd08c Geometry Nodes: Matrix socket type, attribute type, and initial nodes
Implements the design from #116067.
The socket type is called "Matrix" but it is often referred to as "Transform"
when that's what it is semantically. The attribute type is "4x4 Matrix" since
that's a lower level choice. Currently matrix sockets are always passed
around internally as `float4x4`, but that can be optimized in the future
when smaller types would give the same behavior.

A new "Matrix" utilities category has the following set of initial nodes"
- **Combine Transform**
- **Separate Transform**
- **Multiply Matrices**
- **Transform Direction**
- **Transform Vector**
- **Invert Matrix**
- **Transpose Matrix**

The nodes and socket type are behind an experimental flag for now,
which will give us time to make sure it's the right set of initial nodes.
The viewer node overlay doesn't support matrices-- they aren't supported
for rendering in general. They also aren't supported in the modifier interface
currently. But they are supported in the spreadsheet, where the value is
displayed in a tooltip.

Pull Request: #116166
ba6e6e96ed EEVEE-Next: Move ray type change out of view loop
Avoid needlessly pushing the uniform_data to the GPU.
6802d87329 EEVEE-Next: Remove DeferredProbeLayer intermediate class
This class is redundant as it is never instanced more
than once.
65d42af3e3 Fix: EEVEE-Next: Broken light capture on emission only materials
This was cause by uninitialized fragment output.
13f0d7bd47 Fix: EEVEE-Next: Uninitialized variable in volume probe loading
The spherical_harmonics_triple_product was not working as
expected and produced NaNs.
88228a84d1 Fix: EEVEE-Next: Another uninitialized variable in volume probe loading
The spherical_harmonics_triple_product was not working as
expected and produced NaNs.

Cleanup to avoid more confusion.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
83c3da2e55
EEVEE-Next: Improve render test script
- Avoid using `except: pass` so broken script don't go
undetected.
- Increase resolution of volumes
- Increase motion blur step resolution
- Fix setting on all scenes
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
9cf304160b
BLI: Add missing overrides to some generic virtual array implementations
The lack of these functions in the "single trivial value" and "sliced
GVArray" implementations caused some code to call fack to the base
class functions. Those are much slower since they involve a virtual
function call per element. For example, this changed the runtime of
creating a new boolean attribute set to "true" on one million faces
from 3.4 ms to 0.35 ms.

Pull Request: #118161
3f5310cc59 EEVEE-Next: Use hair strip in render tests
This makes many render tests match cycles reference
much better.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
8fee7c5fc7
UI: Line Under Title for Properties Dialogs
When a popup dialog includes properties, add a line under the title.

Pull Request: #118051
2a2effc0c2 Workbench: Share shader cache across instances
Improve instance creation performance by sharing compiled shaders
across instances. (See #114990)

Pull Request: #118062
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
7b77c2ebd4
Cleanup: Remove unused 3D view function declaration
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
5ba6f6d833
Cleanup: Replace typedef keyword in C++ headers
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
c9bd326255
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
1a74b80d42
Refactor: replace 'isect_ray_plane_v3' with 'isect_ray_plane_v3_factor'
By using `isect_ray_plane_v3_factor` we avoid calculating the v4 plane.
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
e6e4e6c287
Optimization: avoid calculating the contraint plane when transforming
In most cases, we only need the normal of the plane.

It's a micro-optimization, the difference is very subtle.
3f8cd44485 Cleanup: move BLI_strict_flags.h last, not that it should be kept last
Also add a note in the header why it should be kept last.
d7dfbce288 code_clean: exclude BLI_strict_flags.h from removal
As this is only added to set strict warnings, cleaning logic would
remove as the compilers output is unchanged.

Support excluding headers from removal, others can be added if needed.
1111dff0a6 Tests: improvements to BLI_convexhull_2d_test
The convex hull tests included a reference AABB-fitting function for
comparison which was used to validate the optimized implementation.
This wasn't great as it depended on matching exact return values and
didn't test the logic of AABB-fitting worked usefully.

Replace this with a more general test that creates random polygons with
known bounds, apply a random rotation & translation, then use
AABB-fitting to un-rotate the points, passing when the bounds are no
larger than the size of the generated input.

Details:

- Make BLI_convexhull_aabb_fit_hull_2d a static function again as it was
  only exposed for tests. Use BLI_convexhull_aabb_fit_points_2d instead.
- Remove brute force reference implementation from tests,
  moving this to an assertion within convexhull_2d
  (disabled by default since it's quite slow).
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
291ca4ec8e
Cleanup: unused variable, redundant strlen call
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
156fffbfde
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
8a4c45a202
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
a1047e0689
Compositor: Make CPU Level node output single value
This aligns the node behavior to GPU compositor.

The implementation is a bit of a stretch of the full-frame
constant-foldable operations, but this is as good as it can
get in a short time.

The alternative could be to somehow inject a SetValue
operation, but since it expects ahead-of-time known value it
is not as straight forward.

Pull Request: #118248
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
2cec7e3aa5
Fix levels node regression in tiled compositor
Caused by previous change for full-frame compositor.

The determine_canvas() is still used by the tiled compositor,
so restore it to the state which makes both compositors to work.

Pull Request: #118254
1f8fac5082 Fix: EEVEE-Next: Broken light baking from script
The G.is_break was not properly set back to false
and the data was never copied back to the original
object.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
7cc4339ce2
EEVEE-Next: Improve tests appearance
This improves the volume probe resolution and
dimensions to envelope most test scenes.
This doesn't increase the baking time
that much as most of the baking time is
spent compiling shaders.
a8a05ebba1 Compositor: Switch CPU compositor to Full-Frame
The tiled compositor code is mainly still around, which is only
expected to be a short-lived period. Eventually it will also be
removed.

The OpenCL, Group Buffers, and Chunk size options are already removed.

Pull Request: #118010
da238bdb2f Fix: Realtime Compositor tests use CPU compositor
The Realtime Compositor uses the CPU compositor. That's because the enum
identifier of the Realtime Compositor changed to GPU, so update the test
script accordingly.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
d27a1c47fa
Nodes: hide uneditable input sockets in sidebar
This hides some labels from the sidebar which look a bit out of place.

Pull Request: #118264
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
aefd930317
Fix: Build error when not using unity build
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
bdd15e827f
Fix: EEVEE-Next: Crash in bake caused by motion blur
Motion blur needs to be disabled for volume probe baking.
1c0f374ec3 Object: Move transform matrices to runtime struct
The `object_to_world` and `world_to_object` matrices are set during
depsgraph evaluation, calculated from the object's animated location,
rotation, scale, parenting, and constraints. It's confusing and
unnecessary to store them with the original data in DNA.

This commit moves them to `ObjectRuntime` and moves the matrices to
use the C++ `float4x4` type, giving the potential for simplified code
using the C++ abstractions. The matrices are accessible with functions
on `Object` directly since they are used so commonly. Though for write
access, directly using the runtime struct is necessary.

The inverse `world_to_object` matrix is often calculated before it's
used, even though it's calculated as part of depsgraph evaluation.
Long term we might not want to store this in `ObjectRuntime` at all,
and just calculate it on demand. Or at least we should remove the
redundant calculations. That should be done separately though.

Pull Request: #118210
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
0c279526eb
EEVEE-Next: Render Tests: Bake world in volume probes
Improves quality. Doesn't impact performance
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vexp-code-experimental-windows-amd64 Build done. Details
buildbot/vexp-code-experimental-darwin-x86_64 Build done. Details
buildbot/vexp-code-experimental-lint Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
buildbot/vexp-code-experimental-linux-x86_64 Build done. Details
buildbot/vexp-code-experimental-coordinator Build done. Details
buildbot/vexp-code-experimental-darwin-arm64 Build done. Details
a52323d711
Cleanup: Move BKE_duplilist.hh to C++
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
48dee674f3
UI: Changes to Menu Separator Padding
Add interior horizontal padding to menu separator lines.

Pull Request: #118227
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
1c3c1e7776
Cleanup: Simplify asset metadata copy function
Also move the destructor declaration to be consistent with the style guide.
da72cdee5e EEVEE-Next: Add compute shader to downsample sphere probe
This has no functional change except that it might speed
up probe updates since only updated pixels are processed.

Ref #118256
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
7b328390f4
Cleanup: EEVEE-Next: Remove unused mip level in remap shader
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
33af56f13e
GPU Compositor: Avoid global DST lock on Linux
It is not required to hold the lock of DST when performing
compositing on GPU, as the compositor implementation uses the
GPU module directly, bypassing the draw manager.

However, currently this is known to cause issues on macOS,
and is not yet tested on Windows.

On Linux it works correctly, and avoids lock while compositor
is running.

There could still be a small locking hiccup, when the GPU
context is created and disposed. This needs to be looked
into.

Pull Request: #118286
faf056f17b Cleanup: Move mesh utility to create mesh without attributes
Mesh with no attributes is used to build new mesh from scratch.
Some data can be shared, so there is no reason to have allocated attributes.

Pull Request: #118297
57586df687 Cleanup: Remove unnecessary asset system functions
These functions appear to be thin wrappers around the C++ classes
that previously weren't accessible in C code.
a24d6e7012 Cleanup: Use StringRef instead of StringRefNull
The called function here only needs StringRef, that can apply here too.
61e61ce0e1 Cleanup: Use Span instead of Vector const reference
Span is preferrable since it's agnostic of the source container,
makes it clearer that there is no ownership, is 8 bytes smaller,
and can be passed by value.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
b9ed6ce0a5
Refactor: Various C++ improvements to collection property search
- Use FunctionRef to avoid passing a separate user_data pointer
- Use std::string in arguments struct
- Add search items in one loop after gathering search items
- Use Vector of unique_ptr for search items instead of linked list
c4d0e88e6e Fix: Asset browser crash after recent cleanup
After 57586df687. Turns out the library can be null here.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
c07132b43b
Cleanup: Make format
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
c838111571
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
5c87dfd269
Cleanup: use BLI_time_ prefix for time functions
Also use the term "now" instead of "check" for clarity.
a3bf395a10 Core: IDRemapper: Refactor handling of 'never null' ID usages.
Existing code would allow tagging on request IDs which had a 'never
null' usage potentially cleared by the remapping operation (e.g. if an
Object obdata would have been set to `nullptr`).

While this worked for the current extremely restricted usecase (ID
deletion), this was not the best design, as it forced the ID remapping
user code to be very careful about its own usages of the `LIB_TAG_DOIT`
tag.

This commit replaces internal tagging by adding such IDs to a Set in
`IDRemapper` class, which user code can then use to find which IDs
(would have) had a 'never null' ID pointer cleared.

There are two additional changes induced by this commit:
* `BKE_libblock_unlink` `do_flag_never_null` parameter is removed.
  As it is not used in current codebase, simpler to remove than update
  the code to support it.
* `ID_REMAP_FLAG_NEVER_NULL_USAGE` option is renamed to
  `ID_REMAP_STORE_NEVER_NULL_USAGE`.
  In addition, its behavior is slightly modified:
  * Before, the owner ID would systematically be tagged if it had such
    'never null' ID usages, regardless of whether said ID usages (would)
    have actually been remapped to `nullptr`.
  * Now, the owner ID is only added to the `never_null_users` set if its
    'never null' usages (would) have been cleared.
f2e481a519 Core: Refactor id_delete.
This commit essentially:
* Remove the 'delete single ID' code path.
  The multi-deletion code has now be around for a long while, so we
  should be able to assume it is mature enough. It is also several times
  faster when deleting a lot of IDs at once.
* Move away from using `LIB_TAG_DOIT` ID tag in internal code, using a
  Set instead to store the IDs to be deleted.

Potential side-effects:
* The 'delete single ID' codepath (removed by this commit) was making
  some dangerous assumptions regarding order of IDs in Main and 'strong'
  dependencies between them. While these assumptions where presumably
  correct in current code/data model context, they were logically wrong
  and could have randomly cause bugs in the future.
* The sanitiing check on usercount performed in the case of the single
  ID deletion cannot be done anymore. Should not be that usefull
  anymore, as there are other places where IDs usercounts are validated.
* Performances:
  * The batch-deletion did not show any significant difference in speed.
  * Massively deleting IDs one by one however, showed a surprising 10%
    speedup.

Pull Request: #118283
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
59d59006c4
GPv3: Implement EditMode Undo.
Relatively basic and straightforward implementation.

Further optimizations are possible (and needed), especially regarding
the handling of caches.

Notes:
* All drawings are stored in each undo step. This is needed (also for
  Reference drawings), in case some drawings are added, removed or
  re-ordered between undo steps.
* The whole tree of layers is copied as-is, using the C++ classes copy
  constructors, so they only handle what these constructors copy
  (noticeably, the `Layer` copy constructor does not currently handles
   masks?).
* The active layer pointer is stored and restored by its name.
* The layer customdata is also duplicated using standard `BKE_customdata`
  API.

Pull Request: #117072
ffbc90874b ffmpeg: cache swscale contexts instead of re-creating them
ffmpeg's libswscale is used to do RGB<->YUV conversions on movie reading
and writing. The "context" for the scale operation was being created
and destroyed for each movie clip / animation. Now, maintain a cache
of the scale contexts instead.

E.g. in Gold edit, it only ever needs two contexts (one for reading
source movie clips since they are all exactly the same resolution
and format; and one for rendering the resulting movie).

During playback, on some of the "slow" frames (camera cuts) this
saves 10-20ms (Windows, Ryzen 5950X). Rendering whole movie goes
from 390sec to 376sec.

Pull Request: #118130
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
20145ea51f
Cleanup: Unused variable in release builds
Pull Request: #118312
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
7e66026fa0
Cleanup: odd doc-string formatting, match argument names in headers
Quiet argument name mis-match warning.
Assert that WM_event_timer_add takes a timer event type.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
4780cd3368
Fix: GPU compositor ignores border region
The GPU compositor does not take the border region into consideration,
which means it reads more than it should, leading to corruption. Fix
this by taking the border region into account when computing render
width and height.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
43996a54cf
GPv3: Lock/Unlock All Layers
Port the legacy lock/unlock all layers operator from GPv2.

Pull Request: #118259
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
76b0976500
GPv3: Multiple Strokes Modifier
This migrates the multiple strokes modifier to Grease Pencil v3.

Pull Request: #117796
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
b4c6c69632
ImBuf: do not clear newly allocated image pixels when not needed
In some/many cases, an `ImBuf` is allocated, and all the pixels are
immediately filled by some code. Doing the memory clear within allocation
is just memory traffic for no good reason.

Add a flag to skip initialization of ImBuf pixels (IB_uninitialized_pixels)
and use that in some parts of VSE effects/rendering/cache/scopes, as well
as image loading code.

Rendering out VSE movie, on Windows/VS2022/Ryzen5950X:
- Sprite Fright: 443sec -> 414sec (takes 93% of previous time)
- Gold previs: 367sec -> 325sec (takes 88% of prev time)

Pull Request: #118321
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
ed6f8c5b86
Fix #81948: Sculpt mode Annotation tool cursor conflict
This fix checks if the annotation tool is active in `bool SCULPT_mode_poll_view3d(bContext *C)` to hide the sculpt cursor .

Pull Request: #118255
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
49faea5f36
Fix #111345: Compositor uses entire viewport in camera view
The compositor assumes the entire viewport as its compositing space even
in camera view. The current design decision was to limit the compositing
space by the camera region only if the camera passepartout is opaque,
that is, areas outside of the camera are not visible.

This patch changes that behavior to always limit the compositing space
by the camera region. The downside is that areas outside of the camera
will be left uncomposited.

This is useful to match viewport compositing to final render compositing
in terms of maintaining the same space, but not necessarily the same
resolution. However, this still has the limitation that space will be
different when the camera region intersects the viewport, since we only
composite their intersection in that case.

Pull Request: #118241
8a388a39ea Fix #118276: IDs were remapped by mistake when copying in the VSE
All IDs in the current bmain were remapped while it should have only
been done for IDs in the dummy scene created for the copy operation.
b661b368c4 GPv3: Length modifier
This ports the length modifier to Grease Pencil v3.

Pull Request: #117124
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
1bf6d8b0b9
WM: Move report list to runtime struct
These reports were embedded in the window manager DNA,
but they were always cleared when reading it from files. It's clearer
to just not store the reports in files at all. I also moved the reports
initialization and freeing to the constructor and destructor of the
runtime class.

This is the only place `ReportList` was embedded in DNA, so
after this we can move that to use C++ features if we want.

Pull Request: #118329
af9709089e Cleanup: Remove unnecessary set curve type optimization
Now that attributes use implicit sharing, copying CurvesGeometry
is relatively cheap, and the complexity of this function isn't worth
the remaining optimization of avoiding user count updates.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
ca49998049
Cleanup: Make format
50a3a0253d Revert "EEVEE: Remove Thickness output"
This reverts commit 91b727028a.
The change was only meant for 4.1.
Thickness output is required for EEVEE-Next.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
91100fc6d4
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
f674e486e1
Merge branch 'blender-v4.1-release'
df0efda0d6 Refactor: IDTypeInfo: Add info about 'potentially used IDTypes'.
This data was 'hidden' away in a util in
`lib_query.cc`, which made it hard to discover and keep up-to-date.

However, as shown by e.g. #108407, critical low-level features in ID
management code, such as remapping, now rely on this information being
valid.

Also simplify `BKE_library_id_can_use_filter_id` and
`BKE_library_id_can_use_idtype` to make them more generic, relying on
IDTypeInfo to retrieve IDtype-specific info.

No behavioral changes expected here.
d083f69295 IDType: Add `FILTER_ID_` for deprecated IPO ID type.
Although this type is not much encountered anymore, it's simpler and
cleaner to have a FILTER value for all known ID types.
f21540f428 Cleanup: IDTypeInfo: Use `std::array` for the static array of ID types.
Also add a hard, direct failure in `id_type_init`, in case one ID type
is missing processing there.

No behavioral changes expected here.
f8541337bb IDType: Refactor some 'conversion' helpers.
Use IDTypeInfo data as much as possible, to avoid too many functions
`switch`ing over all ID type values.

Now only `BKE_idtype_idcode_to_index` and `BKE_idtype_idfilter_to_index`
do that, all others are using one of the above to retrieve the valid
IDTypeInfo and return data from it.

Also tweaked some namings to make them more consistent.

No behavioral changes expected here.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
0801fcd6b3
Cleanup: make format
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
75e9056cac
Geometry Nodes: support group ids in Sample Nearest Surface node
This adds group ids to the `Sample Nearest Surface` node. This allows e.g. finding
the closest point on a specific mesh island.

Three new sockets are added:
* `Group ID`: Is evaluated on the face domain and splits the input mesh into  multiple
  parts, each with its own id.
* `Sample Group ID`: Determines in which group the closest nearest surface is detected.
* `Is Valid`: Outputs true if a nearest surface was found, it's false if the group is empty.

Pull Request: #118150
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
d9d9ff1dcd
Nodes: hide shader input in node properties panel
This was missing in d27a1c47fa.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
d803b6acca
Cleanup: simplify usage of Map
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
551b846bcd
Merge branch 'blender-v4.1-release'
5ae0b0c7f4 Cleanup: use the term "sincos" in convexhull_2d for clarity
The 2D vector calculated from edge vectors represents sin & cos which
wasn't obvious.
82c753a940 GHOST/Wayland: drag & drop cleanup, minor changes
- Don't generate a drop event when the drop data failed to read.
- Remove redundant drop-buffer duplication.
07ff3bcb70 GHOST/Wayland: support dropping text
This matches X11's support for GHOST_kDragnDropTypeString.

Dropping URL's from a web-browser uses this mime-type.
9eadae51fc WM: support events that drop strings
Previously only dropping file-paths was supported by the WM logic,
even though GHOST supported strings.

This is used for dropping a text selection as well as URL's
(on X11 & Wayland).

Add WM_DRAG_STRING, created from GHOST's GHOST_kDragnDropTypeString.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
64843cb12d
UI: support dropping text into the text editor & Python console
The Python console only supports dropping a single line of text,
see code-comments for details.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
8cfcd64185
WM: add WM_drag_get_string{_firstline} accessor functions
Add utility functions to access the drag string with an "_firstline()"
to avoid having to in-line first line access.
e7ffe74920 Realtime Compositor: Support canceling evaluation
This patch adds support for canceling compositor evaluations for the
realtime compositor. Only the canceling of the Denoise operation is
supported for now. That's because inter-operation canceling is not
feasible since all work will have been submitted to the GPU driver
before the user is able to cancel. So some kind of blocking operations
would need to used to actually allow canceling, which is not something
we are going to investigate as part of this patch.

Pull Request: #117725
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
8dce17e2be
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
f590b36e62
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
71adac1c39
Cleanup: Typo in namespace
c790e6e49d OpenGL: Reduce Shader Switches
Specialization constants was always switching shader even when the
constants were not changed. An early exit path was never taken.

The performance improvement should not be noticable to end users.
But would match with the intention of the design of specialization
constants.

Pull Request: #118315
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
ace5c9af2a
GPv3: Vertex Weight Angle modifier
This ports the Vertex Weight Angle modifier to Grease Pencil v3.

Pull Request: #117846
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
7683449877
Cleanup: Unused function warning in Denoise node
The warning happens when OIDN is disabled as a build option.
975c226282 GPv3: Array Modifier
This migrates the Array modifier to Grease Pencil v3.

Pull Request: #117836
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
1077aebaa6
GPv3: Duplicate layer
Port layer duplicate operator to Grease Pencil v3.

Pull Request: #117974
19cbc687e8 Fix a few issues in GP legacy to v3 conversion operator.
* Use name of old GP data for the new one, _not_ the object name.
* Properly decrease usercount of old GP ID.

Pull Request: #118366
31b8323b93 Fix: GPv3: Move dvert copy out of parallel for
Since we're allocating new memory on the heap in the copy,
better to move this out of the parallel for
and avoid side effects.
eabb4f16ce Revert "Fix: GPv3: Move dvert copy out of parallel for"
This reverts commit 31b8323b93.

Allocating memory in parallel is fine as long as each threads only
writes to the memory it allocates, which is the case here.
0906201a4c Compositor: Fallback to a black color for invalid outputs
Currently, some compositor operations produce en empty output buffer by
specifying a COM_AREA_NONE canvas to indicate an invalid output, for
instance, when the Mask operation references an invalid mask. The
intention is that this buffer would signal that a fallback value should
fill the canvas of consumer operations.

The aforementioned behavior is currently implemented in a rather hacky
way, where it is implemented using the Translate operation as part of
canvas conversion in COM_convert_canvas, where the operation would clear
the entire buffer with zeros since out of bounds checking would always
take the out of bound case due to the empty buffer.

This behavior is problematic because we can't control the fallback
value, which would ideally be an opaque black color. Moreover, since
implicit type conversion happen before canvas conversion by design,
value typed buffers would eventually become transparent, which is rather
unexpected to the end user since float/value outputs can't have
transparency.

This is not a good design or implementation, but a redesign will be too
complex for now. So to fix this, we workaround it by handling the empty
buffer case explicitly in the Translate operation and fill the output
using a fallback black color, which works for both value and color typed
buffers, since this would also be the output of the value to color
implicit conversion.

Pull Request: #118340
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
54110c56c4
Merge branch 'blender-v4.1-release'
9ab72eae38 Compositor: Unify Texture node between CPU and GPU
The CPU and GPU implementations of the compositor Texture node sample
the texture at different locations, producing differences. This is
primarly an issue with half pixel offsets to evaluate the texture at the
center of the pixels.

The CPU compositor only adds the offsets if interpolation is disabled,
regardless if the texture is of type image or not. Further the offset
was wrong, since it was not a half pixel offset, but a full pixel one.

The offsets should always be added, since it won't make a difference in
the non interpolated case, and it should always be added especially if
interpolation is enabled. A comment in the old code mentions something
about artifacts, but it is possible that this is a consequence of the
wrong offset that was used.

This patch always adds a half pixel offset, following the GPU code.

Pull Request: #118377
9275d40934 GPv3: Minor Refactor of conversion code.
Essentially move the Object-handling logic also into
`bke::greasepencil::convert::`. This code will also be needed for
automatic conversion on fileread etc.

It also helps to keep all the conversion logic in one place (especially
since there is going to be way more done at object level - modifiers,
animation, etc.).

Pull Request: #118384
a5a3125fe1 Refactor: Remove unused move constructor for asset representation
This shouldn't be needed, and was incorrect anyway: It wasn't copying
the owner asset library pointer.
f15ad836e6 Revert "Improve wording"
This reverts commit 0e7c2bac14.

Didn't intend to push this to the main branch, and didn't notice it was
still on there when pushing.
2a03154041 Revert "Experiment: Add release notes PR link field to pull request template"
This reverts commit 439c8b62c3.

Didn't intend to push this to the main branch, and didn't notice it was
still on there when pushing.
8b31e8663b GPv3: Convert `editcurve` to bézier curves
In GPv2, strokes could be edited using bézier curve handles. This was implemented by creating an `editcurve` for a stroke that would store the handles and other attributes.
In GPv3, we can directly make use of the `CURVE_TYPE_BEZIER` and store the curve as a bézier curve.

Note: This PR only handles conversion. Not rendering or anything else.

Pull Request: #118386
6d387b3ba8 Cleanup: Use reference where null asset library is not possible
It should not be possible to end up with an asset representation that
does not have a valid pointer/reference to the asset library owning it,
it's injected via all constructors. So reflect that by using a reference
instead of a (possibly null) pointer.
921ce2fae8 Cleanup: Consistent use of "this" keyword in asset code
Follow the style guide for using `this->` to access non-private variables.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
8bca19ed12
GPv3: Layer Adjustment Conversion
This converts the "Layer Adjustments" from GPv2 into modifier setups in GPv3.

They include:
* Layer tint
* Layer thickness offset
* Thickness factor (for the entire object)

Both the "layer tint" and the "thickness factor" are converted using the existing modifiers.

Because the thickness modifier uses a factor instead of an offset, the "layer thickness offset" is converted to a geometry nodes modifier setup for each layer that adds an offset value to the radii instead of multiplying by a factor.

Pull Request: #118149
d9a1e906f5 Cleanup: GPv3: Add specific header for legacy conversion functions
Similar to `BKE_curve_legacy_convert.hh` and `BKE_mesh_legacy_convert.hh`

Pull Request: #118390
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
8ab23f0a6e
Assets: Return weak reference by value from asset representation
This is generally more flexible and less error prone. The struct
implements a proper descructorfor this anyway. That also makes the
separate free function unnecessary-- it's redundant with the destructor.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
d555bbaa46
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
333daa3185
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
7453c5ed67
Merge branch 'blender-v4.1-release' into main
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
1dfd94a8d3
Cleanup: EEVEE: Fix compile warning
Pull Request: #118322
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
c4bdfba15d
Cleanup: Sort geomery node static definitions
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
8b6d145a6b
Fix: Metal: Shader compilation logging with compute shader
It was missing the line directive treatment the
fragment and vertex shader had.
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
c47c1275a9
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
daedb427c5
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
a0d453ccad
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
c9d506ba18
Extensions: Rename experimental feature name, description and task
New name: Extensions

Now that we are gettting closer to a launch I need to refer to this
feature in the documentation. As such it was time to bring it up to
date.

I'm also pointing the experimental feature to the task where the Alpha
launch is being coordinated (#117286). Once that task is all ticked we
will likely be ready to go out of experimental.
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
18d62c36ad
UI: Tweak extensions repository panel
Reduce the width size and align the URL with the UIList.

Adjustments that would still be welcome:
* Make URL label color the same as Advanced.
* Waste less space between URL and the [________________].
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
4acbda91f8
Merge branch 'blender-v4.1-release'
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
1e20f06c21
BLI: add utility to simplify creating proper random access iterator
The difficulty of implementing this iterator is that it requires lots of operator
overloads which are usually very simple to implement, but result in a lot of code.
The goal of this patch is to abstract the common parts so that it becomes easier
to implement random accessor iterators. Many algorithms can work more
efficiently with random access iterators than with other iterator types.

Also see https://en.cppreference.com/w/cpp/iterator/random_access_iterator

Pull Request: #118113
buildbot/vdev-code-daily-lint Build done. Details
buildbot/vdev-code-daily-linux-x86_64 Build done. Details
buildbot/vdev-code-daily-windows-amd64 Build done. Details
buildbot/vdev-code-daily-darwin-arm64 Build done. Details
buildbot/vdev-code-daily-darwin-x86_64 Build done. Details
buildbot/vdev-code-daily-coordinator Build done. Details
c2b56ca468
Cleanup: prevent unnecessary copy of VArray
Pull Request: #118349
Harley changed target branch from blender-v4.1-release to main 2024-02-18 01:13:02 +01:00
Author
Member

@lone_noel - I wonder if we could just use the button's drawflag, like in the diff below

So far the only thing that misses is in the Properties Tabs. In your capture you can see a red dot on the middle ones. So I added some checks for that in your version and updated this PR.

Somehow I managed to accidentally rebase this for main though. Oh well, not a problem right now.

> @lone_noel - I wonder if we could just use the button's drawflag, like in the diff below So far the only thing that misses is in the Properties Tabs. In your capture you can see a red dot on the middle ones. So I added some checks for that in your version and updated this PR. Somehow I managed to accidentally rebase this for main though. Oh well, not a problem right now.
Leon Schittek approved these changes 2024-02-18 19:34:10 +01:00
Leon Schittek left a comment
Member

@Harley - So far the only thing that misses is in the Properties Tabs. In your capture you can see a red dot on the middle ones. So I added some checks for that in your version and updated this PR.

Yeah, looks much better without those!

I couldn't find a case where this fails when going through all the default workspaces, so I think this is good to go.

> @Harley - So far the only thing that misses is in the Properties Tabs. In your capture you can see a red dot on the middle ones. So I added some checks for that in your version and updated this PR. Yeah, looks much better without those! I couldn't find a case where this fails when going through all the default workspaces, so I think this is good to go.
Harley Acheson force-pushed Fix117780 from 30c5195fff to 73f83a7d27 2024-02-19 21:20:40 +01:00 Compare
Harley changed target branch from main to blender-v4.1-release 2024-02-19 21:22:03 +01:00
Author
Member

@blender-bot build

@blender-bot build
Harley Acheson added 1 commit 2024-02-19 21:53:28 +01:00
buildbot/vexp-code-patch-lint Build done. Details
buildbot/vexp-code-patch-linux-x86_64 Build done. Details
buildbot/vexp-code-patch-darwin-x86_64 Build done. Details
buildbot/vexp-code-patch-darwin-arm64 Build done. Details
buildbot/vexp-code-patch-windows-amd64 Build done. Details
buildbot/vexp-code-patch-coordinator Build done. Details
110e13d996
unused argument
Author
Member

@blender-bot build

@blender-bot build
Harley Acheson merged commit 42a74a28f2 into blender-v4.1-release 2024-02-19 22:26:16 +01:00
Harley Acheson deleted branch Fix117780 2024-02-19 22:26:22 +01:00
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
2 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#118304
No description provided.