Bye 2025! — Blender Today LIVE #271
Changelog between November 25, 2025 - December 23, 2025 at 12h
774 commits in total, of which 179 are fixes, 1 refactors, and 169 cleanup.
Anim
- 🔸 Anim: Improve evaluation performance with std::move - Christoph Lendenfeld
- Anim: Performance benchmark - check for time every frame - Christoph Lendenfeld
- 🔸 Anim: Simplify function for relative shapekey evaluation - Christoph Lendenfeld
- Anim: avoid copy when blending layers - Christoph Lendenfeld
Asset Browser
- 🔸 Asset Browser: Implement fuzzy search - tobiaskummer
Assets
- 🔸 Assets: Use reports to communicate errors on asset import - Julian Eisel
- 🔸 Assets: Correct label in asset shelf catalog selector popup - Julian Eisel
- 🔸 Assets: Compositor: Improve descriptions - Habib Gahbiche
- 🔸 Assets: Compositor: Fix restoring alpha - Habib Gahbiche
Audio
- 🔸 Audio: Increase maximum allowed bitrate - Tenkai Raiko
BLI
- BLI: simplify adding shared_ptr to resource scope - Jacques Lucke
- BLI: VectorSet: Document specific order handling on element removal. - Bastien Montagne
- 🔸 BLI_array_store: optimize array hashing - Campbell Barton
BLO
BPY Python struct registration
- BPY Python struct registration: Allow overriding the struct name property. - Bastien Montagne
Benchmark
- Benchmark: Add unit to time result and format it - Christoph Lendenfeld
Build
- Build: resolve build error with non default array_store.cc defines - Campbell Barton
- Build: correct debugging code for non-manifold solidify - Campbell Barton
- Build: add missing include for Linux/GCC-15 - Campbell Barton
- Build: Silence Linux arm64 + GCC warnings about ABI breaking bug fixes - Brecht Van Lommel
- Build: disable X11 by default for "lite" builds - Campbell Barton
- Build: unbreak WITH_GHOST_SDL - Campbell Barton
- Build: Fix Xcode generator after recent DNA defaults changes - Brecht Van Lommel
CMake
- CMake: Update the last remaining <3.10 cmake min version - Sebastian Parborg
Cleanup
- Cleanup: VSE flag enums cleanup - Aras Pranckevicius
- Cleanup: make format - Thomas Dinges
- Cleanup: simplify memory allocation in sequencer - Aras Pranckevicius
- Cleanup: rename references to the "float" solver - Campbell Barton
- Cleanup: remove duplicate comment - Campbell Barton
- Cleanup: quiet pylint warnings - Campbell Barton
- Cleanup: minor changes to convex hull code comments - Campbell Barton
- Cleanup: Geometry Nodes: use Map for bundle items - Jacques Lucke
-
Cleanup: Nodes: Reuse
is_dragging_parent_panelin node tree interface view - W_Cloud - Cleanup: Geometry Nodes: extract function to add socket mappings - Jacques Lucke
- Cleanup: spelling in source/blender/blenloader - luz paz
- Cleanup: spelling in source/blender/gpu - luz paz
- Cleanup: warning from undeclared functions - Campbell Barton
- Cleanup: quiet compiler warnings, correct flag use - Campbell Barton
- Cleanup: resolve unused argument warnings on release builds - Campbell Barton
- Cleanup: Tree View: code comments - Pratik Borhade
- Cleanup: quiet unused variable warning - Campbell Barton
- Cleanup: Depsgraph: remove done todo comment regarding shared mesh arrays - Jacques Lucke
- Cleanup: Grease Pencil: Reword warning when rendering without depth pass - Falk David
- Cleanup: VSE: make transform_is_locked accept channels as const - Ramon Klauck
- Cleanup: quiet erroneous "alloc-size-larger-than" warnings with GCC - Campbell Barton
- Cleanup: spelling in comments, strings & vars (make check_spelling_*) - Campbell Barton
- Cleanup: fix typos in scripts/addons_core subdirectory - luz paz
- Cleanup: enable spell checking for core addons (with some exceptions) - Campbell Barton
- Cleanup: UI: Use blender::ui::Layout references in editors/space_graph - Guillermo Venegas
- Cleanup: UI: Use blender::ui::Layout references in editors/space_image - Guillermo Venegas
- Cleanup: Wrap KDTree into namespace - илья _
-
Cleanup: Remove use of old
BLI_rctilibrary from trim tool - Casey Bianco-Davis - Cleanup: Vulkan: Remove unused code - Jeroen Bakker
- Cleanup: UI: Use blender::ui::Layout references in some editors folders - Guillermo Venegas
- Cleanup: Use ui::Layout references in nodes and space_node - Hans Goudey
- Cleanup: GPU: Shader Preprocessor: Remove unused legacy printf processing - Clément Foucault
- Cleanup: UI: Use blender::ui::Layout references in some editors folders - Guillermo Venegas
- Cleanup: use C-style comments, * prefixed comment blocks - Campbell Barton
- Cleanup: spelling (make check_spelling_*) - Campbell Barton
- Cleanup: fix typo in multires_bake - luz paz
- Cleanup: Rename variables in key.cc - Christoph Lendenfeld
- Cleanup: UI: Group SVG curves for some icons - Dalai Felinto
- Cleanup: avoid variable shadowing. - Bastien Montagne
- Cleanup: UI: Use blender::ui::Layout references in rna - Guillermo Venegas
- Cleanup: GPU: Shader Preprocessor: Pass parser to function using it - Clément Foucault
- Cleanup: Remove dead code for tagging Texture datablocks for Compositor - Jesse Yurkovich
- Cleanup: Rename BKE_mask.h -> BKE_mask.hh - Aras Pranckevicius
- Cleanup: Make BKE_mask.hh more C++ style - Aras Pranckevicius
- Cleanup: Correct spelling in log statement - Jesse Yurkovich
- Cleanup: autopep8 "scripts/addons_core/" (except for glTF) - Damien Picard
- Cleanup: wrap long lines in scripts/addons_core/ - Campbell Barton
- Cleanup: quiet unused function warning - Campbell Barton
- Cleanup: correct unused warning - Campbell Barton
- Cleanup: Remove dead function in node_draw.cc - Jesse Yurkovich
- Cleanup: BKE_movieclip.h/BKE_tracking.h -> .hh - Aras Pranckevicius
- Cleanup: tracking_private.h -> intern/tracking_private.hh - Aras Pranckevicius
- Cleanup: Stronger enum types across movieclip/tracking headers - Aras Pranckevicius
- Cleanup: UI: Use blender::ui::Layout references in modifiers - Guillermo Venegas
- Cleanup: UI: Use blender::ui::Layout references in wm and shader_fx - Guillermo Venegas
- Cleanup: UI: Use blender::ui::Layout references in interface - Guillermo Venegas
- Cleanup: UI: Remove uiLayout type alias - Guillermo Venegas
- Cleanup: use abbreviated terms "src" & "dst" - Campbell Barton
- Cleanup: sort CMake file lists, strip trailing space - Campbell Barton
- Cleanup: VSE: Rename STRIP_TYPE_SOUND_RAM to STRIP_TYPE_SOUND - Richard Antalik
- Cleanup: unused variable warning - Campbell Barton
- Cleanup: Fix typos in source/blender/python subdirectory - luz paz
- Cleanup: USD: Remove nonsensical checks of prim reader validity - Jesse Yurkovich
- Cleanup: Grease Pencil: Comment on legacy radius conversion factor - Falk David
- Cleanup: UI: Playhead Snap icons - Dalai Felinto
- Cleanup: XR: Clarify instance creation failure error message string - Jonas Holzman
- Cleanup: Vulkan: Remove unused workaround - Jeroen Bakker
- Cleanup: Vulkan: Use CLG for logging - Jeroen Bakker
- Cleanup: GPU: Shader Parser: Split files, rename, and clean implementation - Clément Foucault
- Cleanup: MaskLayerShapeElem type safety - Aras Pranckevicius
- Cleanup: GPU: Shader Tool: Remove unused util functions - Clément Foucault
-
Cleanup: Fix rename overreach of
paint_tooltoimage_paint_brush- Sean Kim - Cleanup: UI: Standardize ellipsis for menu operators - John Kiril Swenson
- Cleanup: spelling in comments (make check_spelling_*), minor clanges - Campbell Barton
- Cleanup: remove GHash include - Campbell Barton
- Cleanup: respect define to disable threading in editmesh_undo.cc - Campbell Barton
- Cleanup: update comments, clarify defines for lines_adjacency extraction - Campbell Barton
- Cleanup: GPU: Remove Invert Facing from Pipeline State - Jeroen Bakker
- Cleanup: GPU: Remove vertex attributes from pipeline state - Jeroen Bakker
- Cleanup: VSE: Refactor preview overlay drawing to avoid redundant checks - unknown
- Cleanup: GPU: Shader Tool - Clément Foucault
- Cleanup: Use Array for subdivision iteration arrays - Hans Goudey
- Cleanup: UI: Remove uiBlock type alias - Hans Goudey
- Cleanup: UI: Remove uiBut type alias - Hans Goudey
- Cleanup: UI: Remove uiTooltipData type alias - Hans Goudey
- Cleanup: UI: Remove uiPopupBlockHandle, uiHandleButtonData type aliases - Hans Goudey
- Cleanup: Remove depsgraph tags of 0 for Vertex Paint - Sean Kim
- Cleanup: Sync radial tiling files and improve naming - Raiko
- Cleanup: Remove "ui" prefix in interface_intern.hh - Hans Goudey
- Cleanup: UI: Remove ui prefix from types and functions - Hans Goudey
- Cleanup: Remove BLI_ prefix for kdtree code - илья _
- Cleanup: UI: Further cleanups from recents refactors - Guillermo Venegas
- Cleanup: Remove unnecesary namespace prefix - илья _
- Cleanup: Compositor: Removed unused variable + call - Jeroen Bakker
- Cleanup: Fix compiler warning about NONNULL for va_list argument - Brecht Van Lommel
- Cleanup: Cycles: Fix building without some kernel features for debugging - Brecht Van Lommel
- Cleanup: Remove unnecesary namespace prefix from types - Guillermo Venegas
- Cleanup: Spelling: Revert "frame-buffer" typo fix - Jonas Holzman
-
Cleanup: Remove use of
bContextviaViewContextforsculpt_trim.cc- Sean Kim - Cleanup: Fix duplicate function definition - Hans Goudey
- Cleanup: use return value instead of parameter for operator PointerRNA creation - Jacques Lucke
- Cleanup: typo in function to remove modal handler - maroulokefalos
- Cleanup: fix typos in source/blender/draw - luz paz
- Cleanup: resolve warning mixing enum & non-enum types - Campbell Barton
- Cleanup: spelling (make check_spelling_*) - Campbell Barton
- Cleanup: use GHOST_TButton as an array index for clarity - Campbell Barton
- Cleanup: corrections to Wayland code-comments - Campbell Barton
- Cleanup: comments & variable names, null check before assignment - Campbell Barton
- Cleanup: correct date in recently added file & spelling - Campbell Barton
- Cleanup: Cycles integer overflow not properly ignored by Clang - Brecht Van Lommel
- Cleanup: remove unused parameters - илья _
- Cleanup: Remove depsgraph tags of 0 for UV Sculpt - Sean Kim
- Cleanup: Remove unused functions in rna_mesh.cc - Hans Goudey
- Cleanup: Remove unnecessary empty line in mesh.cc - Hans Goudey
- Cleanup: Extract attribute name logic to function - Hans Goudey
- Cleanup: Remove depsgraph tags of 0 for Weight Paint - Sean Kim
- Cleanup: quiet pylint warning - Campbell Barton
- Cleanup: various non functional changes for C++ - Campbell Barton
- Cleanup: Unused includes in DNA_object_types.h - Jesse Yurkovich
- Cleanup: misleading pointer check when freeing CSD data in Wayland - Campbell Barton
- Cleanup: correct misspelling if "capsule" - Campbell Barton
- Cleanup: typos, back-ticks for literal code - Campbell Barton
- Cleanup: GHOST: Use unique_ptr for events - Hans Goudey
- Cleanup: Make BlenderRNA non-trivial and embed Map - Hans Goudey
- Cleanup: VSE: Reorganize keymap items - John Kiril Swenson
- Cleanup: Inappropriate includes in DNA_userdef_types.h - Jesse Yurkovich
- Cleanup: quite MSVC warning - Campbell Barton
- Cleanup: sort file lists, DNA rename defines - Campbell Barton
- Cleanup: Unused includes in DNA_view3d_types.h - Jesse Yurkovich
- Cleanup: resolve missing-braces warning - Campbell Barton
- Cleanup: Move compositor forward compoatibility code to separate function - Habib Gahbiche
- Cleanup: Geometry Nodes: improve comment for id dependencies - Jacques Lucke
- Cleanup: Move initialization log to correct place - Sean Kim
-
Cleanup: Various non-functional changes for
paint_sample_color.cc- Sean Kim - Cleanup: USD: Remove unnecessary includes - Jesse Yurkovich
- Cleanup: Compositor: Clarify Group Input node code - Omar Emara
- Cleanup: Move from std::function params in interface.cc - Guillermo Venegas
- Cleanup: Compositor: Remove unused poll method exception - Omar Emara
-
Cleanup: Outliner: Make
TreeElement::flaga typed enum. - Bastien Montagne - Cleanup: Compositor: Remove unused sampling methods - Omar Emara
- Cleanup: Silence warning about unused variables in release builds. - Bastien Montagne
- Cleanup: Formatting in recent UI test commit - Julian Eisel
- Cleanup: Move kdtree_impl header to BLI level - илья _
- Cleanup: Rename BLI_kdtree_op to BLI_kdtree - илья _
- Cleanup: Remove unused variables - Christoph Lendenfeld
- Cleanup: GPU: Shader Tool: Move small type linting into structure linting - Clément Foucault
- Cleanup: Compositor: Shorten ExtensionMode enum name - Omar Emara
- Cleanup: GPU: Shader Tool: Avoid start/end convention in API - Clément Foucault
- Cleanup: GPU: Shader Tool: Improve function names - Clément Foucault
- Cleanup: GPU: Shader Tool: Warning about unused variable - Clément Foucault
- Cleanup: File Browser: Split system files/bookmarks logic into per-platform implementations and macOS refactor - Jonas Holzman
- Cleanup: VSE: Cleanup sequencer render iterators - John Kiril Swenson
- Cleanup: Move sculpt extract operators to sculpt module - Pratik Borhade
-
Cleanup: Core: Add template version of
BKE_id_new_in_lib. - Bastien Montagne - Cleanup: Fix Cycles compiler warning after recent changes - Brecht Van Lommel
- Cleanup: Remove depsgraph tags of 0 within editfont.cc - Jesse Yurkovich
- Cleanup: Remove depsgraph tags of 0 within editmesh_tools.cc - Jesse Yurkovich
- Cleanup: Remove depsgraph tags of 0 within uvedit_clipboard.cc - Jesse Yurkovich
- Cleanup: Remove depsgraph tags of 0 within curves_draw.cc - Jesse Yurkovich
- Cleanup: Typo in modifier error message - Jesse Yurkovich
- Cleanup: replace LISTBASE_FOREACH with iterator in node.cc - Jacques Lucke
- Cleanup: Switch KDTree from C array to template vector type - илья _
- Cleanup: Typos. - Bastien Montagne
- Cleanup: BLI: Remove unnecesary namespace prefix - Guillermo Venegas
- Cleanup: BLF custom FT_Library code path was never used, remove - Aras Pranckevicius
- Cleanup: Switch KDTree from macro to constexpr - илья _
- Cleanup: use typed ListBase in Main - Jacques Lucke
- Cleanup: use typed ListBase in window manager runtime - Jacques Lucke
- Cleanup: use typed ListBase in some screen types - Jacques Lucke
Cmake
- Cmake: Rework how we set SIMD compile flags and configure SSE2NEON support - Sebastian Parborg
Compositor
- 🔸 Compositor: forward compatibility for Composite node - Habib Gahbiche
- 🔸 Compositor: Implement duplicate sequencer modifier node group - Ramon Klauck
- 🔸 Compositor: Allow non-single values in Relative To Pixel node - Omar Emara
- 🔸 Compositor: Add File Output node in Drag Search - Omar Emara
- 🔸 Compositor: Optimize Group Input node - Omar Emara
- Compositor: Use type default values for single inputs fallback - Omar Emara
- 🔸 Compositor: Gracefully handle undefined nodes and sockets - Omar Emara
Core
- Core: Writefile: Add basic 'log info' timing when writing blendfile. - Bastien Montagne
- Core: preserve 'stable pointers' data accross undo steps. - Bastien Montagne
- Core: Simplify memfile logic for libraries (regular vs. archived). - Bastien Montagne
- Core: Fix missing handling of packed IDs in memfile undo. - Bastien Montagne
- Core: Undo: Properly remove linked data on memfile undo/redo. - Bastien Montagne
- Core: Fix (unreported) issue in Main merge code with linked data. - Bastien Montagne
- Core: Support Packed IDs in Main merge code. - Bastien Montagne
Correct force-CSD define being left enabled
- Correct force-CSD define being left enabled - Campbell Barton
Cycles
- 🔸 Cycles: Make HIP RT the default - salipour
- 🔸 Cycles: Improve compilation time of tricubic interpolation - Weizhen Huang
- 🔸 Cycles: Skip compiling surface nodes for volume - Weizhen Huang
- 🔸 Cycles: Show CPU only name under Cycles devices for CPU - salipour
- Cycles: Check if volume shader is used before enabling volume features - salipour
- Cycles: Avoid mesh triangle faces cache for data transfer - Hans Goudey
DNA
- DNA: Cover makesdna with regression tests - Sergey Sharybin
- DNA: Support parsing structs with default member initializers - Brecht Van Lommel
- DNA: Reorder defines and enums to be before structs - Brecht Van Lommel
- DNA: Use C++ default member initialization - Brecht Van Lommel
- DNA: support typed ListBase - Jacques Lucke
- DNA: make most ListBase in DNA typed - Jacques Lucke
Docs
- Docs: add crash warning to ignore_editmode_filtering - Tariq-Sulley
- Docs: correct formatting & typo in Python doc-strings - Campbell Barton
Draw
- Draw: Refactor unions - Clément Foucault
EEVEE
- EEVEE: Split forward pipeline to its own framebuffer - Clément Foucault
- EEVEE: Add support for Transparent BSDF through Shader To RGB - Clément Foucault
- EEVEE: Add "EEVEE.render_frame" gpu scope (for renderdoc frame capture) - Jordan Justen
- EEVEE: Add Material Pipeline States - Jeroen Bakker
- EEVEE: Add Glossy reflection evaluation to planar probe capture - Clément Foucault
- EEVEE: Optimization of point cloud object drawing - Iliya Katushenock
- EEVEE: Replace angle computation in shadow code with cosine - Clément Foucault
FFMPEG
- FFMPEG: Add Option for Custom CRF Value - Tenkai Raiko
Fix
- Fix: Make Click to Extrude Bone also Copy the B-Bone Size - Wayne Dixon
- Fix: VSE overexposed preview debug assert - Aras Pranckevicius
- Fix: Python error when adding an input to an empty node group - Habib Gahbiche
- Fix: invalid duplicate face check in BM_mesh_is_valid - Campbell Barton
- Fix: "verbose" argument to secure code test function was ignored - Sebastian Parborg
- Fix: Make script_pyapi_bpy_driver_secure_eval pass with python >3.11 - Sebastian Parborg
- Fix: Vulkan Validation Error - Jeroen Bakker
- Fix: Nodes: Various menu entries not in alphabetical order - quackarooni
- Fix: Outliner: Moving collections deletes them unexpectedly - Philipp Oeser
- Fix: UI: Wrong emboss in some widgets - Pablo Vazquez
- Fix: Spreadsheet: column of unknown type can't be resized - Jacques Lucke
- Fix: Curves: Wrong assertion - илья _
- Fix: build error with Audaspace off - Aras Pranckevicius
-
Fix: Grease Pencil: SVG Exporter: Bézier curves not using
stroke-width- Casey Bianco-Davis - Fix: Storm: Test failing on AMD GPU - Clément Foucault
- Fix: Ensure compositor backdrop is updated after Image changes - Jesse Yurkovich
- Fix: Assert fail during drawing when acquiring depsgraph - Lukas Tönne
-
Fix:
object.subdivison_setbehaves inconsistently in Object mode - Sean Kim - Fix: VSE: add trailing dots to menu entries that open file browser - Jacques Lucke
-
Fix: Grease Pencil: Sculpt Tools not keep
Bézierhandles aligned - Casey Bianco-Davis - Fix: Geometry Nodes: add missing case to allocate single geometry - Jacques Lucke
- Fix: Broken "disabled hints" while dragging - Julian Eisel
- Fix: Outliner: Moving collections reorders them unexpectedly - Philipp Oeser
- Fix: Offset randomization not affected by seed input and internal node-group marked as modifier - Simon Thommes
- Fix: Compilation failure with WITH_TESTS_SINGLE_BINARY=OFF - Sergey Sharybin
- Fix: Some modifier UI layouts not inactive when unused - Guillermo Venegas
-
Fix: GPU: removes memory leak related to
osd_patch_basis.glsl- Mark van de Ruit - Fix: GPU: Shader Tool: Broken compilation on some GCC system - Clément Foucault
- Fix: GPU: Shader Parser: Invalid parsing of literal additions - Clément Foucault
- Fix: Subversion increment - Christoph Lendenfeld
- Fix: Potential crashes when using assets deleted from disk - Julian Eisel
- Fix: VSE: Sync Scene Time on transform cancel - John Kiril Swenson
- Fix: Build failure with Audaspace but without FFTW - Aras Pranckevicius
- Fix: EEVEE: Wrong alpha of monochromatic Blended materials - Clément Foucault
- Fix: UI: Icorrect highlight array access in Layout::prop_tabs_enum - Guillermo Venegas
- Fix: GPU: Shader compilation failing on Nvidia opengl - Clément Foucault
- Fix: Remove mistakenly added text in last commit - Hans Goudey
- Fix: Vulkan: Vertex input library - Jeroen Bakker
- Fix: GPU: Shader Tool: remove_whitespace broken when file start with comment - Clément Foucault
- Fix: EEVEE: Fixed unused variable and uint/int comparison warnings - Mark van de Ruit
- Fix: BLO: bring back memory mapped file reading - Jacques Lucke
- Fix: Crash rendering subdivision in EEVEE - Sergey Sharybin
- Fix: USD: Make object names more deterministic during import - Jesse Yurkovich
- Fix: Compiler warning - Richard Antalik
- Fix: Lattice resolution not displayed in the UI on undo - Campbell Barton
- Fix: prevent opening blend files in pose library poll functions - Sybren A. Stüvel
- Fix: restore accidentally changed default for 'Allow Negative Frames' pref - Sybren A. Stüvel
- Fix: Vulkan: Incorrect divisor for vertex inputs - Jeroen Bakker
- Fix: Cycles writes octree.py with --log-level debug - Brecht Van Lommel
- Fix: Vulkan: Incorrect state transition - Jeroen Bakker
- Fix: GPU: Warning about shader macro name - Clément Foucault
- Fix: Geometry Nodes: crash when capturing group input geometry in some cases - Jacques Lucke
- Fix: potential error from key-repeat changes without locking on Wayland - Campbell Barton
- Fix: potential crash if wl_shm_create_pool fails on Wayland - Campbell Barton
- Fix: missing locks when data sources are cancelled on Wayland - Campbell Barton
- Fix: resizing bottom-right corner of the window fails on Wayland - Campbell Barton
- Fix: memory leak removing an extension repository with an access token - Campbell Barton
- Fix: UI: ui tests are failing after recent changes to add-workspace menu - Jacques Lucke
- Fix: wrap_coord for out-of-range numbers - Bill Spitzak
- Fix: CSD Wayland, don't quit Blender when clicking the window close button - Sebastian Parborg
- Fix: GPU: Shader Tool: Few bugs - Clément Foucault
- Fix: Two issues in recent attribute refactors - Hans Goudey
- Fix: Silence extraneous parentheses warning - John Kiril Swenson
- Fix: GPU: Shader Tool: Failing tests - Clément Foucault
- Fix: EEVEE: Warning in C++ shader compilation on Clang - Clément Foucault
- Fix: Heap-buffer-overflow when dropping shape-keys - Julian Eisel
- Fix: Vulkan: Crash due to missing blend mode - Jeroen Bakker
- Fix: GPU: Broken Shader compilation - Clément Foucault
- Fix: invalid error prefix for bpy_struct.keyframe_delete() - Campbell Barton
- Fix: potential out of bounds read in Waylands multi-line URL parsing - Campbell Barton
- Fix: potential buffer overflow in CSD button layout initialization - Campbell Barton
- Fix: Compositor file output tests not using Vulkan - Habib Gahbiche
- Fix: GPU: Shader Tool: Remove wrapper macro fro static branch - Clément Foucault
- Fix: Incorrect data mask for looking up UV stencil/clone layers - Hans Goudey
- Fix: invalid return value from 9874a4a1d39e2aef943c1c0930b43737310a63e4 - Campbell Barton
- Fix: error in recent change to the byte hashing function - Campbell Barton
- Fix: BLI: bad performance edge case in hash table implementations - Jacques Lucke
- Fix: Nodes: add missing socket icons - Jacques Lucke
- Fix: Nodes: add missing socket idname entries - Jacques Lucke
- Fix: Face Center Snapping Crashes In Edit Mode - Tariq-Sulley
- Fix: SIMD detection/intrinsics; auto-vectorization; headers - Ștefan Talpalaru
-
Fix: Grease Pencil: Show
Targetsetting inSurfaceplacement mode - Casey Bianco-Davis -
Fix: Missing versioning code for
uv_edge_opacityinversioning_510.cc- Mark van de Ruit - Fix: macOS: Allow extensions to request microphone permissions - Jackson Zheng
- Fix: Out of bounds memory access with curves of size 1 - Christoph Lendenfeld
- Fix: Node group Separate operator crashes when the node has a driver - Lukas Tönne
- Fix: Readd removed clamp in paint_sample_color - Sean Kim
- Fix: grid clipping/axis regressions caused by #148733 - Mark van de Ruit
- Fix: Incorrect function parameter definition - Sean Kim
- Fix: USD: Bspline basis curves using 'varying' widths were incorrect - Jesse Yurkovich
- Fix: USD: Wrong curve type for particle hair export - Jesse Yurkovich
- Fix: Nodes crash when inserting a single node into a node group - Lukas Tönne
- Fix: Node group Insert/Separate operators lose animation data on nodes - Lukas Tönne
- Fix: UI: Better Calculation of Overflowing Panel Contents - Harley Acheson
- Fix: GPU: Shader Tool: Double float type key - Clément Foucault
- Fix: Missing nullptr check when copying animdata in node group operators - Lukas Tönne
- Fix: Draw: Missing command struct assignment - Clément Foucault
- Fix: VSE thumbnail generation could deadlock - Sebastian Parborg
- Fix: EEVEE: Use of common which is glsl reserved keyword - Clément Foucault
- Fix: EEVEE: Assignment to temporary values - Clément Foucault
- Fix: GPU: Shader Tool: Failing tests - Clément Foucault
- Fix: EEVEE: Broken surfel debug view - Clément Foucault
- Fix: Cycles crash in viewport render - Sergey Sharybin
- Fix: Correctly define SSE4 functions as requiring SSE4 and not SEE2 - Sebastian Parborg
- Fix: Workbench: Simplify extruded frustum normal computation - Miguel Pozo
- Fix: ShaderNodesInliner: String comparison - Miguel Pozo
- Fix: Vulkan: Host image copy crash - Jeroen Bakker
- Fix: Cycles issue renderig dupli motion blur after recent refactor - Brecht Van Lommel
- Fix: Cycles: Particle hair viewport/render visibility swapped - Hans Goudey
- Fix: Missing include - Omar Emara
- Fix: Missing include - Pratik Borhade
- Fix: Nodes: grouping nodes does not preserve nested node refs - Jacques Lucke
- Fix: Cycles: Compile without OpenVDB - Jeroen Bakker
- Fix: Vulkan: Incorrect Memory Allocation - Jeroen Bakker
- Fix: grid draw-order/autodepth/orthographic regressions caused by #148733 - Mark van de Ruit
- Fix: flakyness of disk file hash service test - Sybren A. Stüvel
- Fix: Init value for bounds reduction may be out-of-mask value - илья _
- Fix: Face midpoint snapping overrides previous snap result - Tariq-Sulley
- Fix: #151860: UI: Save (Image) Button appears active but does nothing - tobiaskummer
- Fix: Vulkan: Disable VK_EXT_host_image_copy on device - Jeroen Bakker
- Fix: USD: Incorrect dome light rotation on export - Jesse Yurkovich
- Fix #100651: Lattice properties don't update on undo in edit-mode - Campbell Barton
- Fix #110618: Reorder Walk & Fly Keymap Items - Harley Acheson
- Fix #123268: Workbench: Incorrect orthographic DoF - Miguel Pozo
- Fix #129383: Animation Player mouse scrubbing doesn't go to the final frame on macOS - Jonas Holzman
- Fix #138541: Grease Pencil: Unify rendering check calls. - YimingWu
- Fix #139653: Unable to use 'Save As Asset' on asset from the current file - Jorn Visser
- Fix #140344: Nodes: Panel toggle label out of node bounds - W_Cloud
- Fix #140422: Unable to zoom in on a 1x1 image - kavu
- Fix #141896: Grease Pencil Draw tool Surface depth does not interpolate - Casey Bianco-Davis
- Fix #144299: Bone Eyedropper missing for "Override Transform" property - Christoph Lendenfeld
- Fix #144960: Long GPU_material compile times for Cycles-only material - Miguel Pozo
- Fix #145063: Crash when using redo panel with transform tool - Sean Kim
- Fix #146161: VSE: Sync Scene Time not immediately updated on transform - John Kiril Swenson
- Fix #146268: Face set creation from selected faces doesn't work with hidden faces - Sean Kim
- Fix #146786: Tooltip Disabled Message About External Assets - Harley Acheson
- Fix #146931: Normal tools operator empty redo panel - Pratik Borhade
-
Fix #147401: Curves:
Set Handle Typeoperator doesn't align handles - Casey Bianco-Davis - Fix #147693: Tooltip Position Can Obscure Highlighted Item - Harley Acheson
- Fix #147762: Graph Editor Icon Vertical Centering - Harley Acheson
- Fix #147784: Darken Starting Area That Is Closed When Docking - Harley Acheson
- Fix #147809: VSE: Can't tweak handles in Industry Compatible keymap - John Kiril Swenson
- Fix #147918: Redoing slide vertex operator changes the direction - Tariq-Sulley
- Fix #148046: TIMER event caused unexpected behaviour on pen tool - Janne Nylander
- Fix #148561: Text outline does not match text boundary - IREXTIA
- Fix #148917: EEVEE: Rework AOV structure to increase max AOV limit - Mark van de Ruit
- Fix #148937: Grease Pencil: New keyframes are not automatically selected - Pratik Borhade
- Fix #148938: VFX: Mask keyframes are not automatically selected - Philipp Oeser
- Fix #148985: Crash when executing operator from python - Richard Antalik
- Fix #149046: Setting a keyframe handle ignoring user choice - Christoph Lendenfeld
- Fix #149463: Vulkan: Synchronization issues due to recent changes - Jeroen Bakker
- Fix #149497: UV select linked fails to expand with shared vertex UV's - Campbell Barton
- Fix #149536: Assert accessing empty point cloud positions - Hans Goudey
- Fix #149678: Add USD import/export of UsdUIAccessibilityAPI data - Michael B Johnson
- Fix #149770: long passwords are truncated by the input field - Campbell Barton
- Fix #149904: Cycles OptiX artifacts with SSS and shader raytrace - Brecht Van Lommel
- Fix #149950: Temporary snapping disables precision movement - Tariq-Sulley
- Fix #150024: Prevent depsgraph eval while RNA writing is disallowed - Lukas Tönne
- Fix #150087: UV select overlap freezes with some meshes - Tariq-Sulley
- Fix #150131: Selection state of edit bone root/tip not preserved - Christoph Lendenfeld
- Fix #150156: VSE preview artifacts when images have non-zero RGB in transparent regions - Aras Pranckevicius
- Fix #150163: Time jump operator not respecting subframe toggle - Christoph Lendenfeld
- Fix #150173: Don't Draw Overflowing Panel Contents - Harley Acheson
- Fix #150200: Packed Data from Asset Library cannot be converted twice after undo. - Bastien Montagne
- Fix #150213: incorrect results from mathutils.Matrix.adjugated() - williamzchu@gmail.com
- Fix #150227: Crash when dropping asset after deleting it from disk - Julian Eisel
- Fix #150272: Shape key panel autoscrolls when opening context menu - Pratik Borhade
- Fix #150289: Linked actions being reused - Christoph Lendenfeld
- Fix #150336: Vulkan: Incorrect Face Selection - Jeroen Bakker
- Fix #150341: List item not activated when clicking on disabled button - Julian Eisel
- Fix #150360: "float" boolean solver creates duplicate geometry - Campbell Barton
- Fix #150364: Breakdowner not working with armature instances - Christoph Lendenfeld
- Fix #150381: Grease Pencil: PDF Exporter does not follow the DPI setting - Casey Bianco-Davis
- Fix #150385: Brush size modal operator out of sync with cursor - Sean Kim
- Fix #150392: Sculpt Texture Paint doesn't update 3D Viewport when painting on single image texture - T0MIS0N
- Fix #150408: NlaStrip creation doesn't respect name parameter - Pratik Borhade
- Fix #150414: Copying value to clipboard causes Steam to crash on Linux X11 - Jonas Holzman
- Fix #150419: Region Toggle Pie option doesn't work in the file browser - Pratik Borhade
- Fix #150431: String properties of subtype "BYTE_STRING" insert extra null terminator. - Bastien Montagne
- Fix #150441: Cycles OSL multi device GPU rendering crash - Brecht Van Lommel
- Fix #150457: support color tag for custom nodes backed by groups - Jacques Lucke
- Fix #150477: VSE: Crash opening file with missing screen - John Kiril Swenson
- Fix #150538: ALT + F12 in default scene crashes - Philipp Oeser
- Fix #150543: Endless loop when zooming out too far in Graph Editor - Christoph Lendenfeld
- Fix #150551: Geometry Nodes: missing anonymous attributes when referenced by bundle - Jacques Lucke
- Fix #150552: Lattice deform selected doesn't work with grease pencil - Pratik Borhade
- Fix #150553: Cycles HIP RT crash without rocm-hip-devel on Fedora - salipour
- Fix #150556: Sculpting: Multires mesh with wireframe mode and hidden faces results in corrupt display - илья _
- Fix #150571: Jump between strips doesn't sync scenes - Philipp Oeser
- Fix #150579: Geometry Nodes: Points to Volume positional offset - Nithurshen
- Fix #150582: Compositing applied to render when compositing is disabled in render pipeline - Habib Gahbiche
- Fix #150590: VSE: Drag and drop from file browser doesn't snap - John Kiril Swenson
- Fix #150602: invalid string formatting in menu example - Bipin Yadav
- Fix #150615: Grease Pencil: Pen Tool does not initialize fill opacity - Casey Bianco-Davis
- Fix #150629: Knife tool makes cuts behind the viewpoint - Tariq-Sulley
- Fix #150638: Crash on relocate linked file. - Bastien Montagne
- Fix #150651: Grease Pencil: Pen Tool uses radius instead of diameter - Casey Bianco-Davis
- Fix #150654: id_map_utils missing docs/autocomplete - Demeter Dzadik
- Fix #150660: VSE: Prevent showing metadata when there's no editing scene - YimingWu
- Fix #150698: deprecation warning from path_resolve with custom-property - Campbell Barton
- Fix #150705: Relative multires navigation doesn't work with unselected object - neelpatel
- Fix #150716: Viewport not updating when changing volume step rate - Weizhen Huang
- Fix #150723: Single layer EXR saved in wrong color space - Brecht Van Lommel
- Fix #150733: Node wrangler does not find Relative Path image sequence - Philipp Oeser
- Fix #150753: Crash assigning long string to an ID property - Campbell Barton
- Fix #150773: Animation render hangs with image in geometry node - Brecht Van Lommel
- Fix #150794: Crash in Outliner when drag-n-dropping across windows. - Bastien Montagne
- Fix #150803: UI: Tree View: multi-selection state does not refresh automatically - Pratik Borhade
- Fix #150804: Uninitialized variable use in progress bar UI template - Julian Eisel
- Fix #150814: EEVEE: Crash caused by missing texture reference - Clément Foucault
- Fix #150841: Crash displaying overlays for certain mesh objects - Campbell Barton
- Fix #150842: Mesh validate removes non-duplicate faces - Campbell Barton
- Fix #150854: Complex solidify can create duplicate edges - Campbell Barton
- Fix #150855: VSE same-channel transitions buggy when moving one of strips - Aras Pranckevicius
- Fix #150862: Weight Paint gradient context menu missing/error - Philipp Oeser
- Fix #150874: Texture baking progress bar does not update - Brecht Van Lommel
- Fix #150876: Crash on selecting the extrude tool - Tariq-Sulley
-
Fix #150903: Ensure
BLI_path_frame_getsets valid digits length - YimingWu - Fix #150957: Image changes in 'Single Image' mode don't update viewport - Sean Kim
- Fix #150958: Directional Blur fails for Samples more than 30 - Omar Emara
- Fix #150961: Grease Pencil: Right handle align problem - Casey Bianco-Davis
- Fix #150962: Uninitialized data in duplicate elements "id" attribute - Hans Goudey
- Fix #150981: Vulkan: UI Glitches Linux/Intel - Jeroen Bakker
- Fix #150995: Rotation Rotates On The Wrong Axis On The Sequencer Preview - Tariq-Sulley
- Fix #151017: Crash using HIP on Linux with HIP Runtime 5.X - Alaska
- Fix #151021: Crash with randomize color pressure - Sean Kim
- Fix #151022: Potential crash removing invalid mesh edges - Hans Goudey
- Fix #151028: Marking 4.2 brushes as assets overrides with wrong preview - Julian Eisel
- Fix #151029: Merge by distance crash after recent refactor - Hans Goudey
- Fix #151033: File Output crashes if a single value vector exists - Omar Emara
- Fix #151039: EEVEE: Lookdev World doesn't rotate without blur - Clément Foucault
- Fix #151067: Absolute shape keys do not display "frame" value in UI - Pratik Borhade
- Fix #151076: Memory leak when adding strips - Richard Antalik
- Fix #151082: Crashing upon adding bone under certain conditions - Philipp Oeser
- Fix #151083: Separate by Material breaks custom normals - Philipp Oeser
- Fix #151083: Separate by Material breaks custom normals part II - Philipp Oeser
- Fix #151085: Grease Pencil keymap naming inconsistency - Philipp Oeser
- Fix #151088: Undo: Assert in pointer stability code after recent change. - Bastien Montagne
- Fix #151113: Sequencer: Rotation center "gizmo" dot incorrect size - Clément Foucault
- Fix #151122: Crash when changing VSE text sizes with Prefetch on - Aras Pranckevicius
- Fix #151157: Material preview crash with skin modifier - Hans Goudey
- Fix #151159: Update issue after switching to scene for the first time - Falk David
- Fix #151204: Crash when using compositor viewer - Omar Emara
- Fix #151206: Crash When Switching From Normal Rotate to Transform Rotate - Tariq-Sulley
- Fix #151215: Crash accessing node_group.node_tool_idname for some groups - Hans Goudey
- Fix #151232: Sculpt blend brushes pick up color from masked vertices - Sean Kim
- Fix #151235: Vertex slide crashes on a single, visible vertex - Campbell Barton
- Fix #151241: Arrow Gizmo crashes when python modal operator finishes - Philipp Oeser
- Fix #151249: Cycles recording non-volume triangles when intersecting volume - Weizhen Huang
- Fix #151256: Grease Pencil: Sculpt mode Grab tool crash - Casey Bianco-Davis
- Fix #151267: Crash joining specific objects - Philipp Oeser
- Fix #151270: Curves: Object with 0 curves crashes with sculpt overlay - Clément Foucault
- Fix #151274: Lattice artifacts whith the "Outside" option enabled - Philipp Oeser
- Fix #151279: Missing Dopesheet redraw when moving Grease Pencil layers - shivesh
- Fix #151283: Unpredictable 3D cursor snap with snap base set to active - Tariq-Sulley
- Fix #151287: Regression: Crash when dragging local asset into a catalog - Pratik Borhade
- Fix #151320: Render modal operator crash after recent changes - Brecht Van Lommel
- Fix #151327: Crash accessing MeshUVLoopLayer pin property - Hans Goudey
- Fix #151330: Editor resizing and other modal operators crash - Brecht Van Lommel
- Fix #151351: Move animdata for single node group - Lukas Tönne
- Fix #151359: Extra key repeat events could be sent on Wayland - Campbell Barton
- Fix #151371: Extra Icon Release Should be Near Press - Harley Acheson
- Fix #151375: Blender 5.0 Hair Particle Sublevels Not Displaying - Tariq-Sulley
- Fix #151380: misleading error message when a pointer is invalid - Natalie Cuthbert
- Fix #151406: Hydra Storm crash with generated image file - Brecht Van Lommel
- Fix #151425: Outliner: Activating a camera clears the scene camera - Philipp Oeser
- Fix #151433: Cycles and smoke simulation crash when entering edit mode - Brecht Van Lommel
- Fix #151474: Incorrect preferences access in Node Wrangler add-on - Nika Kutsniashvili
- Fix #151537: Disregard panel toggle when checking node socket order - Lukas Tönne
- Fix #151550: Crash using a String Property in Layout::prop_search - Guillermo Venegas
- Fix #151566: GPU: Python shader compile error with uniform buffer - Clément Foucault
- Fix #151570: Shader Tool: TAA problem related to shader parsing - Clément Foucault
- Fix #151572: Keying Screen crashes with unset movie clip - Omar Emara
- Fix #151581: Keymap: move grease pencil weight paint before pose mode - Philipp Oeser
- Fix #151609: Repeated duplicate and rotate operation rotates in opposite direction - Tariq-Sulley
- Fix #151618: Overlay: Attribute Viewer Instanced Pointclouds - Jeroen Bakker
- Fix #151629: VSE: Prefetching replace blend adjustment strip crashes - John Kiril Swenson
- Fix #151660: Crash from uninitialized anim_mirror_object field - Tariq-Sulley
- Fix #151676: Packed geometry nodes bake cache frame ordering - newoether
- Fix #151700: Metal: Crash on python shader compile - Clément Foucault
- Fix #151725: Creating node tree input from 2D vector uses wrong socket type - Lukas Tönne
- Fix #151729: Can't hide template_popup_confirm cancel button - Hans Goudey
- Fix #151740: Crash cleaning up undo steps for single vert object - Tariq-Sulley
-
Fix #151742: Docs: Fix Typo in
bpy.types.USDHookcode - Nick Alberelli - Fix #151744: Crash when copying Workspace from RNA API. - Bastien Montagne
- Fix #151749: Geometry Nodes: viewer does not work with single value field - Jacques Lucke
- Fix #151751: Voxel remesh produces a corrupt mesh - Tariq-Sulley
- Fix #151760: Adjusting pose asset refreshes thumbnail - Christoph Lendenfeld
- Fix #151786: Temporarily remove invalid links while making node groups - Lukas Tönne
- Fix #151803: Menu Search with Developer Extras crashes Blender - Sean Kim
- Fix #151819: EEVEE: Wrong lightprobe selection in planar captures - Miguel Pozo
- Fix #151833: EEVEE: Out of bounds write in test case - Jeroen Bakker
- Fix #151843: Temperature and tint have zero default - Omar Emara
- Fix #151881: Nodes: Node Wrangler: Use correct operator for lazy connect with menu - IREXTIA
- Fix #151940: Denoise node has a memory leak - Omar Emara
- Fix #151942: VSE: Sound crossfade fails if metastrip contents selected - John Kiril Swenson
- Fix #151959: Revert "Fix: Vulkan: Incorrect Memory Allocation" - Jeroen Bakker
- Fix #151989: Crash when using the Alpha output of an image - Omar Emara
- Fix #152010: ASAN: mismatch usages of internal Eigen allocators. - Bastien Montagne
- Fix (unreported) several issues in Libraries hierarchy rebuild. - Bastien Montagne
- Fix broken build in USD Hydra code on linux clang/mold. - Bastien Montagne
GHOST
- GHOST: Add --no-native-pixels support to Win32, X11 and Wayland - Christoph Neuhauser
GHOST/Wayland
- GHOST/Wayland: show a useful message when on Unix for Wayland only build - Campbell Barton
- GHOST/Wayland: support using GNOME's button-layout preferences - Campbell Barton
GPU
- GPU: Add support for passing SRT to entrypoint functions - Clément Foucault
- GPU: Shader Preprocessor: Add support for no-attribute SRT structs - Clément Foucault
- GPU: Shader Preprocessor: Move entry point args attribute location - Clément Foucault
- GPU: Shader Preprocessor: Use stage_in/out attribute - Clément Foucault
- GPU: Shader Preprocessor: Allow templates and namespace for SRT - Clément Foucault
- GPU: Shader Parser: Add missing Tokens - Clément Foucault
- GPU: Shader Preprocessor: Add support for parsing pipeline declarations - Clément Foucault
- GPU: Shader Preprocessor: Add trailing whitespace removal using parser - Clément Foucault
- GPU: Shader Preprocessor: Add entry point reflection - Clément Foucault
- GPU: Shader Preprocessor: Parse Pipeline Compilation Constants - Clément Foucault
- GPU: Shader Preprocessor: Parse and lint usage of srt_t - Clément Foucault
- GPU: Shader Preprocessor: Add shader source to parsed create info - Clément Foucault
- GPU: Shader Preprocessor: Allow method declaration for SRT structs - Clément Foucault
- GPU: Shader Tool: Move implementation of line_number to cc file - Clément Foucault
-
GPU: Forbid usage of
inkeyword in C++ shaders - Clément Foucault - GPU: Shader Tool: Add support for string builtin types - Clément Foucault
- GPU: Shader Tool: Add last missing pieces for SRT implementation - Clément Foucault
- GPU: Shader Create Info: Reduce object size - Clément Foucault
- GPU: Shader: Conditional Resouce attribute - Clément Foucault
- GPU: Shader C++ compatibility: Add support for swizzle function - Clément Foucault
- GPU: Make sure to enable printf buffer only if printf function is used - Clément Foucault
- GPU: Shader Tool: Several cleanups and improved robustness - Clément Foucault
- GPU: Shader Tool: Allow erasing invalid token - Clément Foucault
- GPU: Shader Tool: Improve readability of reference argument - Clément Foucault
- GPU: Shader Tool: Move SRT access macros before struct - Clément Foucault
- GPU: Shader Tool: Several Improvements - Clément Foucault
- GPU: Shader Tool: Add aggregate initializer and designated initializer lists - Clément Foucault
- GPU: Shader Tool: Add host_shared attribute for struct - Clément Foucault
- GPU: Shader Tool: Add builtin support for union inside structs - Clément Foucault
- GPU: Shader Tool: Add support for matrices and nested struct inside unions - Clément Foucault
- GPU: Shader Tool: Add back struct alignment linting - Clément Foucault
- GPU: Make sure to properly reserve keywords during C++ compilation - Clément Foucault
- GPU: Python: Avoid warning about missing generated include - Clément Foucault
- GPU: Shader Tool: Move union and host shared lint after template expansion - Clément Foucault
- GPU: Shader Tool: Add support for array linting, remove unchecked attribute - Clément Foucault
- GPU: Shader: Change out and inout qualifiers to references - Clément Foucault
- GPU: Shader: Ensure types used in buffers are checked by shader tool - Clément Foucault
- GPU: Shader Tool: Rework enum support - Clément Foucault
- GPU: Rename gpu::unroll attribute to unroll - Clément Foucault
GPU Tests
- GPU Tests: Provide test output details when it fails - Sergey Sharybin
Geometry Nodes
- Geometry Nodes: support finding nodes by warning messages - Jacques Lucke
- Geometry Nodes: Add Minimum stretch unwrap option - Eitan Traurig
- Geometry Nodes: Register separate operator for each node tool - Hans Goudey
- Geometry Nodes: Bone Info node for reading armature pose - Jacques Lucke
glTF
- glTF: remove use of use_nodes (missed in a previous commit) - Julien Duroure
Grease Pencil
- Grease Pencil: Allow all remaining sculpt tools to sculpt Bezier handles - Casey Bianco-Davis
- Grease Pencil: Improve draw performance at beginning and end of stroke - Falk David
I18N
- I18N: Add Norwegian, Update UI translations from git/weblate (674437c68b6421a5f0). - Bastien Montagne
- I18N: Updated UI translations from git/weblate repository (87294b99ab2fd1a). - Bastien Montagne
- I18N: Remove virtually empty and inactive languages. - Bastien Montagne
- I18N: Updated UI translations from git/weblate repository (8134765c953ff476). - Bastien Montagne
- I18N: Updated UI translations from git/weblate repository (dabb3a19295dcb00). - Bastien Montagne
Introduce BVH export option to sort bone child node name appearances
MEM
- MEM: Add MEM_new_array_for_free for allocating array with constructors - Brecht Van Lommel
macOS
- macOS: Animation Player zoom window size fix and keybinds improvements - Jonas Holzman
- macOS: Allow extensions to request camera permissions - Jonas Holzman
- macOS: Allow extensions to request system audio capturing permissions - Jonas Holzman
Make.bat
- Make.bat: Fix building with VS2026 - Aldo Bleeker
Mesh
- Mesh: Store clone and stencil UV map status as strings - Hans Goudey
- Mesh: Check indices when validating vertex groups - Hans Goudey
Metal
- Metal: Add back support for non-program point size - Clément Foucault
Modeling
- Modeling: add support for snapping to face center - tariqsulley
- Modeling: add snapping to the interactive bevel operator - Zaituny
Nodes
- Nodes: Node Wrangler: Add "Start Frame" property to "Add Image Sequence" Operator - IREXTIA
- Nodes: Additional check for availability of next socket before adding spacing - IREXTIA
- Nodes: add boilerplate for multiple new data-block socket types - Jacques Lucke
- Nodes: Remove Use Nodes for Light - Habib Gahbiche
Outliner
Overlay
- Overlay: infinite grid using line draw - Mark van de Ruit
- Overlay: Add UV edge opacity slider in non-edit UV editor - Mark van de Ruit
Paint
- Paint: Improve cancelling stroke support - Sean Kim
- Paint: Expose debug options in UI - Sean Kim
PyAPI
- PyAPI: unbreak Python 3.14 build, add opcodes for tests to pass - Campbell Barton
Python
- Python: introduce Disk File Hash Service - Sybren A. Stüvel
RNA
- RNA: add callback to support dynamic property ui description - Pardhav Maradani
- RNA: UI: Mark unused UI list parameter as deprecated - Julian Eisel
Refactor
- Refactor: Shapekey code - Christoph Lendenfeld
- Refactor: Un-indent shapekey code - Christoph Lendenfeld
- Refactor: Geometry Nodes: avoid tree references in mapping - Jacques Lucke
- Refactor: Remove legacy action code - keyframing - Christoph Lendenfeld
- Refactor: Functions: allow move-only function in multi-function builders - Jacques Lucke
- Refactor: Vulkan: Vertex Input Description Pool - Jeroen Bakker
- Refactor: Geometry Nodes: make evaluation graph independent of original node tree - Jacques Lucke
- Refactor: UI: Avoid legacy code in UI job progress template - Julian Eisel
- Refactor: Assets: Deduplicate asset import code - Julian Eisel
- Refactor: UI: Use std::string for drag & drop disabled hint storage - Julian Eisel
- Refactor: GPU: Shader Preprocessor: Use newer parser features for methods - Clément Foucault
- Refactor: UI: Remove ui::Layout::absolute_block method - Guillermo Venegas
- Refactor: Vulkan: Move vertex input to its own header file - Jeroen Bakker
- Refactor: GPU: Migrate unpack row length to parameter - shikhin
- Refactor: GPU: Shader Tool: Use parser for reference mutations - Clément Foucault
- Refactor: BLO: deduplicate creating decompressing .blend file reader - Jacques Lucke
- Refactor: UI: Rename uiBut to blender::ui::Button, keeping alias - Hans Goudey
- Refactor: Move interface code to blender::ui namespace - Hans Goudey
- Refactor: UI: Remove "UI_" prefix from functions in namespace - Hans Goudey
- Refactor: Paint: Rework object space querying API with paint BVH - Sean Kim
- Refactor: UI: Move theme functions to ui::theme namespace - Hans Goudey
- Refactor: Move some wmWindow fields to runtime struct - Hans Goudey
- Refactor: Move some wmWindow fields to runtime struct - Hans Goudey
- Refactor: shapekey copy function - Christoph Lendenfeld
- Refactor: Use socket declarations for Cryptomatte node - Omar Emara
- Refactor: Geometry Nodes: ensure closure owns direct data of captured values - Jacques Lucke
-
Refactor: Paint: Limit access to
bContextinpaint_cursor.cc- Sean Kim -
Refactor: Change
PaintStroketo virtualstruct- Sean Kim - Refactor: shapekey - simpler copy function - Christoph Lendenfeld
- Refactor: Remove legacy action code from animrig - Christoph Lendenfeld
- Refactor: Simplify shapkey copy function - Christoph Lendenfeld
- Refactor: Shapekey - remove range argument - Christoph Lendenfeld
- Refactor: Nodes: Move default node tree from ED to BKE - Habib Gahbiche
-
Refactor: Remove access of
bContextin Curves Sculpt brushes - Sean Kim - Refactor: Use attribute API in paint_image_proj.cc - Hans Goudey
- Refactor: Mesh: Use attribute API to ensure UV map pin attribute - Hans Goudey
- Refactor: Mesh: Avoid CustomData in active color access - Hans Goudey
- Refactor: Template parametrization of KDTree - илья _
- Refactor: Shapekey - evaluate absolute - Christoph Lendenfeld
- Refactor: RNA: Change structs linked list to vector - Hans Goudey
- Refactor: move Wayland/CSD utilities into a separate file - Campbell Barton
- Refactor: Use socket declarations for Render Layers node - Omar Emara
- Refactor: UI: Remove utility to override button type - Guillermo Venegas
- Refactor: UI: Remove unused UI-List code - Julian Eisel
- Refactor: Add rna_define.cc to CMake sources for bf_rna library - Jaume Bellet
- Refactor: UI: Use cpp types and methods for Panel sorting - Guillermo Venegas
- Refactor: Compositor: Move static cache outside of the context - Omar Emara
- Refactor: Compositor: Remove type generic load and store methods - Omar Emara
- Refactor: Compositor: Unify EWA sampling functions - Omar Emara
- Refactor: Remove legacy action code from editors - Christoph Lendenfeld
- Refactor: Compositor: Type template sample nearest extended method - Omar Emara
- Refactor: Compositor: Type template sample bilinear zero method - Omar Emara
- Refactor: Compositor: Type template sample bilinear extended method - Omar Emara
- Refactor: Cycles: Remove use of RNA C++ API: mesh.cpp - Hans Goudey
- Refactor: Cycles: Remove use of RNA C++ API: curves.cpp - Hans Goudey
- Refactor: Cycles: Remove use of RNA C++ API: volume.cpp - Hans Goudey
- Refactor: Cycles: Remove use of RNA C++ API: viewport.cpp - Hans Goudey
- Refactor: Cycles: Remove use of RNA C++ API: light.cpp - Hans Goudey
- Refactor: Cycles: Remove use of RNA C++ API: pointcloud.cpp - Hans Goudey
- Refactor: Cycles: Create PointerRNA properly with owner_id - Hans Goudey
- Refactor: Geometry Nodes: improve bundle api - Jacques Lucke
- Refactor: create function for setting pose bone selection state - Christoph Lendenfeld
- Refactor: Use socket declarations for Image node - Omar Emara
- Refactor: Cycles: Remove use of RNA C++ API: camera.cpp - Hans Goudey
- Refactor: Cycles: Remove use of RNA C++ API: light_linking.cpp - Hans Goudey
- Refactor: Cycles: Remove use of RNA C++ API: geometry.cpp - Hans Goudey
- Refactor: Cycles: Remove use of RNA C++ API: shader.cpp - Hans Goudey
- Refactor: Cycles: Remove use of RNA C++ API: output_driver.cpp - Hans Goudey
- Refactor: Cycles: Move kernel feature flags to own file, add comments - Brecht Van Lommel
- Refactor: BLO: move writer/reader struct definitions to header - Jacques Lucke
- Refactor: Default initialize structs that embed DNA structs - Brecht Van Lommel
- Refactor: BLO: use BlendWriter::write_struct_by_name - Jacques Lucke
- Refactor: BLO: use BlendWriter::write_struct_by_id - Jacques Lucke
- Refactor: BLO: use BlendWriter::write_struct_at_address_by_id - Jacques Lucke
- Refactor: BLO: use BlendWriter::write_struct_at_address_by_id_with_filecode - Jacques Lucke
- Refactor: BLO: use BlendWriter::write_struct_array_by_name - Jacques Lucke
- Refactor: BLO: use BlendWriter::write_struct_array_by_id - Jacques Lucke
- Refactor: BLO: use BlendWriter::write_struct_array_at_address_by_id - Jacques Lucke
- Refactor: BLO: use BlendWriter::write_struct_list_by_name - Jacques Lucke
- Refactor: BLO: use BlendWriter::write_struct_list_by_id - Jacques Lucke
- Refactor: Remove use of goto in KDTree - илья _
- Refactor: BLO: use new BlendWriter::write_struct method - Jacques Lucke
- Refactor: Compositor: Reset cache manager after evaluation - Omar Emara
- Refactor: Compositor: Move handling for cache manager canceling - Omar Emara
- Refactor: Compositor: Move node tree validation to scheduler - Omar Emara
- Refactor: Compositor: Remove public DNode references - Omar Emara
- Refactor animdata handling in node group operators - Lukas Tönne
Sculpt
Spreadsheet
- Spreadsheet: support showing object values - Jacques Lucke
Subdiv
Tests
- Test: glTF: check recursively on input directories - Julien Duroure
- Tests: glTF: Use saved parameters at export - Julien Duroure
- Tests: Add Subsurface Glowing Artifact test - weizhen
- Tests: glTF: Add some tests - Julien Duroure
- Tests: Add unit tests for using bundled essential brushes - Sean Kim
- Tests: UI: Add UI tests for fullscreen and stacked fullscreen handling - Julian Eisel
- Tests: UI: Add more UI tests for stacked fullscreens - Julian Eisel
- Tests: UI: Add more UI tests for stacked full-screens (cont.) - Julian Eisel
- Tests: USD: Move several python validated tests to the compare framework - Jesse Yurkovich
UI
- UI: Snapping and Improved Feedback for IMAGE_OT_view_zoom - Harley Acheson
- UI: Don't break playhead when drawing subframes - Christoph Lendenfeld
- UI: Bring back progress bars for file and asset browsers - Julian Eisel
-
UI: Add workspace status text for
wm.radial_controloperator - Sean Kim - UI: Quad View Resizing - Harley Acheson
- UI: Capitalization of Quad View in Report Message - Harley Acheson
- UI: Don't show progress bar cancel button if not cancel-able - Julian Eisel
- UI: Area Movement Soft Snapping at Region Heights - Harley Acheson
- UI: Center Align Non-Overlapped Header Status Text - Harley Acheson
- UI: Camera (Restrict Render) Icon Changes - Harley Acheson
- UI: Monitor (Restrict View) Icon Vertical Adjustment - Harley Acheson
- UI: Show User Fonts with System Fonts (Win32) - Harley Acheson
- UI: USB Drive Icon for Windows - Harley Acheson
- UI: support search-on-key-press when adding new workspace - Jacques Lucke
- UI: replace LIBDECOR with client side decorations (CSD) for Wayland - Campbell Barton
- UI: support filtering by repository in the extension preferences - Nick Alberelli
- UI: Allow using panel categories to define navigation sections generally - Julian Eisel
- UI: Default 'Save Modified Images' checkbox to enabled - Sean Kim
- UI: Refactor Workspace/Screen copying code. - Bastien Montagne
- UI: reduce size of the marker region - Christoph Lendenfeld
USD
- USD: Allow cancelation during object creation and tidy up progress calc - Jesse Yurkovich
UV
- UV: Select UVs in a specified tile operator - Eitan Traurig
Unit Tests
- Unit Tests: Test shapekey evaluation - Christoph Lendenfeld
VSE
- VSE: Add Echo sound modifier - golden dragon
- VSE: add Meta Strip Volume - Ramon Klauck
- VSE: add Search entry in add menu - Jacques Lucke
- VSE: UI: Consistently name scene sync feature - Falk David
- VSE: Move strip time related functions to DNA - Richard Antalik
-
VSE: Python API: Add
SequenceTimelineChannel.numberproperty - John Kiril Swenson - VSE: Box Gesture in Blade Tool - Ramon Klauck
- VSE: Add Missing Keymap Items to Industry Compatible - John Kiril Swenson
- VSE: Set preview frame to opposite side when moving blade box - Ramon Klauck
- VSE: Add snapping to metastrip range - John Kiril Swenson
Vulkan
- Vulkan: Dynamic State Stencil - Jeroen Bakker
- Vulkan: Add VK_EXT_line_rasterization support - Mark van de Ruit
- Vulkan: Remove support for matrices as vertex attributes - Jeroen Bakker
- Vulkan: Remove support for matrices as vertex attributes - Jeroen Bakker
- Vulkan: Dynamic State front face - Jeroen Bakker
- Vulkan: Disable features not available MacOS - Jeroen Bakker
- Vulkan: Vertex Input Dynamic State - Jeroen Bakker
- Vulkan: Report missing pipeline states - Jeroen Bakker
- Vulkan: Workaround AMD driver issue - Jeroen Bakker
- Vulkan: Improve Debug Messages - Jeroen Bakker
- Vulkan: Synchronize features with KosmicKrisp - Jeroen Bakker
- Vulkan: Enable previous failing sss_reflection_clamp render test - Jeroen Bakker
- Vulkan: Reduce memory pressure when uploading textures - Jeroen Bakker
- Vulkan: Temporary disable image host copy - Jeroen Bakker
- Vulkan: Enable Workbench+Overlay render tests - Jeroen Bakker
- Vulkan: Disable host image copy for Windows/NVIDIA - Jeroen Bakker
- Vulkan: Sync GPU_TEXTURE_USAGE_SHADER_READ meaning - Jeroen Bakker
- Vulkan: Enable VMA asserts - Jeroen Bakker
- Vulkan: Disable host image copy on Linux/NVIDIA - Jeroen Bakker
- Vulkan: Disable compositor tests - Jeroen Bakker
Windows ARM64
- Windows ARM64: Fix compilation with MSVC - Anthony Roberts
XR
- XR: Prevent displaying uninitialized error string on instance creation failure - Jonas Holzman
- XR: Cleanup: Small improvements to instance creation logic - Jonas Holzman
- XR: Navigation scale system improvements - Jonas Holzman
- XR: Decouple XR action operator handlers from main window handlers - Jonas Holzman
- XR: Arc teleportation ray drawing and functionalities overhaul - Jonas Holzman
- XR: Increase teleportation arc control points amount, cleanup use of macro - Jonas Holzman
14 Comments
Hi Pablo
No questions, just wishing everyone a nice holidays, and end of the year!
Hi Pablo. I hope you get better soon. In one of your previous streams, you mentioned that anyone could share their Geometry Node asset set. I've created my own text animation asset and would like to share it. Please list the steps I need to take so I can share my set. photo-pick.com/online/R2Gg4DIY.link I haven't shared this anywhere yet, but I'm all set to do it. This will be especially relevant if the String to Curve node is updated in Blender 5.1. Thank you very much and Merry Christmas!
Hi Pablo! Hope you get well soon!
Since Blender 4.x there has been pushes to implement AnimAide tools into vanilla Blender. But some features have never been implemented - like the AnimOffset (Which allows to adjust the animated object's pose on a whole animation level in one change and the other keyframes are auto-adjusted to match) and AnimOffset Masks (Which allows to set a specific timeframe of influence for AnimOffset including optional ease-in/out areas if you don't want it to affect the whole animation). I've been using the addon version for these features but it broke in 4.0, the community has made a fixed branch for it but now in 5.0 the addon version broke again. Any hope on those tools getting officially into blender?
Also, do we also have a timeframe or version expected for animation Layers to drop?
Someone mentioned at the start of the stream that redshift had implemented tesselation free displacement and if blender will look into implementing this tech as well? hopefully for both Cycles and EEVEE. cgchannel.com/2025/12/maxon-releases-redshift-2026-2/ perso.telecom-paristech.fr/boubek/papers/TFDM/
Will we ever get back the shadow pass? Or I'm I just not finding a replacement that's already there? Shadow catcher is pretty annoying for contact shadows in product renders
Hi Pablo, are there any optimizations planned for scenes with a large number of objects? With tens of thousands of objects (even when instanced), every action - such as deleting, renaming, or selecting - becomes very slow. Happy Christmas and thank you for your long-term work on this amazing piece of SW! 🙏
that was in the blender 2025 survey, when we getting the results on that btw pablo? also yes i clicked on large scene support.
Hi Pablo!
Are you aware of any decent ways to solve preselection in a Blender way without writing a bunch of primitive code to draw lines and stuff in GLSL? Specifically I'm talking about the common software interaction that happens when you hover over an entity that's about to be selected and then it changes display state in some way prior to clicking. As best I can tell, if you want this behavior in a Blender extension you have to get very in the weeds with special GLSL shaders and so, as a result, only a few extensions support this kind of drawing overlay.
Happy Holidays!
PABLO! got to see you live again. How are you? hope you guys and your family enjoy the holiday and new year. Question are there any updates on the Animation Layer system? Hoping it comes out next year, Also where do we go to give feedback on new features in development? Thanks.
Hola Pablo! Wanna pay homage to you for Blender today, to Germano Cavalcante for his work and contribution, and to Blender for this awesome 5.0 release. The future of this software looks brighter every year <3.
Hi Pablo, how are you, how are you doing, I hope you are doing well I grieve with you. It's a shame that Blender doesn't have the option to turn off automatic grid subdivision in orthographic views. other programs have no problem with this, and can configure the Grid with any Unit System Yes, there is a feature request for that on Right-Click Select, but why don't you ask about it again on stream :)
Blender console window is not closing until we close the whole software
Hola Pablo! Happy late birthday, and feel better soon! <3 Two questions...
Can (Brush) Assets exist in more than 1 Catalog? I want to have an 'Alphas' catalog, but also a 'Zbrush' catalog, but also a 'Favorites' catalog. Solid asset management will be huge for ~5.1 when users can easily create and share Brush Assets!
Love the Kaft shirts! More than one family member also tried to order shirts from store.blender.org but were informed they're not available. It has often been said the store was challenging to manage... but isn't there enough demand to make it a profitable revenue stream for Blender?
Hola Pablo, from Rotterdam, the Netherlands! (My first time commenting on the forum)
Do you think Blender will ever look into developing Tessellation-Free Displacement Mapping for Cycles, just like Redshift recently implemented?
Paper Name: Tessellation-Free Displacement Mapping for Ray Tracing
I would love to delve into the possibility of contributing.