HDR - Blender Today LIVE #262
Leave questions and comments for Pablo Below!
Changelog between June 24, 2025 - July 22, 2025 at 12h
846 commits in total, of which 255 are fixes and 1 cleanup.
AUTHORS
- AUTHORS: add 45 new authors - Campbell Barton
- AUTHORS: de-duplicate - Campbell Barton
Anim
- 🔸 Action Slot selector UI: Show Slot Type - Philipp Oeser
- 🔸 Anim: Fix incorrect fix for weight paint Smooth Operator - Nathan Vegdahl
- Anim: Hide unassigned bone when any collection is marked as solo - Pratik Borhade
Assets
- 🔸 Assets: Add scene assets - Falk David
Attributes
- Attributes: Use AttributeStorage instead of CustomData for Instances - Hans Goudey
- Attributes: Use AttributeStorage for curves and Grease Pencil - Hans Goudey
BLF
- BLF: suppress assertions when displaying non UTF8 text - Campbell Barton
BLI
-
BLI: Ensure
rcpandsafe_rcpare not used with integral types - Sean Kim - BLI_string: add BLI_str_utf8_invalid_substitute - Campbell Barton
- BLI_string: add UTF8 aware BLI_snprintf functions & macros - Campbell Barton
- BLI_string_utf8: add BLI_str_utf8_column_count - Campbell Barton
BPY
-
BPY: Add basic blendfile version info in data returned by
bpy.data.libraries.load()- Bastien Montagne
Benchmark Tests
- Benchmark Tests: improve error reporting. - Bastien Montagne
Build
- Build: resolve error building without TBB - Campbell Barton
- Build: correct error in 2a414eea0c0bfd7063f6d45a33e339698196f862 - Campbell Barton
- Build: add missing include for Linux & GCC15 - Campbell Barton
- Build: unbreak WITH_HEADLESS, !WITH_PYTHON configurations - Campbell Barton
- Build: unbreak building WITH_FFMPEG=OFF - Campbell Barton
- Buildbot MacOS: Increase xcode version to 16.3 - Bastien Montagne
CMake
- CMake: Make ninja pool jobs setup report computed values. - Bastien Montagne
- CMake: Ninja pool jobs: tweak memory values. - Bastien Montagne
- CMake: Further increase RAM threshold for regular compile jobs. - Bastien Montagne
- CMake: quiet build warnings from fmtlib - Campbell Barton
- CMake: Sync up minimum version to 3.10 - Sebastian Parborg
- CMake Ninja Jobs: Better auto-compute of jobs values. - Bastien Montagne
Cleanup
- Cleanup: Overlay: Avoid motion path issuing warn about missing uniforms - Clément Foucault
-
Cleanup: Use C++ math types and functions for
multires_reshape_util.cc- Sean Kim -
Cleanup: Use C++ math types and functions for
multires_reshape_smooth.cc- Sean Kim -
Cleanup: Use C++ math types and functions for displacement
Evaluator- Sean Kim -
Cleanup: Use C++ types and functions for
multires_reshape_apply_base- Sean Kim - Cleanup: Attributes: Properly use unitialized memory for copy - Hans Goudey
- Cleanup: Remove meaningless const for return by value - Hans Goudey
- Cleanup: Attributes: Add AttributeOwner function for accessor - Hans Goudey
- Cleanup: Attributes: AttributeOwner utility to retrieve storage - Hans Goudey
- Cleanup: Attributes: Implement get_builtin_default for PointCloud - Hans Goudey
- Cleanup: Attributes: Resolve reference binding to null warning - Hans Goudey
- Cleanup: Sequencer: Remove uneeded uniform creating warnings - Clément Foucault
- Cleanup: return a boolean from BPY_context_member_get, check it's result - Campbell Barton
- Cleanup: remove redundant call to BLI_path_basename - Campbell Barton
- Cleanup: correct flag name for NDOF Y/Z axis swap - Campbell Barton
- Cleanup: Add missing include to make header independent - Hans Goudey
- Cleanup: USD: Prevent some unneeded char to string conversions - Jesse Yurkovich
-
Cleanup: Use
blender::Arrayinstead of manually allocated int arrays - Sean Kim -
Cleanup: Remove unused
BKE_multires.hhmethods - Sean Kim - Cleanup: Vulkan: Enable extensions - Jeroen Bakker
- Cleanup: Vulkan: Enable extensions (2) - Jeroen Bakker
- Cleanup: Fix warnings - Sean Kim
- Cleanup: make the blend file header private - Campbell Barton
- Cleanup: use nodiscard attribute for functions in the Python API - Campbell Barton
- Cleanup: quiet deprecation warning building with Python 3.14 - Campbell Barton
- Cleanup: Correct UI on Translate node - Omar Emara
- Cleanup: VSE: Remove duplicate function - il4n
- Cleanup: USD: Various non-functional changes for usd_light_convert.cc - Jesse Yurkovich
- Cleanup: de-duplicate doc-strings in GHOST - Campbell Barton
- Cleanup: use const custom cursor arguments to GHOST - Campbell Barton
- Cleanup: pass cursor pixel data by reference instead of by value - Campbell Barton
- Cleanup: use float2 for the cursor hot-spot - Campbell Barton
- Cleanup: rename the value used to store the cursor image - Campbell Barton
- Cleanup: make format - Thomas Dinges
- Cleanup: Make format - Thomas Dinges
-
Cleanup: Remove unused struct from
subdiv_ccg.cc- Sean Kim -
Cleanup: Use references instead of pointers for
subdiv_ccg.cc- Sean Kim - Cleanup: Remove unused mesh mapping function - Hans Goudey
- Cleanup: Use span arguments for mesh mapping function - Hans Goudey
- Cleanup: Attributes: Remove outdated comment - Hans Goudey
- Cleanup: Use span accessor for mesh edges in softbody.cc - Hans Goudey
- Cleanup: Use attribute API to access UV maps in a few places - Hans Goudey
- Cleanup: Use attribute API to access selection attributes - Hans Goudey
- Cleanup: Use attribute API to access UV map select/pin attributes - Hans Goudey
- Cleanup: Use attribute API for colors in particle instance modifier - Hans Goudey
- Cleanup: Use attribute API in texture paint code - Hans Goudey
- Cleanup: Use attribute API for some solidify modifier inputs - Hans Goudey
- Cleanup: Use attribute API in Mesh RNA API - Hans Goudey
- Cleanup: Grease Pencil: Remove "fast draw" code - Falk David
- Cleanup: minor tweaks to ghost cursor internals - Campbell Barton
- Cleanup: Add comments for adjacency maps in SubdivCCG - Sean Kim
- Cleanup: Make format - Thomas Dinges
- Cleanup: resolve Python linter warnings - Campbell Barton
- Cleanup: Remove unnecessary mutex for draw attribute requests - Hans Goudey
- Cleanup: Remove unnecessary SDNA info for node tool flags - Hans Goudey
- Cleanup: remove redundant calls to PyErr_Clear after PyErr_Print - Campbell Barton
-
Cleanup: Remove meaningless
consts in function declaration - Falk David - Cleanup: Remove unused header - Pratik Borhade
- Cleanup: Use one struct member for GP and curve point count - Pratik Borhade
- Cleanup: UI: Remove unused pie menu functions - Guillermo Venegas
- Cleanup: Avoid unnecessary indentation levels in 'tranform.cc' - Germano Cavalcante
- Cleanup: spelling - Campbell Barton
- Cleanup: add missing license header - Campbell Barton
- Cleanup: typos in code-comments, quote code literals - Campbell Barton
- Cleanup: sort file lists in CMake - Campbell Barton
- Cleanup: various non-functional changes in C++ - Campbell Barton
- Cleanup: Unused variables in grease_pencil_join_selection_exec - YimingWu
- Cleanup: Cycles: Move F82 Fresnel model into helper function - Lukas Stockner
- Cleanup: order capability flags as defined - Campbell Barton
- Cleanup: use const reference for cursor data - Campbell Barton
- Cleanup: use an integer to represent the cursor size - Campbell Barton
- Cleanup: use consistent terms in capability flags - Campbell Barton
- Cleanup: remove capabilities from the PyAPI that aren't used - Campbell Barton
- Cleanup: format - Campbell Barton
- Cleanup: remove license header from template - Campbell Barton
- Cleanup: Remove extra if block from poll function - Pratik Borhade
- Cleanup: Remove unused paint_utils.cc method - Sean Kim
- Cleanup: add missing struct-comments for bmesh operator defines - Campbell Barton
- Cleanup: white space warnings from "check_struct_comments" - Campbell Barton
- Cleanup: quiet unused argument warning - Campbell Barton
- Cleanup: resolve missing declaration warning - Campbell Barton
-
Cleanup: Extract
paint.sample_coloroperator to separate file - Sean Kim - Cleanup: Fix build error from missing include in threads.cc - Hans Goudey
-
Cleanup: Remove unused includes in
sculpt_*andpaint_*files - Sean Kim - Cleanup: typo, spelling - Campbell Barton
- Cleanup: use conventional license formatting - Campbell Barton
- Cleanup: indentation in cmake, sort files - Campbell Barton
- Cleanup: format - Jesse Yurkovich
-
Cleanup: Remove (unused)
ubsan.suppfile. - Bastien Montagne - Cleanup: Use references for CustomData arguments in data transfer - Hans Goudey
- Cleanup: Use mesh helper functions to access vertex group data - Hans Goudey
- Cleanup: Simplify vertex group data access in data transfer modifier - Hans Goudey
- Cleanup: Use attribute API for Multires unsubdivide index mapping - Hans Goudey
- Cleanup: Use attribute API to access UV map for baking - Hans Goudey
- Cleanup: Use attribute API for solidify modifier result attributes - Hans Goudey
- Cleanup: Use mesh helper function to access edge data - Hans Goudey
- Cleanup: Use attribute API to create mesh attributes in Freestyle - Hans Goudey
- Cleanup: Line Art: Simplify Freestyle flag CustomData access - Hans Goudey
- Cleanup: Remove unnecessary includes in attributes files - Hans Goudey
- Cleanup: Use attribute API for dynamic paint color outputs - Hans Goudey
- Cleanup: Use attribute API for mesh data in vertex group smooth operator - Hans Goudey
- Cleanup: USD: Use pxr::UsdTimeCode for all time values - Jesse Yurkovich
- Cleanup: Remove unused includes of grease pencil legacy headers - Jesse Yurkovich
- Cleanup: reduce right shift, wrap long lines - Campbell Barton
- Cleanup: wrap long lines in operator tests - Campbell Barton
- Cleanup: Use prescribed symbol syntax in Path Template code comments - Nathan Vegdahl
-
Cleanup: document the
PROP_ID_REFCOUNTRNA property flag - Sybren A. Stüvel - Cleanup: USD: Use string instead of char array for prim_path options - Jesse Yurkovich
- Cleanup: USD: Assign op properties directly to the import/export options - Jesse Yurkovich
- Cleanup: minor changes to wm_cursors.cc - Campbell Barton
- Cleanup: pass the cursor size to cursor_bitmap_from_text - Campbell Barton
- Cleanup: move cursor details into struct doc-strings - Campbell Barton
- Cleanup: rename WM_window_{set_dpi => dpi_set_userdef} - Campbell Barton
- Cleanup: doc-strings for currsor rasterization - Campbell Barton
- Cleanup: format - Campbell Barton
- Cleanup: white-space around C-style comment blocks - Campbell Barton
- Cleanup: Formatting - Hans Goudey
-
Cleanup: Remove unnecessary
constandenumprefixes - Sean Kim - Cleanup: de-duplicate dial gizmo clip plane calculation - Campbell Barton
- Cleanup: Use C++ vector types for CustomData layer data in RNA - Hans Goudey
-
Cleanup: Remove unused
active_vert_cofromCursorGeometryInfo- Sean Kim - Cleanup: Clarify comment position in custom data type conversion - Hans Goudey
- Cleanup: Remove else after return - Hans Goudey
- Cleanup: Formatting - Hans Goudey
- Cleanup: remove redundant imports - Campbell Barton
- Cleanup: Remove redundant parameter in new UI layout function - Julian Eisel
- Cleanup: Use StringRef, std::string for node panel toggles - Hans Goudey
- Cleanup: Use Span arguments for some mesh remapping functions - Hans Goudey
- Cleanup: Remove unused data transfer code - Hans Goudey
- Cleanup: correct spelling, typos & remove outdated comment - Campbell Barton
- Cleanup: quiet ignored qualifier & unused warnings - Campbell Barton
- Cleanup: various non-functional changes for C++ - Campbell Barton
- Cleanup: unify naming for named constructors - Jacques Lucke
- Cleanup: Remove unused legacy marco definitions - Falk David
-
Cleanup: Remove
GPENCIL_ANY_VERTEX_MASKmacro - Falk David - Cleanup: Mutable Span in geom compare - Mattias Fredriksson
- Cleanup: Add comment to wmWindow about pixelsize - Sean Kim
- Cleanup: quiet warnings, typo - Campbell Barton
- Cleanup: use snake case for GHOST's can_invert_color argument - Campbell Barton
- Cleanup: Improve output from OBJ export tests - Mattias Fredriksson
- Cleanup: Fix typo - Falk David
- Cleanup: Remove node recalculate flags code - Omar Emara
- Cleanup: Remove unused Viewer node ID member - Omar Emara
- Cleanup: Format - Richard Antalik
- Cleanup: Remove unused attribute RNA function - Hans Goudey
- Cleanup: UI: Slightly optimize uiBut memory layout - Guillermo Venegas
- Cleanup: spelling (make check_spelling_*) - Campbell Barton
- Cleanup: pass large arguments by const reference instead of by value - Campbell Barton
- Cleanup: use const cast - Campbell Barton
- Cleanup: Node gizmos: move ibuf check to centralized function - Habib Gahbiche
- Cleanup: UI: Remove redundant namespace prefixes - Guillermo Venegas
- Cleanup: Remove unused arguments to BKE_mesh_uv_vert_map_create - Hans Goudey
- Cleanup: Improve BKE_mesh_uv_vert_map_create arguments - Hans Goudey
- Cleanup: quiet unused variable warning - Jacques Lucke
- Cleanup: Replace index calculation with helper function - Sean Kim
- Cleanup: clarify the purpose of full-screen areas - Campbell Barton
- Cleanup: reduce right-shift in Python scripts - Campbell Barton
- Cleanup: quiet mypy warning - Campbell Barton
- Cleanup: use C style comments for descriptive text, doxygen doc-strings - Campbell Barton
- Cleanup: remove redundant checks in BLI_snprintf functions - Campbell Barton
- Cleanup: declare variables when assigned - Campbell Barton
- Cleanup: remove redundant calls to strlen, don't cast "const" away - Campbell Barton
- Cleanup: avoid redundant string formatting - Campbell Barton
- Cleanup: format - Campbell Barton
- Cleanup: format CMake files - Campbell Barton
-
Cleanup/Refactor: Readfile: Add a
fd_bmainnew pointer to FileData. - Bastien Montagne
Color Management
Compositor
- 🔸 Compositor: Support rotation for split node - Habib Gahbiche
- 🔸 Compositor: Support rotation for Split Node Gizmo - Habib Gahbiche
- 🔸 Compositor: Avoid redundant executions for only previews - Omar Emara
- Compositor: Support structure type - Omar Emara
- 🔸 Compositor: Add extension mode to Translate node - Benjamin Beilharz
- 🔸 Compositor: Add Extension Mode for Scale node - Benjamin Beilharz
- 🔸 Compositor: Add Extension Mode for Transform node - Benjamin Beilharz
- Compositor: Rename "Compositing Node Tree" to "Compositor Nodes" - Habib Gahbiche
- 🔸 Compositor: Add Disjoint and Conjoint Over operations - Omar Emara
- 🔸 Compositor: Integrate Sun Beams node into Glare node - Mohamed Hassan
- Compositor: Support host allocation for GPU compositing - Omar Emara
- 🔸 Compositor: Rename "Z" to "Depth" in Z Combine Node - Habib Gahbiche
- 🔸 Compositor: increase default node size to improve readability - Habib Gahbiche
- 🔸 Compositor: Support Menu socket and Menu Switch node - Omar Emara
- Compositor Tests: Reorganize folders to match node groupings - Ian Yoo
Core
- 🔸 Core: Add more variables for path templates - Nathan Vegdahl
- 🔸 Core: Add BLI_thread_queue priority and cancel support - Miguel Pozo
- Core: Clog Needs MINMAX define for Win32 - Harley Acheson
- Core: Replace BLI_buffer.hh with blender::Vector - Hans Goudey
- Core: use UTF8 string formatting for BKE_image - Campbell Barton
- Core: use UTF8 string formatting for BKE_image (missed last commit) - Campbell Barton
Curves
Cycles
- Cycles: Disable HIP RT by default in Blender 4.5 - Alaska
- Cycles: Allow Metal to print GPU Queue stats - Alaska
- Cycles: Simplify Metal backend with direct bindless resource encoding - Michael Jones
- Cycles: Remove glog dependency, redirect logs to CLOG - Brecht Van Lommel
- 🔸 Cycles: Always render volume as NanoVDB - Brecht Van Lommel
- 🔸 Cycles: Use stochastic sampling to speed up tricubic volume filter - Brecht Van Lommel
- Cycles: Detect volume attribute nodes that can use stochastic sampling - Brecht Van Lommel
- 🔸 Cycles: Support Thin Film iridescence in the Glass BSDF - Lukas Stockner
- 🔸 Cycles: Replace thin-film basis function approximation with accurate LUTs - Lukas Stockner
- Cycles: oneAPI: Fix DPC++ level issues for multi GPU execution - Nikita Sirgienko
- Cycles: MTLAccelerationStructureUsagePreferFastIntersection on macOS>=26 - Michael Jones
- 🔸 Cycles: Improve Metal kernel specialisation - Michael Jones
- Cycles: Fixing wrong PDF evaluation when BSDF closures are excluded by the light source - Sebastian Herholz
- Cycles: oneAPI: Compile only needed device binaries in multi-GPU case - Nikita Sirgienko
- Cycles: Bump minimum supported CUDA architecture to sm_50 - Thomas Dinges
Deps
- Deps: Win64: USD with PR #140102 - Ray Molenkamp
- Deps_builder: pydantic 2.11.7 - Ray Molenkamp
Disable fix for #141846
- Disable fix for #141846 - Campbell Barton
Doc
- Doc: Comment about using default i18n context for some mirror operators. - Bastien Montagne
- Docs: corrections, clarifications to code-comments - Campbell Barton
- Docs: Update RNA to user manual URL mapping - Aaron Carlisle
- Docs: Update RNA to user manual URL mapping - Aaron Carlisle
- Docs: add some code-comments regarding the default exclusions - Campbell Barton
- Docs: add readme for extensions - Campbell Barton
Extensions
- Extensions: strip the "www." prefix when creating repository names - Campbell Barton
- Extensions: suppress errors printed because of missing directories - Campbell Barton
- Extensions: exclude backup blend files when building an extension - Nika Kutsniashvili
Fix
- Fix: Constrain screenshot selection to window edges - Dhiraputta Pathama Tengara
- Fix: Attributes: Data potentially lost in versioning - Hans Goudey
- Fix: Geometry Nodes: crash with missing linked data-block - Jacques Lucke
- Fix: Crash when using coordinates in the compositor - Omar Emara
- Fix: Geometry Nodes: links removed after syncing bundle/closure nodes - Jacques Lucke
- Fix: Crash when opening files with animated compositor normal node - Habib Gahbiche
- Fix: Overlay: Region info not working if gizmos and overlays are disabled - Clément Foucault
- Fix: Realize Instances use-after-free with collections - Hans Goudey
- Fix: Overlay: Missing refresh when toggling retopology overlay - Clément Foucault
- Fix: Manifold boolean assert copying vertex group names twice - YimingWu
- Fix: Assert in barbershop file calculating GPU subdiv orco buffer - Hans Goudey
- Fix: Dead-lock in VSE audio waveform preview - Sergey Sharybin
- Fix: Vulkan: Validation error Wayland+NVIDIA - Jeroen Bakker
- Fix: PyDocs: GPUShader, use ref for better navigation - Andrej730
- Fix: Graph: Do not use deprecated op in footer - Pablo Vazquez
- Fix: AttributeStorage skips reading attributes from empty domains - Hans Goudey
- Fix: Remove All Materials operator is not greyed out when list is empty - Eitan Traurig
- Fix: Pydocs: EnumProperty items is also allowing iterables - Andrej730
- Fix: Dilate node clamps negative values on GPU - Tenkai Raiko
- Fix: USD: Use correct ReportList if collection cannot be found for export - Jesse Yurkovich
- Fix: USD: Use correct ReportList if collection cannot be found for export - Jesse Yurkovich
- Fix: memory leaks in OpenEXR thumbnail loader on error - Jorn Visser
- Fix: memory leaks in SVG & WEBP thumbnail loader on error - Campbell Barton
- Fix: missing error check when loading SVG cursors - Campbell Barton
- Fix: Workbench: Color imprecision for pure black color - Clément Foucault
- Fix: Workbench: Incomplete commit 5231f0c02a5ac35271394962f3a8c6e86ca4d13e - Clément Foucault
- Fix: Grease Pencil: Use correct "aspect_ratio" in draw tool - Falk David
- Fix: SubdivCCG uses 2x as much memory as needed for edge adjacency - Sean Kim
- Fix: Invalid default value when creating some builtin attributes - Hans Goudey
- Fix: Increase maximum collection name length for Collection Export - Jesse Yurkovich
- Fix: Default value ignored for some new builtin attributes - Hans Goudey
- Fix: Silence deprecated warning - Sean Kim
- Fix: crash using tab in attribute search - Jacques Lucke
- Fix: Workbench: Broken render tests after AA fix - Clément Foucault
- Fix: RNA_property_string_get returns string of incorrect length for id properties - Jacques Lucke
- Fix: "Layer" shows as mesh attribute domain option - Hans Goudey
- Fix: macOS: Support multi-monitor window positioning - Jonas Holzman
-
Fix: PyDocs - add missing
Context.copy()return type - Andrej730 -
Fix: PyDocs - add missing
Context.copy()return type - Andrej730 - Fix: Nodes: Correct label translation - илья _
- Fix: Overlay: Invalid RGB order in overlay theme colors - Sybren A. Stüvel
- Fix: Correct RGBA Cursor Sizing Error - Harley Acheson
- Fix: Incorrects filepaths on drag and drop with recursive option enabled - Guillermo Venegas
- Fix: Background paint strokes may not initialize certain settings - Sean Kim
- Fix: Collection name is clamped to 64 characters on creation - Guillermo Venegas
- Fix: Versioning of Normal node applies to all nodes - Omar Emara
- Fix: Grease Pencil: Crash when geometry has no drawings - Falk David
- Fix: Grease Pencil: Soft eraser leaves points with zero opacity - Falk David
-
Fix: Grease Pencil:
Set Handle Typeoperator for single handle - Casey Bianco-Davis -
Fix: Grease Pencil:
Material Selectdoesn't select bezier handles - Casey Bianco-Davis - Fix: Vulkan: Use feature struct - Jeroen Bakker
- Fix: Update selection in shapekey dopesheet - Pratik Borhade
- Fix: Wrong depth status in gizmo selection - Germano Cavalcante
- Fix: VSE: Zooming all the way in scrolls to the right - John Kiril Swenson
- Fix: UI: Extend select for tree-view not always working - Julian Eisel
- Fix: USD: Correct the exported extents for point instancers - Michael B Johnson
- Fix: Wrong GL data format for RG integer textures - Omar Emara
- Fix: Compositor: Potential crash if no active context is found - Habib Gahbiche
- Fix: Kuwahara Size can be negative - Omar Emara
- Fix: Asset shelf scrolling distance wrong when scrolling down - Guillermo Venegas
- Fix: Update tree view when selecting shape key from dopesheet - Pratik Borhade
- Fix: Viewer nodes inside node groups not updating properly - Habib Gahbiche
- Fix: wrong argument name in doc-string - Andrej730
- Fix: Grease Pencil: Bezier handle types not updating when transforming - Casey Bianco-Davis
- Fix: Potential assert in curves AttributeStorage versioning - Hans Goudey
- Fix: EEVEE/Workbench crash rendering without an active object - Brecht Van Lommel
- Fix: Geometry Nodes: Show "Structure Type" options in alphabetical order - Hans Goudey
- Fix: USD: Add MeshSequenceCache modifier for animated crease values - Jesse Yurkovich
- Fix: correct fixed sizes of strings used with MAX_ID_NAME - Campbell Barton
- Fix: assertion filling curve caps with a zero normal vector - Campbell Barton
- Fix: Importer can fail with blender file browser recursive option enabled - Julien Duroure
- Fix: Vulkan compositor tests do not run - Alaska
- Fix: Cycles Metal issue rendering with multiple NanoVDB grids - Brecht Van Lommel
- Fix: Wrong Cycles NanoVDB memory alignment on Windows - Brecht Van Lommel
- Fix: Grease Pencil: Assert duplicating layer with attributes - Pratik Borhade
- Fix: avoid divide by zero in the "Stretch To" constraint - Campbell Barton
- Fix: crash passing in --gpu-backend without an argument - Campbell Barton
- Fix: Preview render memory leak with new system ID properties - Brecht Van Lommel
- Fix: #141639: Renaming Boolean Operation Solver From Fast to Float - sake
- Fix: EEVEE glass BSDF broken after recent thin film addition - Brecht Van Lommel
- Fix: Cycles MetalRT motion blur crash in some scenes with static objects - Michael Jones
- Fix: Avoid tagging geometry with uninitialized attribute on add - Hans Goudey
- Fix: Cycles log levels conflict with macros on some platforms - Brecht Van Lommel
- Fix: Build error with NDEBUG after recent fix for log level macro - Brecht Van Lommel
- Fix: Node Wrangler: Various fixes and cleanup - Damien Picard
- Fix: Incorrect selection check in vertex group smooth after cleanup - Hans Goudey
- Fix: Grease Pencil: Problem removing last layer with attributes - Pratik Borhade
- Fix: Only last tangents layer is exported to fbx when mesh has multiple uv layers - Denis Meyzer
- Fix: Adaptive subdivision not updated when camera changes - Brecht Van Lommel
- Fix: Local method in versioning_500 was not static - Sebastian Parborg
- Fix: GPU: Missing error logs - Miguel Pozo
- Fix: crash displaying negative numbers in WM_cursor_time - Campbell Barton
- Fix: Geometry Nodes: output fields from closures - Jacques Lucke
- Fix: correction to recent WM_cursor_time fix - Campbell Barton
- Fix: Use correct thin-film setup for MaterialX glass bsdf - Jesse Yurkovich
- Fix: Assert finishing transformation with an 'Affect Only' option active - Germano Cavalcante
- Fix: VSE: Metastack channel preview with negative values - John Kiril Swenson
- Fix: add missing include - Jacques Lucke
- Fix: GPU: Build issue caused by missing directories - Clément Foucault
- Fix: Overlapping data transfer enum values - Hans Goudey
- Fix: Memleak importing NURBS through OBJ node importer - Mattias Fredriksson
-
Fix: Grease Pencil: Missing call to
finish()writing layer attributes - Falk David - Fix: Grease Pencil interpolation on cyclic curves shifts end point - Lukas Tönne
- Fix: Crash when Bevel operation is performed on border edges - Piotr Makal
- Fix: Potential issue with multires bake tangent handling - Hans Goudey
- Fix: Assert in Menu Switch node - Omar Emara
- Fix: Cycles preferences Python error after recent changes - Brecht Van Lommel
- Fix: Attributes: missing null check in when accessing attribute for write - Jacques Lucke
- Fix: Grease Pencil: Wrong layer attributes after reorder - Pratik Borhade
- Fix: Build error in lite build - Hans Goudey
- Fix: Crash with "color_attributes" property on Curves - Hans Goudey
- Fix: Typo in documentation for new POINT_UNIFORM_COLOR gpu shader - Jesse Yurkovich
- Fix: Assert after importing a USD scene with DomeLight - Habib Gahbiche
- Fix: Properly package unicode folders/files with make_source_archive.py - Sebastian Parborg
- Fix: incorrect string size writing to RenderStats::scene_name - Campbell Barton
- Fix #101702: EEVEE: Script node with shader output crashes blender - Clément Foucault
- Fix #102264: EEVEE: Shader recompilation when editing Vector Transform Node - Clément Foucault
- Fix #103499: View Pan not working for smaller clip start value - Clément Foucault
- Fix #103710: Crash on calling bpy.ops.mesh.loopcut in python script - Clément Foucault
- Fix #106312: Workbench: Texture interpolation is shared across material - Clément Foucault
- Fix #111060: Back side of rotate gizmos shows when zoomed in - Campbell Barton
- Fix #111098: Orbit around selection uses world origin - Campbell Barton
- Fix #115609: EEVEE: Material Preview gets Solid mode background color if world opacity is set to 0 - Clément Foucault
- Fix #115940, #111152: Handle access violations while loading Wintab - Jorn Visser
- Fix #118035: Don't import keymap with the same name as built-in ones - YimingWu
- Fix #120969: Overlay: Assert when drawing motion paths - Clément Foucault
- Fix #121266: Snap toggle in UI not updating during transform - Germano Cavalcante
- Fix #128169: Memory leak in bpy.data.meshes.new_from_object - Campbell Barton
- Fix #129232: Regression in drag toggle keyframe with upward motion - Guillermo Venegas
- Fix #135194: Deleting the last object in a scene leaves it visible in the viewport with MetalRT - Michael Jones
- Fix #135659: Some types of motion are incorrect at low step counts with MetalRT - Michael Jones
- Fix #136359: Add data-block selector to handle missing texture better - Julian Eisel
- Fix #136560: Grease Pencil: Alpha issue with "multiply" layer blending - Falk David
- Fix #137429: GPU: Allow missing attribute in pygpu_shader_attrs_info_get - YimingWu
- Fix #137750: Low timeline height when restoring area layout using different DPI - Jonas Holzman
- Fix #138359: Walk teleport fails when the scene scale isn't 1.0 - Campbell Barton
- Fix #138399: Key handle jumping when scaling to 0 - Christoph Lendenfeld
- Fix #138863: Filter Out Archives When Adding Quick Access Items on Windows - RedMser
- Fix #138909: Use space_type_set_or_cycle for Ctrl-Tab in Graph Editor - Harley Acheson
- Fix #139079: crash switching scene due to double depsgraph rebuild - Jacques Lucke
- Fix #139189: Fix incorrect base and vertex offset in index buffers - Jeroen Bakker
- Fix #139194: Grease Pencil: Crazyspace deformation broken when evaluated layers don't match original - Falk David
- Fix #139509: Slot assignment is lost when loading file saved in tweak mode - Christoph Lendenfeld
- Fix #139527: LibraryOverride bug because of Hair Curves. - Bastien Montagne
- Fix #139533: Select vertices and faces after bevel operation - Marc Hamamji
- Fix #139533: Select vertices and faces after bevel operation - Marc Hamamji
- Fix #139552: VSE strips wrongly occlude others, when render resolution scale is small - Aras Pranckevicius
- Fix #139715: Issue when duplicating Scene/Collection/Object with objects in EditMode. - Bastien Montagne
- Fix #139718: Always treat OSL cameras as inside a volume - Alaska
- Fix #139982: Subdivide curves doesn't interpolate curve tilt - Campbell Barton
- Fix #140152: EEVEE: Crash while playing animation - Clément Foucault
- Fix #140309: Invalid normals when using external render engine in Sculpt Mode - Sean Kim
- Fix #140381: Crash after deleting a node group and redo - Habib Gahbiche
- Fix #140430: Nodes: Hide panel names when socket is shown on modifier UI - YimingWu
- Fix #140439: Crash using "Edit Source" in popovers - Campbell Barton
- Fix #140558: No cache reset on every subframe of the bake range start frame - Lukas Tönne
- Fix #140562: Cycles crash with texture in custom camera with SVM on GPU - Lukas Stockner
- Fix #140574: Manifold boolean leaves redundant 2-edged vertices. - Howard Trickey
- Fix #140574: Manifold boolean leaves redundant 2-edged vertices. - Howard Trickey
- Fix #140597: Manifold boolean's new faces get material from operand object. - Howard Trickey
-
Fix #140615: Grease Pencil: Use
brush.strengthfor context panel - YimingWu - Fix #140621: Multi-object edit mode displays non-active UVs as faded - Sean Kim
- Fix #140668: Toggle brush support doesn't work with tool selection - Sean Kim
- Fix #140669: Graph Editor Gaussian smoothing causing artifacts for keys on subframes - Christoph Lendenfeld
- Fix #140718: Incremental snap sometimes has wrong aspect - Germano Cavalcante
- Fix #140740: Blender fails to output video - Richard Antalik
- Fix #140747: Ignore armature from custom shape list - Pratik Borhade
- Fix #140762: Overlay: Curve doesn't display Bevel Preview in Edit Mode - Clément Foucault
- Fix #140813: Bevel operation crashes when representative face is null. - Piotr Makal
- Fix #140813: Bevel operation crashes when representative face is null. - Piotr Makal
- Fix #140829: Crash after undoing "Set as Background" in video tracker - Campbell Barton
- Fix #140845: Outliner: Allow reordering linked collections - Pratik Borhade
- Fix #140927, #140912: OpenGL: Annotate draw on surface broken - Jeroen Bakker
- Fix #140929: Crash attempting to link from the current file from Python - Campbell Barton
- Fix #140933: "Group Socket Node" theme property left unset - quackarooni
- Fix #140934: Compositor: Support Grease Pencil pass in viewport - YimingWu
- Fix #140942: FBX importer fails when using file browser recursive option - Guillermo Venegas
- Fix #140962: Vertex Slide with Proportional Editing crashes Blender - Sybren A. Stüvel
- Fix #140969: Joining armature objects that share their data fails assertion - Sybren A. Stüvel
- Fix #140998: Grease Pencil stroke-level color jitter doesn't work - Sean Kim
- Fix #141012: Curve template allows zooming out beyond clip range - Lukas Tönne
- Fix #141017: Rotation snapping increment is wrong after changing mode - Germano Cavalcante
- Fix #141018: Gizmos allow editing linked data - Campbell Barton
- Fix #141024: Normalize active vertex group properly - Nathan Vegdahl
- Fix #141026: Degenerate Dissolve crashes Blender. - Howard Trickey
- Fix #141026: Degenerate Dissolve crashes Blender. - Howard Trickey
- Fix #141026: (again) Previous fix to vertex dissolve was buggy. - Howard Trickey
- Fix #141033: VSE proxies have inaccurate colors for YUV444 or full-range videos - Aras Pranckevicius
- Fix #141067: EEVEE: Mising UDIM texture Crash the EEVEE - Clément Foucault
- Fix #141070: missing viewport update after disabling viewer - Jacques Lucke
- Fix #141078: Vulkan: Assert when uploading to large vertex buffers - Jeroen Bakker
- Fix #141082: UV: Select overlap crash - Pratik Borhade
- Fix #141084: Sound glitches in render with equalizer - Richard Antalik
- Fix #141085: Cycles adaptive subdivision crash with zero length edges - Brecht Van Lommel
- Fix #141100: Compositor: Duplicated nodes when pressing Setup Tracking Scene - Habib Gahbiche
- Fix #141111: Time remapping should not affect the audio playback - Sebastian Parborg
- Fix #141112: EEVEE: Plane Probe is cut off in camera view if Shift X/Y - Clément Foucault
- Fix #141112: Plane Probe is cut off in camera view if Shift X/Y in certain way - Clément Foucault
- Fix #141112: Plane Probe is cut off in camera view if Shift X/Y in certain way - Clément Foucault
- Fix #141115: crash when using volume grids in simulation zone - Jacques Lucke
- Fix #141117: Sculpt mode edit voxel size stuck at certain values - Philipp Oeser
- Fix #141132: Crash on background GP render - Miguel Pozo
- Fix #141136: Cycles Hair black artifacts with direct coloring - Weizhen Huang
- Fix #141149: crash when toggling bake node muting - Jacques Lucke
- Fix #141158: Fullscreen startup file causes white flicker with Vulkan backend - Pratik Hadawale ~ sake :)
- Fix #141160: String input node in link-drag-search for output sockets - Hans Goudey
- Fix #141171: oneAPI: Rendering artifacts in barbershop scene - Xavier Hallade
- Fix #141177: crash opening file browser from geometry nodes modifier - Jacques Lucke
- Fix #141190: Strip cache not invalidated when keyframe is added - Richard Antalik
-
Fix #141222: Assert hit when resizing
CurvesGeometryto 0 - Falk David - Fix #141225: Hide Right Node Editor Scrollbars When Sidebar Visible - Harley Acheson
- Fix #141235: Unable to pick any brush from the Asset Popup - Pratik Borhade
- Fix #141238: Vulkan: Crash during upload huge geometry - Jeroen Bakker
- Fix #141243: Crash when removing constraints with drivers via python - Christoph Lendenfeld
- Fix #141245: Assert in VFX editor - Jeroen Bakker
- Fix #141247: Assert while using sculpt filter tools - Sean Kim
- Fix #141253: Bring back the global Draw lock - Miguel Pozo
- Fix #141261: Support outline generation for single point curves - Lukas Tönne
- Fix #141262: Undo speed regression (4.5) - Hans Goudey
- Fix #141274: Assert drawing debug drivers - Jeroen Bakker
- Fix #141282: VSE cache issues when rendering at reduced resolution scale - Aras Pranckevicius
- Fix #141305: Vulkan: Animation player memory leak - Jeroen Bakker
- Fix #141323: Copy to Selected doesn't properly update on some Bone props - Sybren A. Stüvel
- Fix #141325: Convert attribute operator broken for meshes - Hans Goudey
- Fix #141332: Add movie operator crashes Blender - Richard Antalik
- Fix #141332: Add movie operator crashes Blender - John Kiril Swenson
- Fix #141336: Modeling: Don't assume gizmo available in polybuild tool - Campbell Barton
- Fix #141339: Mantaflow: Clear Python errors when grids aren't available - Jorn Visser
- Fix #141341: Assert using proportional editing in object mode - Sybren A. Stüvel
- Fix #141345 - glTF: Fixes after recent Blender changes on IDprops - Julien Duroure
- Fix #141347: Assert in polybuild - Jeroen Bakker
- Fix #141351: Default edge dissolve angle leaves many verts undissolved - Jason C. Wenger
- Fix #141355: Set attribute operator broken for meshes - Hans Goudey
- Fix #141357: Increase Size of Some Gizmo Arrow Parts While Picking - Harley Acheson
- Fix #141378: Anim Channel Pinning on object data lost adding object anim - Philipp Oeser
- Fix #141381: Cycles unnecessary re-subdivision with persistent data - Brecht Van Lommel
- Fix #141384: Anim Channel Pinning: object data pin only for cameras - Philipp Oeser
- Fix #141387: Light Probes not integrated into Animation Editors - Philipp Oeser
-
Fix #141388: Cycles: CPU/GPU difference in
powfunction with 0 base - Weizhen Huang - Fix #141398: Overlay: Missing Metaball selection circle - Miguel Pozo
- Fix #141399: Operator search throws error in empty VSE - Richard Antalik
- Fix #141400: Metaball tessellation unresponsive with a scaled parent - Campbell Barton
- Fix #141406: "Wait for Click" changes Node tools Grease Pencil toggle - Hans Goudey
- Fix #141415: crash when pasting node group node in some cases. - Bastien Montagne
- Fix #141420: Grease Pencil: Crash enabling material overlay without material - Pratik Borhade
- Fix #141430: Crash with viewer node on invalid domain - Hans Goudey
- Fix #141434: OBJ importer should apply bounds clamp size to the whole scene - Aras Pranckevicius
- Fix #141448: Geometry Nodes: UI panel property name trimming logic Fix - YimingWu
- Fix #141475: LineArt: Prevent image editor drawing when baking strokes - YimingWu
- Fix #141476: Vulkan: Disable descriptor buffer on Windows/Intel - Jeroen Bakker
- Fix #141477: Crash during material selection - Jeroen Bakker
- Fix #141496: discard relative path prefix while writing to properties - Guillermo Venegas
- Fix #141501 - Allow Transparency for marker/Scrubbing Region - Harley Acheson
- Fix #141503: Double click in file browser adds strip to the cursor - Richard Antalik
- Fix #141513: Grease Pencil: Remove strokes joined from other layers - YimingWu
- Fix #141514: Broken cryptomatte picking with multi-windows on Wayland - Campbell Barton
- Fix #141515: Compositor: Crash when tweaking gizmos - Habib Gahbiche
- Fix #141519: EEVEE automatic light threshold doesn't work with exposure - Alaska
- Fix #141522: Asset shelf: Choosing brush from hotkey keeps previous highlighted - Pratik Borhade
- Fix #141535: Lattice deform without dverts causes crash - Lukas Tönne
- Fix #141550: Pad Editor Outline to Avoid Blurriness - Harley Acheson
- Fix #141552: SVG Mouse "Edit" Cursors That Match the Old Versions Better - Harley Acheson
- Fix #141556: Multires Apply Base deforms mesh greatly - Sean Kim
- Fix #141565: Mode icons in outliner too far to the left - Pratik Borhade
- Fix #141568: Implicit convert for single values return zeros - Omar Emara
- Fix #141610: Nodes: Active selection points to internal toggle socket after running "Remove Item" - quackarooni
- Fix #141612: Boolean crash with NAN mesh vertex coordinates - Campbell Barton
- Fix #141614: Crash canceling 'Rotate Normal' operation - Germano Cavalcante
- Fix #141623: Subdivision Set operator occasionally fails when adding modifier - Sean Kim
- Fix #141626: Refcount error when (un)assigning custom bone shapes - Sybren A. Stüvel
- Fix #141628: Vulkan: Crash when index buffer could not be allocated - Jeroen Bakker
- Fix #141633: Various subdivision problems during Alembic import - Jesse Yurkovich
- Fix #141651: VSE: The Channel setting does not work independently in multiple areas - Sergey Sharybin
- Fix #141652: python exception when adding VSE Fade - Aras Pranckevicius
- Fix #141661: Crash when selecting oneAPI in preferences with legacy drivers - Xavier Hallade
- Fix #141663: Wrong help-line displayed when rotating the camera - Campbell Barton
- Fix #141667: Erratic behavior with orthographic camera gizmo - Campbell Barton
- Fix #141693: Grease Pencil: Restore jitter behaviour - YimingWu
- Fix #141709: VSE doesn't show scene strip subframes - Richard Antalik
- Fix #141715: VSE video proxies lose video rotation - Aras Pranckevicius
- Fix #141718: Discontinuous rotations on some USD skeleton imports - Jesse Yurkovich
- Fix #141721: Adding curve attributes doesn't invalidate caches - Hans Goudey
- Fix #141725: EEVEE View Layers Functionality Broken - Miguel Pozo
- Fix #141727: Toggling overlays with enabled Retopology missing update - Philipp Oeser
- Fix #141733: bmesh.ops API docs not showing function names - Campbell Barton
- Fix #141735: "Join as Shapes" operator too restrictive - Hans Goudey
- Fix #141753: Surface Smooth Mesh Filter causes NaN propagation - Sean Kim
- Fix #141760: FBX export inadvertently modifies color property on lights - Jesse Yurkovich
- Fix #141768: VSE: Tabbing in/out of metastrips does not update strip cache - Sergey Sharybin
- Fix #141777: Crash closing an unfocused window on Wayland - Campbell Barton
- Fix #141779: Adaptive subdivision + custom OSL camera crash - Brecht Van Lommel
- Fix #141780: Images rotate bacwards in VSE - Richard Antalik
- Fix #141781: EEVEE: IBL broken on Intel Iris 580 - Miguel Pozo
- Fix #141798: Cycles adaptive subdivision doesn't interpolate vertex color - Brecht Van Lommel
- Fix #141800: crash when showing node warnings during playback - Jacques Lucke
- Fix #141810: Cryptomatte crashes with image sequence - Omar Emara
- Fix #141811: Crash with remesh operator - Namit Bhutani
-
Fix #141819: Interface Use a flag for
WM_set_locked_interface- YimingWu - Fix #141827: Crash when switching from edit to sculpt mode when hidden - Sean Kim
- Fix #141828: Applying outdated PoseAssets crashes Blender - Sybren A. Stüvel
- Fix #141846: Successive calls to change the cursor exits on Wayland - Campbell Barton
- Fix #141847: Input node properties missing in sidebar - Jacques Lucke
- Fix #141864: Crash opening files with Alpha Over node - Omar Emara
- Fix #141882: Undo with local asset in asset shelf crashes Blender (ASAN) - Sybren A. Stüvel
- Fix #141885: Do Not Clip Panel Title If No Drag Widget - Harley Acheson
- Fix #141887: Crash/assert hit after reading Grease Pencil - Falk David
- Fix #141890: Join as Shapes should rebuild depsgraph relations - Sybren A. Stüvel
- Fix #141909: Creating a pose assets captures unkeyed custom properties - Christoph Lendenfeld
- Fix #141911: Geo Nodes Input Panel crashing when name is deleted - Pratik Borhade
- Fix #141918: Crash when playing 2 image sequences - Miguel Pozo
- Fix #141940: Copy to Selected not working on Editbone "lock" unlocking - Philipp Oeser
- Fix #141943: Correctly detect manifold libs when not in strict mode - Sebastian Parborg
- Fix #141948: No error on arbitrary assignments to PropertyGroup - Campbell Barton
- Fix #141980: Overlay: Curves in EDIT mode appear thinner and have no AA - Clément Foucault
- Fix #141982: Screenshot drawing incorrect on Mac - Christoph Lendenfeld
- Fix #142006: Color Jitter produces black points in Material mode - Charles S
- Fix #142009: Extensions/Addon Tags not showing (property not found) - Campbell Barton
- Fix #142056: Grease Pencil: Assert on duplicating layer - Falk David
- Fix #142060: Cycles simple adaptive subdivision UVs wrong for non-quads - Brecht Van Lommel
- Fix #142062: Armature EditBone RNA paths incomplete - Philipp Oeser
- Fix #142084: Importing broken USD skeletons can crash - Jesse Yurkovich
- Fix #142097: Vulkan: Crash with unbound textures - Miguel Pozo
- Fix #142103: Animation decorator not working on Light Temperature value - Philipp Oeser
- Fix #142106: FCurve noise modifier versioning error - Christoph Lendenfeld
- Fix #142163: Instance attributes can be invalid on curves - Lukas Tönne
- Fix #142183: Grease Pencil: Check object type upon exporting selected frames - YimingWu
- Fix #142195: Crash when adding stereo 3D image - Richard Antalik
- Fix #142217: EEVEE: Missing deformation motion blur in first viewport - Clément Foucault
- Fix #142233: Cycles crash due to wrong node type registration order - Brecht Van Lommel
- Fix #142245: Crash adding subsurf with invalid material indices - Campbell Barton
- Fix #142255: Unbound resource for point clouds - Miguel Pozo
- Fix #142259: Overlay: Velocity drawing outside of cache range causes crash - Clément Foucault
- Fix #142291: Crash when transforming strip in preview with audio strip active - Ramon Klauck
- Fix #142314: Crash popup blocks automation in background mode - Germano Cavalcante
- Fix #142326: Manifold boolean with plane ignores object transforms - Philipp Oeser
- Fix #142328: Sculpt: Blender crashes switching to sculpt mode - Clément Foucault
- Fix #142333: new FBX importer produces broken rotation fcurves in some cases - Aras Pranckevicius
- Fix #142338: Edge center snapping interferes with face snapping - Germano Cavalcante
- Fix #142454: Blur Attribute after Manifold Boolean crashing. - Howard Trickey
- Fix #142494: Manifold Boolean Subtraction causes crash. - Howard Trickey
- Fix #142557: UV Editor 'Show Faces' toggle doesn't work - Sean Kim
- Fix #142583: Uninitialized data in edit UV lines index buffer - Hans Goudey
- Fix #142630: Custom socket polling fails due to missing a "base" type - Lukas Tönne
- Fix #142647: Don't create preset that has the same name as built-in ones - YimingWu
- Fix #142649: Grease Pencil remove fill guides operator breaks triangle cache - Lukas Tönne
- Fix #142669: Show AZONE_FULLSCREEN for Sequencer RGN_TYPE_PREVIEW - Harley Acheson
-
Fix #142749: Geometry Nodes: Add
float4x4case inget_field_type_name- YimingWu - Fix #51739: Sliding values in add primitive redo panel not hiding cursor - Pratik Borhade
- Fix #54325: Shrink/Fatten "Offset Even" can not be used as default - Germano Cavalcante
- Fix #67806: Delete non existing temp screens - Pratik Borhade
- Fix #73072: Outliner: Alt click fails to enable toggle on selected objects - Pratik Borhade
- Fix #77909: Viewport Render Image clamps output - Clément Foucault
- Fix #82238: Drawing size of particles not matching DPI - Clément Foucault
- Fix #85015: Selection: Objects with negative and small scale cant be selected - Clément Foucault
- Fix #87610: Workbench: World Cavity Not Scale-Agnostic - Clément Foucault
- Fix #93078: users choice was overridden by former constraint - Laurynas Duburas
- Fix #94253: Grease Pencil: Transparency yellow color shift in viewport - Falk David
- Fix #98654: GPUOffScreen example has wrong color management - Clément Foucault
- Fix 'raw' version of blendfile.py reader. - Bastien Montagne
- Fix (studio-reported) missing handling of new system properties for VSE Strips. - Bastien Montagne
- Fix (unreported): Prevent crash when duplicating linked collections - YimingWu
- Fix (unreported): Prevent crash when duplicating linked collections - YimingWu
-
Fix (unreported) logical error in
ArrayIDProp copy code. - Bastien Montagne - Fix 141742: Crash on startup due to failed shader compilation - Miguel Pozo
- Fix URL's in extension errors accessing remote data - Campbell Barton
- Fix armature deform: Avoid accessing parameter data after moving - Lukas Tönne
- Fix brush toggle not working when using tools with multiple scenes - Campbell Barton
- Fix buffer overflow reading the selection buffer - Campbell Barton
- Fix compilation after recent changes: missing include. - Bastien Montagne
- Fix crash assigning non UTF8 path to imbuf.filepath - Campbell Barton
- Fix crash calling bpy.data.file_path_map with non UTF8 paths - Campbell Barton
- Fix crash calling the transform operator over the redo panel - Campbell Barton
- Fix crash freeing cursors in Wayland - Campbell Barton
- Fix cursor size being ignored by custom cursors under Wayland - Campbell Barton
- Fix edge dissolve behavior with face-split - Jason C. Wenger
- Fix immediate exit when displaying an invalid UTF8 title on Wayland - Campbell Barton
- Fix large software cursors with Hi-DPI display on Wayland - Campbell Barton
- Fix previous 4.5 merge - Xavier Hallade
-
Fix typo in
blendfile_iotest. - Bastien Montagne
GHOST
- GHOST: Implement the cursor shape protocol and remove X11 cursors from the wayland backend - Sebastian Parborg
- GHOST: show assertion failures even when WITH_ASERT_ABORT=OFF - Campbell Barton
- 🔸 GHOST/Wayland: support RGBA custom-cursors - Campbell Barton
- GHOST/Wayland: correct tablet serial argument for setting cursors - Campbell Barton
- GHOST/Wayland: use wl_surface_damage_buffer when available - Campbell Barton
- GHOST/Wayland: support "resize" cursors from the shape protocol - Campbell Barton
- GHOST/Wayland: scalable vector cursor support via cursor-generators - Campbell Barton
- GHOST/Wayland: invert cursor color, pre-multiply alpha - Campbell Barton
GPU
GTest
- GTest: Fix compiler warning with GCC 15 - Lukas Stockner
Geometry Nodes
- 🔸 Geometry Nodes: add descriptions to various built-in geometry sockets - Jacques Lucke
- Geometry Nodes: support tracing bundles and closures through closure calls - Jacques Lucke
- Geometry Nodes: forbid some special characters in bundle item names - Jacques Lucke
Ghost
- Ghost: Make special user directory query thread safe - Julian Eisel
Grease Pencil
- Grease Pencil: Implement align Bézier handles in transform operator - Casey Bianco-Davis
- Grease Pencil: Initialize runtime drawing user counts on read - Falk David
Help text
- Help text: move Vulkan debugging option under "Debug Options" - Campbell Barton
Hydra
I18N
- I18N: Updated UI translations from git/weblate repository (21c7a5e78edc183b9). - Bastien Montagne
- I18N: Updated UI translations from git/weblate repository (bc8ebd2acbe6a5). - Bastien Montagne
- I18N: Updated UI translations from git/weblate repository (555104b9e84c). - Bastien Montagne
- I18N: Updated UI translations from git/weblate repository (def3c8131dbed9f). - Bastien Montagne
- I18n: Disambiguate "Mirror" - Damien Picard
- I18n: Disambiguate "Volume Min" - Damien Picard
- I18n: Disambiguate "Line" - Damien Picard
- I18n: Translate a few messages - Damien Picard
- I18n: Translate GN Add > Input > Import menu items - Damien Picard
- I18n: Translate "MB" (megabyte) - Damien Picard
- I18n: Translate Insert Unicode Character Cancel/Confirm Buttons - Damien Picard
- I18n: Translate two report messages needing manual translation - Damien Picard
- I18n: Translate user preferences GPU device tooltips - Damien Picard
- I18n: Translate node groups' interface socket subtypes - Damien Picard
- I18n: Translate "Equalizer" strip modifier name - Damien Picard
- I18n: Translate "Boolean" output in Boolean GN node - Damien Picard
- I18n: Translate Window manager job names - Damien Picard
- I18n: Extract node panel names using translation contexts - Damien Picard
- I18n: Translate some node socket tooltips - Damien Picard
- I18n: Translate link items for Integer Math node - Damien Picard
- I18n: Disambiguate "Strip" for exporter filepath mode - Damien Picard
- I18n: Disambiguate "Edges" in Keying compositing node - Damien Picard
- I18n: Disambiguate "Median" - Damien Picard
- I18n: Use proper existing context for "Dimensions" - Damien Picard
- I18n: Translate missing node add search menu items - Damien Picard
IO
- IO: make new FBX importer the default one, mark Python as legacy - Aras Pranckevicius
- IO: Add FileHandler for importing SVG as curves - Guillermo Venegas
ImBuf
- ImBuf: Linearize float buffers from FFmpeg - Sergey Sharybin
LeakSanitizer
- LeakSanitizer: Suppress errors in OpenEXR library. - Bastien Montagne
-
LeakSanitizer: Exclude another error from Python (
resize_compact). - Bastien Montagne
Logging
- Logging: Various changes to CLOG - Brecht Van Lommel
- Logging: Redirect BKE_report prints to CLOG - Brecht Van Lommel
- Logging: Revamp default behavior and command line arguments - Brecht Van Lommel
- Logging: Use CLOG for render progress - Brecht Van Lommel
- Logging: Change various categories and log levels - Brecht Van Lommel
- Logging: Add DEBUG, TRACE severity, replace numeric levels - Brecht Van Lommel
- Logging: Log GHOST backend, GPU backend and GPU device - Brecht Van Lommel
- Logging: Some tweaks to capitalization and log levels - Brecht Van Lommel
Merge of blender-v4.5-release
- Merge of blender-v4.5-release - Harley Acheson
Mesh
- 🔸 Mesh: Tune the parallelism of normals_calc_corners - Jesse Yurkovich
- 🔸 Mesh: Spatial Reordering for Sculpt Speed Improvements - Namit Bhutani
- 🔸 Mesh: Move freestyle tags to generic attributes - Hans Goudey
- Mesh: Simplify tangents calculation - Hans Goudey
- Mesh: Slightly simplify BKE_mesh_uv_vert_map_create code - Hans Goudey
Modifiers
Multi-View
NDOF
- 🔸 NDOF: apply YZ axis swap to rotations - Campbell Barton
- NDOF: Removed impact of the auto orbit center on Fly Mode - Patryk-Skowronski
- NDOF: use fixed speed values for translations in "Fly Mode" - Patryk-Skowronski
Node Wrangler
- 🔸 Node Wrangler: Add support for boolean sockets to nw_merge_nodes, results in a Boolean Math node - Ido-Shahar
Nodes
- 🔸 Nodes: rename "Hide" to "Collapse" - Habib Gahbiche
- 🔸 Nodes: Allow auto linking of Extend sockets - Omar Emara
- 🔸 Nodes: initial support for built-in menu sockets - Jacques Lucke
- Nodes: rename structure type to shape in node group inputs ui - Jacques Lucke
- 🔸 Nodes: improve socket tooltips - Jacques Lucke
- 🔸 Nodes: Python: show idname in node tooltip - Jacques Lucke
OpenXR
- OpenXR: Compile without OpenGL backend - Jeroen Bakker
Overlay
- Overlay: Move text cache managment to the Overlay::Instance - Clément Foucault
Paint
-
🔸
Paint: Migrate
radial_symmetryfrom Scene to Mesh - Sean Kim
PointCache
- 🔸 PointCache: Remove support for LZO and LZMA compression, use ZSTD - Sebastian Parborg
- PointCache: Explicitly warn when loading older incompatible compression settings - Sebastian Parborg
PyAPI
- PyAPI: add missing options to bpy.data.library.load(..) - Campbell Barton
- PyAPI: treat "None" fallback properties as missing in class registration - Campbell Barton
- PyAPI: Refactor attribute access to avoid creating & clearing exceptions - Campbell Barton
-
PyAPI: warn when PropertyGroup sub-classes don't define
__slots__- Campbell Barton
PyDoc
- PyDoc: use string literals for enum values - Campbell Barton
- PyDoc: bpy_struct, add missing types and more explicit signatures - Andrej730
Python
- Python: Add new APIs to collection.exporters - Damien Picard
-
Python: Rename legacy Grease Pencil types to
Annotation- Falk David
Refactor
- Refactor: Draw: Use ResourceHandleRange in engine code - Miguel Pozo
- Refactor: UI: Replace uiItemPointerR with uiLayout::prop_search - Guillermo Venegas
- Refactor: UI: Use std::string for uiLayout heading string - Hans Goudey
- Refactor: Attributes: Add assign_data function - Hans Goudey
- Refactor: UI: Warn when not using result from UI layout getter functions - Julian Eisel
- Refactor: UI: Replace uiItemEnumR* funtions with uiLayout methods - Guillermo Venegas
- Refactor: UI: Add uiLayout op_menu_hold, popover and separator_spacer - Guillermo Venegas
-
Refactor: factorize 'ID reading' part of
expand_doit_library. - Bastien Montagne - Refactor: BLO: ID listing in blendfile: factorize 'read & check' logic. - Bastien Montagne
- Refactor: BLO: ID listing in blendfile: factorize 'read & check' logic. - Bastien Montagne
- Refactor: use bpy.data.libraries.load(..) for the "Quick Fur" operator - Campbell Barton
- Refactor: Move contextual init before socket declaration - Omar Emara
- Refactor: Use AttrType instead of CustomData type in attribute API - Hans Goudey
- Refactor: Geometry Nodes: support detection of syncable closure/bundle nodes - Jacques Lucke
- Refactor: clean up bone envelope falloff function and modernize math - Lukas Tönne
- Refactor: Make Main struct a non-trivial C++ one. - Bastien Montagne
- Refactor: Draw: ResourceHandle/Index split - Miguel Pozo
- Refactor: UI: Replace UI_block_layout with blender::ui::block_layout - Guillermo Venegas
- Refactor: Change SubdivCCG adjacency structs to use containers - Sean Kim
- Refactor: Utility "mixer" class to simplify armature deform functions - Lukas Tönne
- Refactor: Transform: Unify logic of "orient_axis" and "constraint_axis" - Germano Cavalcante
- Refactor: Make file-list cache struct non-trivial C++ one - Julian Eisel
- Refactor: Armature deform API and threading function cleanup - Lukas Tönne
-
Refactor: Move
Paint_Runtimeout of DNA - Sean Kim - Refactor: minor changes to prepare for Hi-DPI custom cursors on Wayland - Campbell Barton
- Refactor: Transform, reduce array bit size by removing TransData::ext - Germano Cavalcante
- Refactor: UI: Move UI_block_layout_resolve to C++ namespace, rename - Guillermo Venegas
- Refactor: Add explicit default initialization to reshape_smooth structs - Sean Kim
- Refactor: Use std::array and blender::Span instead of pointer array - Sean Kim
- Refactor: Clog: Port to C++ - Brecht Van Lommel
- Refactor: Cycles: Tweak logging to prepare for dropping glog - Brecht Van Lommel
- Refactor: Cycles: Avoid unnecessary newlines in Metal logs - Brecht Van Lommel
- Refactor: Cycles: Remove distinction between severity and verbosity - Brecht Van Lommel
- Refactor: Cycles: Add comments to explain the logging API - Brecht Van Lommel
- Refactor: Cycles: Replace remaining fprintf with logging - Brecht Van Lommel
- Refactor: Cycles: Add some OpenVDB and NanoVDB functions to util - Brecht Van Lommel
- Refactor: Cycles: Remove now unused 3D image texture support - Brecht Van Lommel
- Refactor: Cycles: Deduplicate 3D texture sampling between devices - Brecht Van Lommel
- Refactor: UI: Remove uiItemEnumO* functions - Guillermo Venegas
- Refactor: Clean up and modernize core vertex weight normalize functions - Nathan Vegdahl
- Refactor: Start splitting filelist.cc - Julian Eisel
- Refactor: UI: Replace uiItemsEnumO with class method uiLayout::op_enum - Guillermo Venegas
- Refactor: Add RNA_string_get function returning a string - Hans Goudey
- Refactor: UI: Replace uiItemMenuEnumFullO* with class methods - Guillermo Venegas
- Refactor: extract cursor rasterization into separate function calls - Campbell Barton
- Refactor: Cycles: Deduplicate get camera object code - Brecht Van Lommel
- Refactor: Use C++ math type for ReshapeGridElement structs - Sean Kim
- Refactor: WM: Make OperatorCallContext an enum class, move to namespace - Guillermo Venegas
- Refactor: Bypass DEG_foreach_dependent_ID_component when not needed - Germano Cavalcante
- Refactor: Cycles: Use logging system for GPU error print - Brecht Van Lommel
- Refactor: UI: Make button type params typed enums - Guillermo Venegas
- Refactor: VSE: Use new scene context function - Falk David
- Refactor: Make CD_TYPE_AS_MASK into a function with typed argument - Hans Goudey
-
Refactor: Paint: Migrate runtime data out of
UnifiedPaintSettings- Sean Kim - Refactor: Cleanup Library FileData handling. - Bastien Montagne
- Refactor: GPU: Remove unnecessary C wrappers for textures - Clément Foucault
Refector
- Refector: UI: Add uiLayout decorator, menu_contents and progress_indicator methods - Guillermo Venegas
Regression test for armature deformation on lattice
- Regression test for armature deformation on lattice - Lukas Tönne
Release
- Release: Update installer graphics for 4.5. - Thomas Dinges
- Release: Update Freedesktop file for 4.5 - Thomas Dinges
- Release: Update license info and regenerate license.md for 4.5. - Thomas Dinges
- Release: Bump 4.5 to release candidate - Thomas Dinges
Report template
- Report template: Add a mandatory checkbox confirming the user has filled out the bug report form - Alaska
Revert "Deps_builder
- Revert "Deps_builder: pydantic 2.11.7" - Ray Molenkamp
Revert "Fix #139533
- Revert "Fix #139533: Select vertices and faces after bevel operation" - Campbell Barton
Revert "Refactor
Revert "Wayland
- Revert "Wayland: Set surface color management" - Hans Goudey
Revert 0ea03b5137
- Revert 0ea03b5137: Remove Fading of Editor Border Highlights - Harley Acheson
Shape Key
- Shape Key: Delete selected keyblocks - Pratik Borhade
Tests
-
Tests: Remove suite level
apply_modifiersoption for modifier tests - Sean Kim - Tests: Add basic subdivision tests for Multires modifier - Sean Kim
- Tests: Add compositor z-combine anti-alias and single value tests - Ian Yoo
- Tests: Add Cycles test for normal map light leaking - Alaska
- Tests: Remove node_levels reference image - Ian Yoo
- Tests: Add convert-color-space tests - Ian Yoo
- Tests: Add multires subdivision performance test - Sean Kim
- Tests: Add bilateral-blur single_value tests - Ian Yoo
- Tests: Add tests for AOV passes on objects with transparent materials - Alaska
- Tests: Add minimum number of frames tested in EEVEE performance tests - Christoph Neuhauser
- Tests: Add intial tests for the OSL camera - Alaska
- Tests: Add Multires Apply Base test - Sean Kim
- Tests: Update Sculpt render test reference images - Sean Kim
- Tests: Add extended boundary blur tests - Ian Yoo
- Tests: Geometry Nodes: Offset Corner in Face node invalid inputs - илья _
- Tests: Add UI test for selecting brush via brush popover - Sean Kim
Tools
- Tools: add option to weekly log generator to only show a single day - Sybren A. Stüvel
- Tools: fix error running weekly_report.py without a date set - Campbell Barton
- Tools: remove print from batch_edit_text utility - Campbell Barton
- Tools: warn about duplicate authors in the author list generator - Campbell Barton
- Tools: Small changes for fixes per release script - Alaska
Tree View
- 🔸 Tree View: Multi-select support - Pratik Borhade
UI
- 🔸 UI: Collection visibility number shortcuts for the Outliner - Pratik Borhade
- 🔸 UI: Fade In Active Editor Border Highlight - Harley Acheson
- 🔸 UI: Dope Sheet: Add Cache visualization - Pablo Vazquez
- 🔸 UI: Tree View: Click select operator - Pratik Borhade
-
🔸
UI: Use
Fitas the default frame method for Camera background images - Jonas Holzman - 🔸 UI: Disable remove material unused slots in edit mode - Pratik Borhade
- 🔸 UI: SVG Icons as Internal Custom Mouse Cursors - Harley Acheson
- 🔸 UI: Curves: NURBS weight in Transform panel - Laurynas Duburas
- 🔸 UI: Add Move to Collection Menu - Guillermo Venegas
- UI: Make uiLayout NonCopyable and NonMovable - Guillermo Venegas
- 🔸 UI: show the ~/ abbreviation for $HOME in the title on Unix systems - Campbell Barton
- 🔸 UI: Disable Copy and Remove Materials when slots are empty - Eitan Traurig
- UI: Removal of Win32 Platform-Specific Cursor Files - Harley Acheson
- 🔸 UI: Disable mirror and update shape from objects shapekey operators when list is empty - Eitan Traurig
- UI: Crosshair Cursor Tweak for X11 - Harley Acheson
- UI: Fix Cursor Size Truncation Issue - Harley Acheson
- 🔸 UI: Cursor Time for RGBA Platforms - Harley Acheson
- UI: support fully custom layout tooltips - Jacques Lucke
- UI: New internal API function to add a simple button - Julian Eisel
- 🔸 UI: Rename "Z" pass to "Depth" - Habib Gahbiche
- 🔸 UI: Hide More Content for Full Screen Area - Harley Acheson
USD
- USD: Rename import_subdiv option to import_subdivision - Jesse Yurkovich
- USD: Rename attr_import_mode option to property_import_mode - Jesse Yurkovich
UV
- 🔸 UV: Ensure Pie Menu consistency with 3D Viewport - Maxime-Cots
VSE
- 🔸 VSE: Keyframing in Preview - Ramon Klauck
- 🔸 VSE: Clamp strip handles to video/audio bounds - John Kiril Swenson
- 🔸 VSE: Clamp "Move Strips" starting position to region bounds - John Kiril Swenson
Video
- 🔸 Video: HDR video input/output support - Aras Pranckevicius
Viewport
- 🔸 Viewport: respect grid scale in walk-mode for heights & gravity - Campbell Barton
Vulkan
- Vulkan: Switch Qualcomm to switch to OpenGL - Jeroen Bakker
- Vulkan: Hide WoA message on non Woa devices - Jeroen Bakker
- Vulkan: Only select HDR swapchain on Wayland - Jeroen Bakker
- Vulkan: Move Wayland/HDR support out of experimental - Jeroen Bakker
WM
- 🔸 WM: increase the maximum name length for the select_pattern operator - Campbell Barton
- 🔸 WM: use the systems DPI for cursor scale instead of the UI scale - Campbell Barton
- WM: restore test code from previous commit - Campbell Barton
- WM: access the windows DPI directly to calculate the mouse-cursor scaling - Campbell Barton
- WM: correct own regression in recent cursor size clamping - Campbell Barton
- WM: various improvements to text cursors - Campbell Barton
- 🔸 WM: Switch to high-resolution timers on Windows for sleeping - Christoph Neuhauser
Wayland
- Wayland: Set surface color management - Jeroen Bakker
Win
- 🔸 Win: Add some context to access violations - Ray Molenkamp
Workbench
- 🔸 Workbench: Avoid CustomData lookup when unnecessary - Hans Goudey
data_to_c
- data_to_c: CMake: Speed-up data_to_c - Ray Molenkamp
install_linux_packages
- install_linux_packages: Bump with the 4.5 library changes - Sebastian Parborg
merge blender-v4.5-release
- merge blender-v4.5-release - Harley Acheson
11 Comments
Hi Pablo! Hope you're doing well
When will we have "Blender Today LIVE" themed merch (shirt or mug) that says things like "Hola community!", "Nnnnext...", "Pretty pretty neat", "Yay for consistency!", "Let's talk about U and I", "See you Nesquik", with some green pipes or some buff fighter dude drinking mate (without infringing on any copyright of course)?
If you say "people won't buy Blender Today themed merch", then I challenge YOU 🫵 to ask chat right now!
I'm late watching the replay of the livestream, but saw your comment and had to say another one to add is "Quality of liiife!"😄
Hola Pablo!
I'm aware there are plans for improving usability of library overrides. I wanted to ask, if you know, if it's on the roadmap to be able to override linked materials. Until now this is not possible, and you have to make a full local copy of it.
Thanks!
Hi Pablo, love the weekly videos!
Do we know what the big feature of 5.0 is planned to be yet?
Hi Pablo, love the weekly videos!
You mentioned the number keys for changing collections from inside the viewport will be removed. I use that quite a lot. Is there a chance that it will be added as an option, instead of disabled completely?
Thanks for everything and keep up the great work!
Hi Pablo, is there any way possible to add lip-sync like property in GP? like other software has it would be very helpful for 2d animator
As far as I remember, back in the day Blender used to be updated like 2.82, 2.83....2.93 like that and after 3.0, the update numbers changed to 3.1, 3.2....4.3, 4.4 etc. like that. Which kind of made sense because the frequency of Blender updates got reduced significantly every year. And that's not what I'm trying to say, but the fact is people often associate big round release numbers like 3.0, 4.0, 5.0 etc. with big major overhauls or major feature integrations and currently there are a lot of major stuff that people have been asking in blender for a while like a proper complete node based FX-physics system, node based procedural texture painting, high poly sculpt, new rigging-animation system (which has been under development) etc. So would they be already by 5.0? Since 5.0 sounds so huge and supposed to come out in 11th Nov of this year? If not, then IMHO why not push the 5.0 release later and release 4.6,7,8 etc. until all if not some of those big features gets implemented in blender, at least to a preliminary level without being featured complete initially. That's just my opinion.
Hi Pablo, nice work with 4.5 LTS launch, except for a minor but important detail. The new set mesh normal node in geometry nodes doesnt work well with Cycles. Any chance we will see that bug fixed soon? projects.blender.org/blender/blender/issues/141040
Hello Pablo! Hope you had a nice day!
To the question: Can animation actions have different lengths? I am trying to export animations to Godot and I am currently forced to have same length for all Actions because the frame span seems to be unified in the whole editor.
Can u ask Julien to do an updated version of the Character workflow with the new sculpting tools?