VULKAN is here! 🖖 Blender Today LIVE #257
Announcements
- Blender Conference tickets halfway sold out!
- Blender Conference Call for Content
- Blender Conference Suzanne Awards Festival
- Vulkan! Feedback: devtalk.blender.org/t/vulkan-feedback-and-testing/39900
Changelog between April 01, 2025 - April 29, 2025 at 12h
872 commits in total, of which 169 are fixes and 185 cleanup.
Add missing header in compositing node code after recent change.
- Add missing header in compositing node code after recent change. - Bastien Montagne
Anim
- Anim: expand the debug printing of animation channels with their settings - Sybren A. Stüvel
- Anim: remove 'name' spacing from Debug Channel List operator - Sybren A. Stüvel
- 🔸 Anim: pose mode Select Mirrored keep unmirrorables selected - Sybren A. Stüvel
- 🔸 Anim: Separate transform snapping flags in the driver editor - Christoph Lendenfeld
- 🔸 Anim: Add function for batch-creation of many f-curves, use in USD import - Aras Pranckevicius
- 🔸 Anim: merge keyframe jump operators - Christoph Lendenfeld
Assets
- 🔸 Assets: tag a brush for unsaved changes when its texture changes - Philipp Oeser
- 🔸 Assets: Disable snap feedback for dragging collections that will be linked - Julian Eisel
Audaspace
- 🔸 Audaspace: MixingThreadDevice - Jörg Müller
BLI_listbase
-
BLI_listbase: Add a new
BLI_listbase_findafter_stringutil. - Bastien Montagne
BMesh
- BMesh: add a BM_faces_join() to return a duplicate face (if found) - Jason C. Wenger
- BMesh: skip recomputing custom-data when face join uses an existing face - Jason C. Wenger
- BMesh: maintain the active face if the active face when joining faces - Jason C. Wenger
Build
- 🔸 Build: Add new Manifold library - Thomas Dinges
- Build: Remove OpenMP - Brecht Van Lommel
CMake
- CMake: macOS: Disambiguate OpenMP compiler check between LLVM Clang and Apple Clang - Jonas Holzman
- CMake: enable WITH_UI_TESTS_HEADLESS when possible - Campbell Barton
- CMake: remove illogical hint for OSL_SHADER_HINT - Campbell Barton
- CMake: pass a mode argument to message - Campbell Barton
- CMake: put test executables under folders in visual studio solution - Aras Pranckevicius
- CMake: match defines & CMake variable names - Campbell Barton
- CMake: TBB: Replace FindTBB module with TBB's own TBBConfig module - Jonas Holzman
- CMake: detect numpy with Python 3.13 - Campbell Barton
- CMake: Rename and expose 'USE_EXPERIMENTAL_TESTS' option - Sean Kim
CUEW
- CUEW: Add external memory API functions - Brecht Van Lommel
Cleanup
-
Cleanup: clarify comment & variable in
BKE_blender_cli_command_exec()- Sybren A. Stüvel - Cleanup: Replace weird update tag in Join as Shape Keys implementation - Hans Goudey
- Cleanup: Pass ReportList to shape key function instead of operator - Hans Goudey
- Cleanup: Resolve missing declaration in curves NURBS knots code - Hans Goudey
- Cleanup: Various non-functional changes for sculpt tilt related methods - Sean Kim
- Cleanup: indentation for CMake files, strip trailing space - Campbell Barton
- Cleanup: spelling in comments (make check_spelling_*) - Campbell Barton
- Cleanup: minor corrections to code-comments - Campbell Barton
- Cleanup: Remove unused OpenEXR code - Brecht Van Lommel
- Cleanup: Remove unnecessary qualifiers in BLI_listbase.h - Sean Kim
- Cleanup: Various non-functional pbvh_bmesh.cc changes - Sean Kim
- Cleanup: exclude code_layout_diagram.py from mypy check - Campbell Barton
- Cleanup: quiet warnings from clangd - Campbell Barton
-
Cleanup: Convert some Paint BVH functions to
Nodemember functions - Sean Kim -
Cleanup: Minor formatting changes for
BKE_paint_bvh.hh- Sean Kim - Cleanup: move calls to ensure UV selection into a utility function - Campbell Barton
- Cleanup: format - Campbell Barton
- Cleanup: pass BMesh instead of BMEditMesh to UV slection functions - Campbell Barton
- Cleanup: resolve unknown pragma warning for CLANG - Campbell Barton
- Cleanup: extend the list of warnings removed when building with CLANG - Campbell Barton
-
Cleanup: GPU: Remove unused
geometry_sourcein create infos - Clément Foucault - Cleanup: GPU: Add ATTR_FALLTHROUGH for shader C++ compilation - Clément Foucault
- Cleanup: Formatting - Hans Goudey
- Cleanup: USD: Remove duplicate implementation of get_unique_path - Jesse Yurkovich
- Cleanup: Clarify brush plane calculation - Sean Kim
- Cleanup: quiet warning for undefined variable use in CMake - Campbell Barton
- Cleanup: quiet unused warnings - Campbell Barton
- Cleanup: spelling in comments (make check_spelling_*) - Campbell Barton
- Cleanup: minor simplification to UV selection check - Campbell Barton
- Cleanup: Code-style - Jeroen Bakker
- Cleanup: No previous declaration warning - Omar Emara
- Cleanup: GPU: Remove unused legacy_resource_location - Clément Foucault
- Cleanup: Fix one-definition-rule violations for various structs - Jesse Yurkovich
- Cleanup: correct typos - Jesse Yurkovich
- Cleanup: Reorganize sculpt_intern.hh - Sean Kim
- Cleanup: quiet unused variable warning - Campbell Barton
- Cleanup: correct typo in variable name & comments - Campbell Barton
- Cleanup: format - Campbell Barton
- Cleanup: use type hints for trailing_space_clean.py utility - Campbell Barton
- Cleanup: wrap long lines for CMake - Campbell Barton
- Cleanup: remove redundant casts - Campbell Barton
- Cleanup: assign the property flag to a variable - Campbell Barton
- Cleanup: rename IMB_FTYPE_{IMAGIC=>IRIS} to confirm with other defines - Campbell Barton
- Cleanup: Grease Pencil: Remove v3 references - Pratik Borhade
- Cleanup: Compiler warnings with GCC - Brecht Van Lommel
- Cleanup: Compiler warning about initialization order - Brecht Van Lommel
- Cleanup: remove redundant calls to object & ID material resize - Campbell Barton
- Cleanup: sort cmake file lists - Campbell Barton
- Cleanup: avoid function casts for BlenderAppTranslationsType - Campbell Barton
- Cleanup: quiet unused variable warning - Campbell Barton
- Cleanup: remove unused full-screen support from GHOST - Campbell Barton
- Cleanup: Vulkan: incorrect include statement - Jeroen Bakker
- Cleanup: avoid error-prone function cast - Jacques Lucke
- Cleanup: improve comment for GeometrySet.name - Jacques Lucke
- Cleanup: remove unnecessary null check - Jacques Lucke
- Cleanup: include name in printed GeometrySet - Jacques Lucke
- Cleanup: improve comment - Jacques Lucke
- Cleanup: remove WITH_X11_XF86VMODE since mode setting is no longer used - Campbell Barton
- Cleanup: remove GHOST_TaskbarX11 - Campbell Barton
- Cleanup: use node.is_type() instead of node.type_legacy - Habib Gahbiche
- Cleanup: Avoid capitals in Geometry Nodes Grease Pencil add menu - Hans Goudey
- Cleanup: Minor Clay Thumb brush plane calculation changes - Sean Kim
- Cleanup: quiet warnings with headless builds - Campbell Barton
- Cleanup: use consistent "format_" prefix for imbuf image formats - Campbell Barton
- Cleanup: replace outdated function names in func in error messages - Campbell Barton
- Cleanup: use more descriptive names for the IRIS format - Campbell Barton
- Cleanup: avoid verbose redundant type names - Jacques Lucke
- Cleanup: use dedicated math function for comparison with zero - Habib Gahbiche
- Cleanup: Don't use atomic aliases - Miguel Pozo
- Cleanup: Movie: Adjust DNA and comments from recent ProRes addition - Jesse Yurkovich
- Cleanup: Various non-functional changes to PaintCursorContext struct - Sean Kim
- Cleanup: postpone imports until needed - Campbell Barton
- Cleanup: spelling in comments, use doxygen comments - Campbell Barton
- Cleanup: Reorganize rna_brush.cc capability section - Sean Kim
- Cleanup: Various non-functional changes to paint cursor drawing methods - Sean Kim
- Cleanup: OpenXR: Introduce a Direct3D base class. - Jeroen Bakker
- Cleanup: Vulkan/OpenXR: Pass Blender context via constructor - Jeroen Bakker
- Cleanup: OpenXR: Move Direct3D to its own compile unit - Jeroen Bakker
- Cleanup: Missing pragma once - Jeroen Bakker
- Cleanup: Use std::move and std::nullopt in Accumulate Field Node - quackarooni
- Cleanup: Explicitly define default constructor for StrokeCache - Hans Goudey
- Cleanup: Correct order of forward compatibility mesh versioning - Hans Goudey
- Cleanup: Consolidate sculpt brush capability checks into BKE_brush.hh - Sean Kim
-
Cleanup: Clarify & reformat comments in
StrokeCache- Sean Kim - Cleanup: remove invalid ParameterFlag cast to PropertyFlag - Campbell Barton
- Cleanup: remove redundant PropertyFlag casts which can hide errors - Campbell Barton
- Cleanup: Remove deprecated Python and Rigid Body Joint constraints - RedMser
- Cleanup: remove unused PyConstraint enum - Campbell Barton
- Cleanup: Change parameters for SCULPT_brush_plane_offset_get - Sean Kim
- Cleanup: rename UTF8 stripping arguments to avoid confusion - Campbell Barton
- Cleanup: rename nullptr to null for null-characters - Campbell Barton
- Cleanup: add STRNLEN macros to prevent incorrect sizeof() use - Campbell Barton
- Cleanup: replace string copy & length with STRNCPY_RLEN - Campbell Barton
- Cleanup: add STRNLEN macros to prevent incorrect sizeof() use - Campbell Barton
- Cleanup: use shared "dummy" enum items - Campbell Barton
- Cleanup: remove use of unsafe string functions - Campbell Barton
- Cleanup: spelling in comments (make check_spelling_*) - Campbell Barton
- Cleanup: move function docs to declaration - Jacques Lucke
- Cleanup: simplify method name - Jacques Lucke
- Cleanup: Grease Pencil: Remove unused variables. - YimingWu
- Cleanup: remove foreach macro from .clang-format - Jacques Lucke
- Cleanup: Separate CPPType method declarations and implementation - Jacques Lucke
- Cleanup: Remove const from moved local variable - Mattias Fredriksson
- Cleanup: Remove unnecessary mesh positions write access - Hans Goudey
- Cleanup: move IMB_convert_rgba_to_abgr to a static function - Campbell Barton
- Cleanup: use boolean for "found" vars & return values - Campbell Barton
- Cleanup: reference operators as symbols, spelling in comments - Campbell Barton
- Cleanup: Vulkan: Remove obsolete extension - Jeroen Bakker
- Cleanup: Formatting - Hans Goudey
- Cleanup: quiet python linter warnings - Campbell Barton
- Cleanup: Nodes: deduplicate logic to get zone for node - Jacques Lucke
- Cleanup: Add comment with reasoning for edit mode object update tag - Hans Goudey
- Cleanup: Move CustomData_blend_write_prepare to proper section - Hans Goudey
- Cleanup: Make CustomData function private - Hans Goudey
-
Cleanup: Overlay: Remove
overlay_private.hhand share uv line style enum - Clément Foucault -
Cleanup: Overlay: Remove
_nextin overlay filename - Clément Foucault - Cleanup: Remove WIN32_COMPOSITING - Harley Acheson
- Cleanup: Move most brush code to nested brushes namespace - Sean Kim
- Cleanup: Metal: DeDuplicate sources in Cmakefile - Clément Foucault
- Cleanup: Simplify ID management in edit mesh undo - Hans Goudey
- Cleanup: spelling in comments (make check_spelling_*) - Campbell Barton
- Cleanup: remove redundant check - Campbell Barton
- Cleanup: use wl_fixed_t for high precision cursor position - Campbell Barton
- Cleanup: re-order functions in ED_uvedit.hh - Campbell Barton
- Cleanup: assign variables in edit-mesh picking - Campbell Barton
- Cleanup: Grease Pencil: Anti-Aliasing sample code - Falk David
- Cleanup: Vulkan: Remove unused flags - Jeroen Bakker
- Cleanup: BLI: move CPPType asserts to implementation - Jacques Lucke
- Cleanup: BLI: use IndexMask forward declaration in CPPType - Jacques Lucke
- Cleanup: simplify allocating buffers for a CPPType - Jacques Lucke
-
Cleanup: Change
SculptSession#needs_flush_to_idfromchartobool- Sean Kim - Cleanup: Various non-functional changes for sculpt.cc - Sean Kim
- Cleanup: move BLI_file_alias_target doc-string to the header - Campbell Barton
- Cleanup: CLANG warning with recent function signature change - Campbell Barton
- Cleanup: move doc-strings to declarations - Campbell Barton
- Cleanup: Grammar fix in Depsgraph BuilderMap function name - Hans Goudey
- Cleanup: Use snake case for Depsgraph BuilderMap function names - Hans Goudey
-
Cleanup: Rename
NodeMaskResulttoCursorSampleResult- Sean Kim -
Cleanup: Rename
node_mask_resultvariables tocursor_sample_result- Sean Kim - Cleanup: USD: Use StringRef in more places - Jesse Yurkovich
- Cleanup: Update outdated jemalloc-related comment - Nicolas van Kempen
- Cleanup: use doxygen comments in BKE, consistent comment blocks - Campbell Barton
- Cleanup: replace inline check with BLI_path_is_rel - Campbell Barton
- Cleanup: various non functional changes - Campbell Barton
- Cleanup: quiet Python linter warnings - Campbell Barton
- Cleanup: Use Span argument for KeyBlock conversion function - Hans Goudey
- Cleanup: Use Assert in tests to avoid crashes when tests fail - Habib Gahbiche
- Cleanup: USD: Various non-functional cleanups to usd_reader_material - Jesse Yurkovich
- Cleanup: Remove unused curves NURBS variable - Laurynas Duburas
- Cleanup: spelling in comments, use doxygen comments for doc-strings - Campbell Barton
- Cleanup: correct references to UI_interface_c.hh - Campbell Barton
- Cleanup: Whitespace in issues script - Thomas Dinges
- Cleanup: Remove redundant node wrangler operator - Guillermo Venegas
- Cleanup: correct logic for qsort callback - Campbell Barton
- Cleanup: Use std::abs instead of fabsf - Hans Goudey
- Cleanup: Use slightly larger inline buffer for per-vertex stack array - Hans Goudey
- Cleanup: Remove StencilViewWorkaround and GPU_texture_view_support() - Miguel Pozo
- Cleanup: make format - Sean Kim
- Cleanup: typos & references to variable names from recent refactor - Campbell Barton
- Cleanup: trailing space - Campbell Barton
- Cleanup: Return early instead of goto to end of function - Aaron Carlisle
- Cleanup: add utility function to access the screen region by type - Campbell Barton
- Cleanup: use memcpy whrn when the string size is known - Campbell Barton
- Cleanup: Mark NodeChroma members as deprecated - Omar Emara
- Cleanup: DRW: Make all shader resource snake case - Clément Foucault
- Cleanup: Overlay: Use enums instead of defines - Clément Foucault
- Cleanup: Overlay: Share vertex enum values - Clément Foucault
- Cleanup: Overlay: Share line width macros - Clément Foucault
- Cleanup: Fix kdtree node warnings with GCC - Brecht Van Lommel
-
Cleanup: Wandering semicolon in
screen_ops.cc- Jonas Holzman - Cleanup: spelling in comments (make check_spelling_*) - Campbell Barton
- Cleanup: correct subtype for extensions operators - Campbell Barton
- Cleanup: Modeling: Don't show failed object conversion as incompatible - ChengduLittleA
- Cleanup: Make format - Alaska
- Cleanup: DURIAN_CAMERA_SWITCH is always on - Aras Pranckevicius
- Cleanup: Fix type-limits warning with GCC - Jesse Yurkovich
- Cleanup: spelling in comments (make check_spelling_*) - Campbell Barton
- Cleanup: spelling in comments & replace some use of single quotes - Campbell Barton
- Cleanup: de-duplicate & simplify assignment - Campbell Barton
-
Cleanup: CMake: Merge
APPLEblocks, wrap long option description line - Jonas Holzman - Cleanup: Cycles: Deduplicate OptiX module creation - Lukas Stockner
- Cleanup: GPU: Tests: Avoid testing more than one value - Clément Foucault
- Cleanup: Geometry Nodes: Avoid copying of input arguments in some cases - илья _
- Cleanup: use colon after doxygen parameters - Campbell Barton
- Cleanup: replace some spinlocks with atomics or mutexes - Aras Pranckevicius
- Cleanup: Node gizmos: check nullptr before flag access - Habib Gahbiche
Compositor
- 🔸 Compositor: Expose interpolation in Scale node - Ben Beilharz
- 🔸 Compositor: Expose interpolation in Corner Pin node - Maxime-Cots
- 🔸 Compositor: Support GPU OIDN denoising - Omar Emara
- 🔸 Compositor: gizmo for box mask - Habib Gahbiche
- 🔸 Compositor: implement gizmo for ellipse mask node - Habib Gahbiche
- 🔸 Compositor: Make Rotate Star 45 option an input - Omar Emara
- Compositor: Turn Bokeh Image options into inputs - Omar Emara
- Compositor: Turn Time Curve options into inputs - Omar Emara
- Compositor: Turn Mask options into inputs - Omar Emara
- Compositor: Turn Switch node options into inputs - Omar Emara
- Compositor: Turn Split node options into inputs - Omar Emara
- Compositor: Turn Invert node options into inputs - Omar Emara
- Compositor: Turn Z Combine node options into inputs - Omar Emara
- Compositor: Turn Tone Map node options into inputs - Omar Emara
- Compositor: Turn Dilate node options into inputs - Omar Emara
- Compositor: Turn Inpaint node options into inputs - Omar Emara
- Compositor: Turn Pixelate node options into inputs - Omar Emara
- Compositor: Turn Kuwahara node options into inputs - Omar Emara
- Compositor: Turn Despeckle node options into inputs - Omar Emara
- Compositor: Turn Denoise node options into inputs - Omar Emara
- Compositor: Turn Anti-Alias node options into inputs - Omar Emara
- Compositor: Turn Vector Blur node options to inputs - Omar Emara
- Compositor: Turn Channel Key options to inputs - Omar Emara
- Compositor: Turn Chroma Key options to inputs - Omar Emara
- Compositor: Turn Color Key options to inputs - Omar Emara
- Compositor: Turn Difference Key options to inputs - Omar Emara
- Compositor: Turn Distance Key options to inputs - Omar Emara
- Compositor: Turn Luminance Key options to inputs - Omar Emara
- Compositor: Turn Color Spill options to inputs - Omar Emara
- Compositor: Turn Keying Screen options to inputs - Omar Emara
- Compositor: Turn Keying node options to inputs - Omar Emara
- Compositor: Turn ID Mask node options to inputs - Omar Emara
- Compositor: Turn Stabilize node options to inputs - Omar Emara
- Compositor: Turn Plane Track Deform options to inputs - Omar Emara
- Compositor: Turn Color Correction options to inputs - Omar Emara
- Compositor: Turn Lens Distortion options to inputs - Omar Emara
- 🔸 Compositor: Support link search for Glare node - Omar Emara
- Compositor: Mark Mask node options as deprecated - Omar Emara
- Compositor: Remove Map UV node Alpha option - Omar Emara
- Compositor: Use a more conservative execution preset - Omar Emara
Core
- 🔸 Core: Add 'relocate' operation on individual linked ID. - Bastien Montagne
- 🔸 Core: support buffers larger than 2GB in .blend files - Jacques Lucke
Correct error in 5d3496625d8d70b8f54d8ccd456dcbace8acf423
- Correct error in 5d3496625d8d70b8f54d8ccd456dcbace8acf423 - Campbell Barton
Curves
- 🔸 Curves: Custom NURBS knots - Laurynas Duburas
- 🔸 Curves: Simplified Curve Tangent Evaluation - Mattias Fredriksson
Cycles
- Cycles: oneAPI: Fix building for non-Intel SYCL targets without ocloc - Xavier Hallade
- Cycles: Support Decomposed MetalRT motion interpolation - Michael Jones
- Cycles: Disable MNEE on RDNA4 GPUs - Alaska
- Cycles: Make select() and mask() for vectorized float work on CPU and GPU - Sergey Sharybin
- 🔸 Cycles: Optimize 3d and 4d noise - Sergey Sharybin
- Cycles: Print additional warnings about unsupported oneAPI driver versions to terminal - Alaska
- 🔸 Cycles: Support for custom OSL cameras - Lukas Stockner
- Cycles: Vulkan CUDA graphics interop - Brecht Van Lommel
- Cycles: Metal graphics interop - Brecht Van Lommel
- 🔸 Cycles: Add support for automatic bump mapping on OptiX OSL - Lukas Stockner
- Cycles: Move OptiX OSL Camera kernel into its own PTX module - Lukas Stockner
DRW
- DRW: DebugDraw: Revamp the module and make it global - Clément Foucault
- DRW: Move fullscreen vertex shader to gpu common - Clément Foucault
-
DRW: Rename
common_*_lib.glslto follow module prefix - Clément Foucault - DRW: Avoid warning in subdiv shader code - Clément Foucault
Deps
- Deps: macOS arm64/x64: Add new Manifold library - Jonas Holzman
- Deps: Windows x64: Add new Manifold library - Thomas Dinges
- Deps: Linux x64: Add new Manifold library - Sebastian Parborg
- Deps: macOS: Fix libffi build error on Xcode 16.3 / Apple Clang 17 - Jonas Holzman
- Deps: Windows ARM64: Add new Manifold library - Anthony Roberts
- Deps: macOS arm64/x64: Add TBB CMake config files - Jonas Holzman
- Deps: Linux: Add TBB CMake config files - Sebastian Parborg
- Deps: Add missing dependency in apt install guide - Lukas Stockner
Depsgraph
- Depsgraph: Use LinearAllocator to allocate Relations - Hans Goudey
- Depsgraph: Use C++ Stack class - Hans Goudey
- Depsgraph: improve type safety when getting evaluated or original ID - Jacques Lucke
- Depsgraph: Add utility to stringify recalc flags - Sergey Sharybin
Docs
- Docs: cross reference imb_ext_image with known eImbFileType values - Campbell Barton
- Docs: correction to ".tx" description - Campbell Barton
- Docs: note what git_data_canonical_authors.py is used for. - Campbell Barton
- Docs: move WindowManager.fileselect_add descriptions into an example - Campbell Barton
- Docs: add the WindowManager.fileselect_add check_existing property - Andrej730
- Docs: correct use of FILE_PATH for directories - Campbell Barton
- Docs: add warning regarding operators that use the file selector - Campbell Barton
- Docs: Misplaced En Dash in Main README - Jordan Henshaw
Draw
- 🔸 Draw: Skip empty passes - Miguel Pozo
EEVEE
- EEVEE: Move Object ID storage to gbuffer header layer - Clément Foucault
- 🔸 EEVEE: Remove shadow ray horizon clipping - Clément Foucault
- EEVEE: Update reference images after #137485 - Clément Foucault
- 🔸 EEVEE: Shadow Terminator Normal Bias - Clément Foucault
- EEVEE: Update tests for shadow terminator - Clément Foucault
Fix
- Fix: Compilation error with XCode 16.3 - Sergey Sharybin
- Fix: VSE crash when moving retiming key - Richard Antalik
- Fix: potential use of invalid IME window pointer on Wayland - Campbell Barton
- Fix: incorrect NDOF pan speed in "Free" navigation mode - Kamil Galik
- Fix: Multi-window UI tests can produce inconsistent results - Sean Kim
- Fix: Extra space at end of Tilt Strength description - Sean Kim
- Fix: Grease Pencil: Channel color versioning - Pratik Borhade
- Fix: Retain slot name when baking action - Christoph Lendenfeld
- Fix: Grease Pencil: SVG export uniform width option - Falk David
- Fix: FCurve noise modifier offset affected by scale - Christoph Lendenfeld
- Fix: Adding Freestyle texture doesn't add texture tab in properties - Julian Eisel
- Fix: Warnings after Ceres update - Sergey Sharybin
- Fix: Use math::is_zero instead of equality check for assert - Sean Kim
- Fix: Clay strips brush does nothing with 'Original Plane' set - Sean Kim
- Fix: avoid crash when there is an unknown interface socket - Jacques Lucke
- Fix: Tests: Geometry Nodes tests ignore threshold value - илья _
- Fix: Node are duplicated in link add search menu - Omar Emara
- Fix: GNUmakefile error erroring without the error message on Win32 - наб
- Fix: Line Art: Prevent loading empty meshes - YimingWu
- Fix: Cycles Render Scheduler not respecting sample limit per update - Weizhen Huang
- Fix: #136269: Geometry Nodes: crash due to missing collection in depsgraph - илья _
- Fix: DRW: Shader printf not working inside draw context - Clément Foucault
- Fix: Clay Strips brush plane inconsistently calculated & used - Sean Kim
- Fix: use of non UTF8 string copy for thick wrapped strings in Python - Campbell Barton
- Fix: Compositor does compute preview once enabled - Omar Emara
- Fix: memory leak on Wayland with IME - Campbell Barton
- Fix: Cage2d gizmo rotation handle stretches with rotation - Habib Gahbiche
- Fix: Crash when sampling Float2 images - Omar Emara
- Fix: Build failures when using path with spaces on macOS - Brecht Van Lommel
- Fix: EEVEE motion blur broken after recent fix - Hans Goudey
- Fix: regression storing density in BMP I/O - Campbell Barton
- Fix: Vulkan/OpenXR: Crash when vulkan physical device not found - Jeroen Bakker
- Fix: raise exception when passing arguments to GeometrySet constructor - Jacques Lucke
- Fix: Vulkan/OpenXR: Incorrect swapchain image layout - Jeroen Bakker
- Fix: ASAN error with Span.slice_safe with empty span - Brecht Van Lommel
- Fix: propagate warnings from closure zone to evaluate closure node - Jacques Lucke
- Fix: ASAN build does not link - Jacques Lucke
- Fix: Nodes: Make snapping during resizing more consistent. - Leon Schittek
- Fix: Revert some C++ math changes for clay_thumb.cc - Sean Kim
- Fix: Multiplane Scrape sculpt plane can be incorrect - Sean Kim
- Fix: error with CMake checking the wrong WEBP variable - Campbell Barton
- Fix: incorrect iris image header detection - Campbell Barton
- Fix: error writing & loading corrupt IRIS files - Campbell Barton
- Fix: Grease Pencil stats in status bar when in edit mode - Pratik Borhade
- Fix: Assert division by zero when ellipse mask size is zero - Habib Gahbiche
- Fix: correct check for Iris image dimensions - Campbell Barton
- Fix: error report writing image that displayed "Success" - Campbell Barton
- Fix: new render slots could contain truncated UTF8 byte sequences - Campbell Barton
- Fix: resetting/clearing the filename skipped validation - Campbell Barton
- Fix: Vulkan: Unable to start on WoA - Jeroen Bakker
- Fix: Geometry Nodes: Attribute search not working for Grease Pencil drawings - Falk David
- Fix: Vulkan/OpenXR: Use correct data format for CPU transfers - Jeroen Bakker
- Fix: Geometry Nodes: Avoid recomputation of evaluated gizmo node ids - Falk David
- Fix: CMake error with old or incomplete HIP install - Brecht Van Lommel
- Fix: Brushes incorrectly show gravity as an option when unsupported - Sean Kim
- Fix: assert adding relative entries from preferences - Campbell Barton
- Fix: error reading RLE compressed Iris images - Campbell Barton
- Fix: crash saving large WebP images - Campbell Barton
- Fix: crash loading & saving large Iris images - Campbell Barton
- Fix: integer overflows calculating the number of pixels in imbuf - Campbell Barton
- Fix: VSE: SEQUENCER_OT_change_effect_input.swap not found - Pratik Borhade
- Fix: Curve status bar stats - Pratik Borhade
- Fix: crash saving large Cineon images - Campbell Barton
- Fix: failure to save an existing Cineon file - Campbell Barton
- Fix: Metal: textureGather - Miguel Pozo
- Fix: Cycles CUDA errors after recent changes for scene update - Brecht Van Lommel
- Fix: Radial symmetry caculation for planar brushes incorrect - Sean Kim
- Fix: Plane brush symmetry passes do not use the stabilized normal - Nicola
- Fix: integer overflow scaling large images - Campbell Barton
- Fix: integer overflows calculating the number of pixels - Campbell Barton
- Fix: sequencer text insert operator clamps string length - Campbell Barton
- Fix: enum values not included in Python docs for NodeTreeTypes - Campbell Barton
- Fix: integer overflow for pixel lookups on large images for geonodes - Campbell Barton
- Fix: integer overflow in rect buffer filling on large buffers - Campbell Barton
- Fix: 2D gizmo in 3D shows corner and rotation handles - Habib Gahbiche
- Fix: Geometry Nodes: prevent evaluating closures recursively - Jacques Lucke
- Fix: bad index when setting default closure outputs - Jacques Lucke
- Fix: crash drawing poly-line gesture - Campbell Barton
- Fix: PyDocs: document bpy_prop_collection.values() possible None values - Andrej730
- Fix: OpenColorIO color processors pointers not deleted correctly - Brecht Van Lommel
- Fix: Remove bad ColorBand/CurveMapping/CurveProfile alloc in UI - Brecht Van Lommel
- Fix: Cycles build error when WITH_CYCLES_OSL=OFF - Brecht Van Lommel
- Fix: memory leak when evaluating closure - Jacques Lucke
- Fix: Tests: Init thread API for GPUTests - Miguel Pozo
- Fix: merge conflict after rename - Jacques Lucke
- Fix: another merge conflict - Jacques Lucke
- Fix: Geometry Nodes: Scale Elements non-deterministic results - Iliya Katushenock
- Fix: Compositor: Crash in Movie Distortion node with extreme distortions - Lukas Stockner
- Fix: Geometry Nodes: add check if closure should log - Jacques Lucke
- Fix: Compositor: Boolean socket fails in shader node - Omar Emara
- Fix: Nodes: "Make Panel Toggle" can turn Boolean output sockets into panel toggles - quackarooni
- Fix: Mesh true vert normals uses incorrect face normals - Hans Goudey
- Fix: EEVEE: Missing update from shading popover properties - Clément Foucault
- Fix: EEVEE: Assert in render - Clément Foucault
- Fix: Missing point cloud bounds update when deleting points - Hans Goudey
- Fix: object.voxel_remesh operator can crash with 0 for input - Sean Kim
- Fix: Sculpt performance test does not run - Sean Kim
- Fix: Compositor: Crash in Movie Distortion node with extreme distortions (again) - Lukas Stockner
- Fix: EEVEE: Shadow acnee caused by large objects in the scene - Clément Foucault
- Fix: Missing Render Layer Passes for workbench - Aaron Carlisle
- Fix: Remove header socket along with panel - Pratik Borhade
- Fix: linking with only WITH_IO_FBX enabled - Campbell Barton
- Fix: Crash when dragging assets between nodes area and status bar - Endor H
- Fix: GPU: Broken compilation on Mac - Clément Foucault
- Fix: DRW: Nullptr dereference in tests - Clément Foucault
- Fix: DRW: Uninitialized mutex in tests - Clément Foucault
- Fix: DRW: Broken or non-deterministic tests - Clément Foucault
- Fix: Sculpt performance test doesn't run - Sean Kim
- Fix: Metal: Broken tests because of partial renaming - Clément Foucault
- Fix: VSE cache invalidates all strips - Richard Antalik
- Fix: Outliner: Grease Pencil layer visibility icons are grayed out - Pratik Borhade
- Fix: Sculpt view normal incorrectly calculated - Sean Kim
- Fix: VSE: Local transform for mirrored strip images - lucid3dr
- Fix: Plane brush sculpt normal can be invalid with symmetry enabled - Sean Kim
- Fix: Geometry Nodes: Grid converter for float3 returns uniform vector - Lukas Tönne
- Fix: Remove incorrect assert in CustomData validation - Hans Goudey
- Fix: Build error after recent cleanup commit - Hans Goudey
- Fix: Mismatched new/delete in annotation and text operators - Brecht Van Lommel
- Fix: Incorrect use of StringRef in USD logging - Brecht Van Lommel
- Fix: Interactive Add Tool does not restore the snap properties on cancel - John Kinzel
- Fix: building WITH_TBB=OFF - Campbell Barton
- Fix: non-trivial memcpy compiler warnings on animrig copy constructors - Nathan Vegdahl
- Fix: #133486: 'use_region_toggle_pie' AssertionError in MovieClipEditor - Campbell Barton
- Fix: Cycles adaptive kernel compilation - Alaska
- Fix: Invalid kdtree node allocation after recent refactor - Brecht Van Lommel
- Fix: License document had wrong link for public domain - Thomas Dinges
- Fix: potential crash from null pointer dereference - Campbell Barton
- Fix: #137772: Marker area obstructing Keyframe Manipulation - Pratik Borhade
- Fix: Revert accidential test submodule hash change - Sean Kim
- Fix: Cycles: Do not count volume bounds bounce as transparent - Weizhen Huang
- Fix: Overlay: Broken shader compilation due to implicit cast - Clément Foucault
- Fix: Overlay: Shader error because of implicit cast - Clément Foucault
- Fix: Vulkan: Avoid warning about enum value not handled in switch - Clément Foucault
- Fix: Convert attribute operator can change active attribute - Hans Goudey
- Fix: incorrect use of the last handled event - Campbell Barton
- Fix: correct type for wmWindow::event_queue_consecutive_gesture_type - Campbell Barton
- Fix: error in BVH export when the operator context becomes invalid - Campbell Barton
- Fix: UI: Incorrect splash screen width on HiDPI/Retina displays at low window sizes - Jun Mizutani
- Fix: Cycles: mix weight not applied on volume emission with SVM - Weizhen Huang
- Fix: Cycles: Wrong derivative handling in OptiX OSL transform() - Lukas Stockner
- Fix: GPU: Broken blend mode tests - Clément Foucault
- Fix: Cycles: Shadow terminator logic does not account for OSL bump mapping - Lukas Stockner
- Fix: glitch highlighting gizmos when using a tablet - Campbell Barton
- Fix: Do not create completely empty animation curves in new FBX importer - Aras Pranckevicius
- Fix: Grease Pencil: Change split stroke shortcut - Pratik Borhade
- Fix #102755: Viscosity instability in Mantaflow - Bartosz Kosiorek
- Fix #116612: Load in USD skeleton rest transforms - Jesse Yurkovich
- Fix #116937: Position and Size ICON_TYPE_VECTOR icons by float - Harley Acheson
- Fix #118806: Grease Pencil: Add "isolate layer" shortcut to Dope Sheet editor - Urko Mauduit
- Fix #124674: Missing UI update exiting palette color picking - YimingWu
- Fix #125696: Rigify: spline_tentacle fails to generate sometimes - Sybren A. Stüvel
- Fix #126628: Display rigid body collision shape when Extras overlay enabled - Patrick Huang
- Fix #130914: Vulkan memory leak while resizing view-port - Josh Belanich
- Fix #131778: Grease Pencil: Cursor radius wrong for transformed object - Philipp Oeser
- Fix #132028: Outliner: Skip search filtering in Lib override hierarchy - Pratik Borhade
- Fix #132178: "Frames" wrong in the tooltip for movies in image search - Philipp Oeser
- Fix #132196: UI: Camera gizmo cannot be shifted on Intel GPUs - Christoph Neuhauser
- Fix #134098: Grease Pencil: Use thinner lines for converting from Curves - YimingWu
- Fix #134494: Grease Pencil: Tint modifier fix on gradient material - YimingWu
- Fix #134774: Modeling: Show warning when some objects failed to convert - YimingWu
- Fix #134928: Vulkan: Out of bounds framebuffer region - Jeroen Bakker
- Fix #135039: Vulkan: Blender does not start with Wayland in GNOME - Campbell Barton
- Fix #135696: Alembic: Interpolate curve control points - David Murmann
- Fix #135773: Grease Pencil: Applying modifier changes layer order - Falk David
- Fix #135979: Extensions refresh does nothing for local repositories - Campbell Barton
- Fix #136243: Grease Pencil: Automerge doesn't propagate vertex groups - Falk David
- Fix #136254: Assets not available in search after saving file - Julian Eisel
- Fix #136314: Outline flicker when resizing editor - Pratik Borhade
- Fix #136346: Workbench: Smoke simulation renders artifacts - Miguel Pozo
- Fix #136384: Separate by Material leaves objects without material slots - Zyq-XDz
- Fix #136395: Python API Quickstart uses outdated API - Philipp Oeser
- Fix #136432: Linked Data: Relocating libraries can assert in some cases. - Bastien Montagne
- Fix #136479: missing Image preview icons for certain render engines - Philipp Oeser
- Fix #136513: Add cursor snapping in VSE Preview - John Kiril Swenson
- Fix #136531: Cycles: missing light update when Emission Sampling is None - Weizhen Huang
- Fix #136556: Cycles emission estimate affects the constant emission - Weizhen Huang
- Fix #136563: Crash clicking on a light after it has been deleted - Campbell Barton
- Fix #136608: ASAN crash when texture painting - T0MIS0N
- Fix #136615: Disallow writeback callbacks that are not cleared - Lukas Tönne
- Fix #136645: Regression: Preview generation fails for multiple IDs - Pratik Borhade
- Fix #136699: Denoise node crash in viewport compositor - Omar Emara
- Fix #136796: wm.radial_control with confirm on release missing update - Philipp Oeser
- Fix #136798: Crash with subdivision and shrinkwrap depsgraph evaluation - Brecht Van Lommel
- Fix #136810: UV: Wrong UV channel used for displaying UV edges - Clément Foucault
- Fix #136811: HIP-RT performance regression in 4.5 - Sergey Sharybin
- Fix #136812: Glitches in White Noise node in compositor - Omar Emara
-
Fix #136829: UI: Reset
win->ime_datawhen creating system window. - YimingWu - Fix #136830: When multiple F-Curves are marked as active, only one is drawn - Sybren A. Stüvel
- Fix #136831: GPU: Crash on Mac trying to draw an empty batch for shader - Clément Foucault
- Fix #136835: Sculpting with certain modifiers uses original positions - Hans Goudey
- Fix #136837: Mesh incorrectly renders smooth with GPU subdivision in some cases - Hans Goudey
- Fix #136844: Grease Pencil vertex colors can get corrupted - Falk David
- Fix #136850: HDRI Preview Flickering in Viewport Shading - Clément Foucault
- Fix #136860: Build failure on big endian platforms - Alaska
- Fix #136866: Voronoi 1D crashes GPU compositor - Omar Emara
- Fix #136867: Modeling: Knife cut through toggle should refresh cuts - YimingWu
- Fix #136868: Line Art: Wrong index when transferring vertex weight - YimingWu
- Fix #136873: Edit mesh knife crash with no valid evaluated edit mesh - Hans Goudey
- Fix #136883: DRW: Crash with empty point cloud - Clément Foucault
- Fix #136887: collapsed channels not getting filtered properly - Nathan Vegdahl
- Fix #136891: Diffuse BSDF node legacy enum name changed mistakenly - Hans Goudey
- Fix #136891: changed legacy enum names for some compositor nodes - Andrej730
- Fix #136894: Crashes due to invalid code in ID management. - Bastien Montagne
- Fix #136911: Overlay: 3D Cursor disappears when opening File Open dialogue - Clément Foucault
-
Fix #136938:
bpy.path.module_namesdoes not returnlist[str]- Germano Cavalcante - Fix #136947: Duplicate Action Slot doesn't duplicate animation data - Sybren A. Stüvel
- Fix #136967: Crash on Merge Animation when Slot has no Channelbag - Sybren A. Stüvel
- Fix #136994: Node Wrangler: Add ShaderNodeTexGabor to "textures" list - Jesse Yurkovich
- Fix #136998: Cannot assign shortcut to insert single keyframe operator - Pratik Borhade
- Fix #136999: wrong menu placement after walk navigation under Wayland - Campbell Barton
- Fix #137022: EEVEE: Shadows on reflection planes render incorrectly - Clément Foucault
- Fix #137041: Bugs with Slotted Actions and the Available Keying Set - Sybren A. Stüvel
- Fix #137043: Grease Pencil multi frame falloff not working correctly - Falk David
- Fix #137052: GPU: Crash on startup caused by legacy pyGPU API - Clément Foucault
- Fix #137081: Vulkan: Crash during animation playback - Josh Belanich
- Fix #137081: Vulkan: Memory leak in descriptor pools. - Jeroen Bakker
- Fix #137082: Wrong pixel aspect ratio for rendered output - Campbell Barton
- Fix #137084: Image Editor shifts the images when Aspect Ratio is not 1.0 - Sergey Sharybin
- Fix #137097: Cycles: No occlusion with Grease Pencil in the viewport - Clément Foucault
- Fix #137098: Crash when saving file in edit mode from python load_post handler - Hans Goudey
- Fix #137100: Extra version when reporting a bug from the crash window - Alaska
- Fix #137114: crash due to bad mesh ownership handling - Jacques Lucke
- Fix #137121: Overlay: Vertex Flickering in X-Ray View - Miguel Pozo
- Fix #137127: missing null check when accessing GeometrySet.mesh - Jacques Lucke
- Fix #137135: Grease Pencil Join not reporting non-active layer - Philipp Oeser
- Fix #137145: Crash when enabling Auto Normalize in Weight Paint mode - Hans Goudey
- Fix #137152: Grease Pencil: Layer flag is overridden during conversion - Falk David
- Fix #137163: Curve to points can ignore instances in input - Hans Goudey
- Fix #137169: "Panel Toggle" poll errors if a panel's first child item is a panel - quackarooni
- Fix #137186: Allow Event Handling When Cursor Outside Wide Menus - Harley Acheson
- Fix #137197: Grease pencil duplicating materials on custom brushes - Brecht Van Lommel
- Fix #137218: Make All Tabs Visible for New Properties Area - Harley Acheson
- Fix #137227: Grease Pencil: Crash when getting multi frame falloff - Falk David
- Fix #137230: Cycles OpenPGL crash with shadow catcher - Sergey Sharybin
- Fix #137268: CTRL+Shift clicking creates additional Material Outputs - Habib Gahbiche
- Fix #137293: Compositor crash when resolution is changed - Omar Emara
- Fix #137314: Excluded directories ignored when opening from the splash - Campbell Barton
- Fix #137321: Can't select handles on full-length scrollbars - John Kiril Swenson
- Fix #137329: Overlay: Cursor not always visible - Jeroen Bakker
- Fix #137365: Do Not Return .notdef for Text Object Control Characters - Harley Acheson
- Fix #137366: UI: wrong render slot names - Campbell Barton
- Fix #137380: Exiting edit-mode while transforming crashes - Campbell Barton
- Fix #137382: Vulkan: Memory leak when rendering - Jeroen Bakker
- Fix #137385: Grease Pencil: Thickness modifier doesn't work with vgroup filter - Pratik Borhade
- Fix #137386: UI: Show Default Dursor in Paint Mode Menus and Dialogs - Sietse Brouwer
- Fix #137391: Do Not Restrict Marker Operations on Region Size - Harley Acheson
- Fix #137392: Hair Particle "Shape Cut" operator crash after Mesh BVH caching - Hans Goudey
- Fix #137395: Vulkan: Memory reset to early - Jeroen Bakker
- Fix #137412: Make Local on liboverride can break hierarchy. - Bastien Montagne
- Fix #137427: Overlay: Darker curve sculpt overlay - Miguel Pozo
- Fix #137430: Improved Calculation of Minimum Vertical Area Heights - Harley Acheson
- Fix #137449: Face Set gesture in Dyntopo doesn't create attribute - Sean Kim
- Fix #137451: Crash after setting the curve types to bezier - Falk David
- Fix #137459: Curves: removing all points deletes geometry attibutes - Pratik Borhade
- Fix #137466: Unable to assign shortcuts to 'weight' operators in Weightpaint Mode - Pratik Borhade
- Fix #137475: Overlay: Empty point cloud crash with geometry nodes - Clément Foucault
- Fix #137493: UI: Show "Active Spline" panel for surface types - YimingWu
- Fix #137494: Dyntopo crash after undoing Random Mask - Sean Kim
- Fix #137496: Dyntopo mask undo doesn't update paint BVH state - Sean Kim
- Fix #137507: collection exporter shows relative paths unsupported - Campbell Barton
- Fix #137514: EEVEE: Holdout objects still emit radiance - Miguel Pozo
- Fix #137517: Cycles adaptive subdivision doesn't use flat normals - Brecht Van Lommel
- Fix #137523: Grease Pencil: Crash in realize instance node - Falk David
- Fix #137528: Grease Pencil: Swap bezier handles when joining strokes - YimingWu
- Fix #137539: Overlay: Sculpt overlays regression - Miguel Pozo
- Fix #137541: Search in Properties Editor throwing errors - Richard Antalik
- Fix #137548: Assert propagating unsupported string attribute type - Hans Goudey
- Fix #137552: change REINSTALLMODE to amus - Ray Molenkamp
- Fix #137560: Overlay: Mesh visibility mismatch - Miguel Pozo
- Fix #137566: EEVEE: Crash when zooming Blended object in Ortho mode - Miguel Pozo
- Fix #137598: OCIO: Broken shader compilation with specific config - Clément Foucault
- Fix #137600: Curve to points node anonymous attribute outputs broken - Hans Goudey
- Fix #137610: Motion Paths don't auto-update - Philipp Oeser
- Fix #137621: Cycles curve info random gives wrong value - Brecht Van Lommel
- Fix #137647: Remove warning about macOS not supporting custom wire widths - Alaska
- Fix #137654: Cryptomatte only works with first layer - Omar Emara
- Fix #137676: Clamping of rendered results with OIDN GPU denoising - Alaska
- Fix #137683: Cycles issue with persistent data and motion blur - Brecht Van Lommel
-
Fix #137700: Guard null
lt.editlattinDRW_cache_lattice_wire_get- YimingWu - Fix #137724: Crash during render compositing - Omar Emara
- Fix #137751: Dyntopo undo can crash when drawing attributes - Sean Kim
- Fix #137756: EEVEE: Crash when saving while using textured volume on world - Clément Foucault
- Fix #137779: Assigning Action without slot can crash the Dope Sheet - Sybren A. Stüvel
- Fix #137784: Translate text in status bar when interface translate is on - Pratik Borhade
- Fix #137792: Animation: Auto-keying for Light Track to Cursor operator - YimingWu
- Fix #137792: Applying auto-keyframing when resetting property values. - ChengduLittleA
- Fix #137821: Crash with grease pencil render, compositor and render region - Brecht Van Lommel
- Fix #137825: Grease Pencil: Orbit around selection fails in paint mode - Pratik Borhade
- Fix #137856: "Relative Path" missing from Collection>Exporters browser - Campbell Barton
- Fix #137864: Action Constraint without Action produces invalid result - Sybren A. Stüvel
- Fix #137869, #105665, #98339: Wrong or delayed mesh subdivision stats - Brecht Van Lommel
- Fix #137873: Crash when Attempting to Open a Template - Pratik Borhade
- Fix #137877: rigid body affected by forcefield even at strength zero - Philipp Oeser
- Fix #137899: NW: Saving Viewer Node returns to Geometry Node Editor - Philipp Oeser
- Fix #137902: Manifold boolean modifier solver doubles object transform - Hans Goudey
- Fix #137939: Collection Exporter properties no longer respond to Undo - Julian Eisel
- Fix #137940: Wider Text Caret for Text Object Editing - Harley Acheson
- Fix #137940: 3D text cursor displays intermittently when zoomed out - Campbell Barton
- Fix #137958: Overlay: Lines are too thick - Clément Foucault
- Fix #137968: Bad custom normals after Manifold boolean. - Howard Trickey
- Fix #137996: Use square texture when baking to color attributes - Jesse Yurkovich
- Fix #138001: File output node with no inputs crash - Omar Emara
- Fix #138012: Grease Pencil: Use eval object in compute_objects_bounds - ChengduLittleA
- Fix #138071: Cycles World Ray Visibility not updating viewport - Philipp Oeser
- Fix #138072: UV stitch from menu doesn't allow user to configure what get's stitch - Pratik Borhade
- Fix #138073: Crash with UI display of custom properties - Brecht Van Lommel
- Fix #138084: closure and bundles show up in UI even if disabled - Jacques Lucke
- Fix #63434: Edit mesh undo does not handle vertex group removal - Hans Goudey
- Fix #70977: Dissolve can create duplicate faces - Jason C. Wenger
- Fix #98339: Spreadsheet does not immediately report mesh subdiv info - Brecht Van Lommel
-
Fix (unreported): Protect Outliner UI py code util against
Nonecontext.idvalue. - Bastien Montagne - Fix (unreported): Opening N panel with mouse frees null ptr - YimingWu
- Fix 136825: Can't deactivate Geometry Nodes viewer - Habib Gahbiche
- Fix Python: broken format string in API docs - Jan-Hendrik-Muller
- Fix compile warning - Aras Pranckevicius
- Fix compiling Blender with USD in clang19. - Bastien Montagne
- Fix duplicated dirpath in fileselect_add docs (0314f9318c) - Andrej730
- Fix missing topology cache in during node tree updates - Lukas Tönne
- Fix strict warnings in extern/ after Audaspace update - Sergey Sharybin
GHOST
- GHOST: Add GHOST_GetActiveGPUContext() - Miguel Pozo
- GHOST: Remove GHOST_DisplayManager and its implementations - Jonas Holzman
GPU
- GPU: Use guarded alloc for backends - Miguel Pozo
- GPU: Support deferred compilation in ShaderCompilerGeneric - Miguel Pozo
-
GPU: Use
fsuffix for float literals - Clément Foucault -
GPU: Change
Typeenum to use lower case values - Clément Foucault - GPU: Shader: Change vector and matrix type to use blender convention - Clément Foucault
- GPU: Shader CodeBase use constexpr instead of const - Clément Foucault
- GPU: Remove WITH_GPU_RENDER_TESTS_SILENT option - Clément Foucault
- GPU: Expose preprocessor through API - Clément Foucault
- GPU: Preprocessor: Make source type extension convert to enum type - Clément Foucault
- GPU: Preprocessor: Allow function argument to be references - Clément Foucault
- GPU: Rename shader_shared.h files to .hh - Clément Foucault
- GPU: Refactor Qualifier and ImageType - Clément Foucault
- GPU: Tests: Add missing context cleanup calls - Clément Foucault
- GPU: Tests: Use GHOST_CreateSystemBackground - Clément Foucault
Geometry Nodes
- 🔸 Geometry Nodes: Match String node - quackarooni
-
🔸
Geometry Nodes: Add
Set Grease Pencil Colornode - Falk David - 🔸 Geometry Nodes: Field Statistic Nodes - quackarooni
- 🔸 Geometry Nodes: Add node to set the Grease Pencil depth order - Falk David
- 🔸 Geometry Nodes: new Instance Bounds Node - Cartesian Caramel
- 🔸 Geometry Nodes: add Closures and Bundles behind experimental feature flag - Jacques Lucke
- Geometry Nodes: initial boilerplate for viewer path for closure evaluation - Jacques Lucke
- Geometry Nodes: log closure evaluations - Jacques Lucke
- Geometry Nodes: add compute context cache - Jacques Lucke
- Geometry Nodes: name based internal links in Evaluate Closure node - Jacques Lucke
- Geometry Nodes: enable closure regression tests - Jacques Lucke
- Geometry Nodes: pass through in Evaluate Closure by default - Jacques Lucke
- Geometry Nodes: add closure pass through test - Jacques Lucke
- Geometry Nodes: initial support for showing logged data in closures - Jacques Lucke
- Geometry Nodes: support viewers in closures - Jacques Lucke
- Geometry Nodes: support creating closure with correct interface using link-drag-search - Jacques Lucke
- Geometry Nodes: Hide "Group ID" value in Accumulate Field node - Brady Johnston
- 🔸 Geometry Nodes: support adding zones with link-drag-search - Jacques Lucke
- 🔸 Geometry Nodes: Add Grease Pencil layer name search - Falk David
- 🔸 Geometry Nodes: Align inputs and outputs in many nodes - Hans Goudey
- 🔸 Geometry Nodes: Align inputs and outputs on three nodes - Hans Goudey
Grease Pencil
- 🔸 Grease Pencil: Accumulation Anti-aliasing - Clément Foucault
- 🔸 Grease Pencil: Use smooth brush setting when smoothing temporarily - YimingWu
- 🔸 Grease Pencil: Python API: Expose bézier handle selection - Falk David
- 🔸 Grease Pencil: Filter option in render - YimingWu
- 🔸 Grease Pencil: Add separate render pass - YimingWu
I18N
- I18N: Updated UI translations from git/weblate repository (834c73f29df16c). - Bastien Montagne
- I18N: Update UI translations from git/weblate repository (82927a8fdc7ad3). - Bastien Montagne
- I18N: Updated UI translations from git/weblate repsitory (9cf661d88cfa76). - Bastien Montagne
- 🔸 I18N: Add British English language to supported translations. - Bastien Montagne
IO
- 🔸 IO: New FBX importer (C++, via ufbx) - Aras Pranckevicius
ImBuf
- ImBuf: remove ".tx" extension from the list of supported images - Campbell Barton
- 🔸 ImBuf: write the aspect ratio to EXR images - Campbell Barton
- 🔸 ImBuf: support rendering BMP images with alpha - Campbell Barton
LibOverride
- 🔸 LibOverride: Improve resync when relocating linked data. - Bastien Montagne
- LibOverride: Ignore loopback relationships in hierarchies handling. - Bastien Montagne
Libmv
- Libmv: Abstract parallel range in camera intrinsics - Sergey Sharybin
License
- License: Regenerate licence doc - Thomas Dinges
Linux
- 🔸 Linux: correct mount point prefix checks - Campbell Barton
- 🔸 Linux: hide the "/efi" mount point in the file-browser - Campbell Barton
MEM_guardedalloc
- MEM_guardedalloc: Organize and Document the public API. - Bastien Montagne
Mesh
- 🔸 Mesh: Add "free" custom normals - Hans Goudey
- 🔸 Mesh: Parallelize corner to point domain adaptation - Mattias Fredriksson
- 🔸 Mesh: Parallelize face to point domain adaptation - Hans Goudey
- Mesh: Tag no loose vertices for Manifold Boolean output - Hans Goudey
Modeling
- 🔸 Modeling: Add a new boolean solver based on the Manifold library. - Howard Trickey
- Modeling: fix face merging issue with manifold boolean. - Howard Trickey
Modifiers
Movie
- 🔸 Movie: Add support for writing ProRes codec videos - Martin-Vignali
Nodes
- 🔸 Nodes: Support snapping when resizing nodes vertically - Leon Schittek
- 🔸 Nodes: Make spacing for Panel Toggle properties consistent with that of Boolean sockets - quackarooni
- Nodes: add zone utility functions - Jacques Lucke
- 🔸 Nodes: Align inputs and outputs on some function nodes - Hans Goudey
OpenGL
Overlay
- 🔸 Overlay: Allow drawing UVs in Image Editor in any mode - T0MIS0N
- 🔸 Overlay: Reduce retopology overlay default distance - Jonathan Lampel
Paint
Physics
- 🔸 Physics: Improve fluid baking messages - Bartosz Kosiorek
Point Cloud
- 🔸 Point Cloud: Enable object type without experimental option - Hans Goudey
- 🔸 Point Cloud: Implement proportional editing for transform operator - Hans Goudey
PyAPI
- PyAPI: add "image_webp" build option - Campbell Barton
- PyAPI: match the more verbose identifier for blend-relative paths - Campbell Barton
- PyAPI: add imbuf.load_from_buffer to support loading images from memory - Campbell Barton
PyDoc
- PyDoc: clarify the "capsule" return type - Campbell Barton
- PyDoc: use complete sentences in comments for templates & examples - Campbell Barton
- PyDoc: support disabling online access when building the API docs - Campbell Barton
- PyDoc: fix resource leak warning when generating docs - Campbell Barton
- PyDoc: correct formatting for GPUShaderCreateInfo.depth_write - nutti
- PyDoc: use context manager to avoid resource leak writing log-file - Campbell Barton
- PyDoc: Add base class of bpy_prop_collection_idprop - nutti
RNA
- RNA: support flagging properties as support blend file relative prefix - Campbell Barton
- RNA: remove sequencer cache directory update function - Campbell Barton
- RNA: enable flag the font-directory as relative - Campbell Barton
- RNA: use the file-path subtype & blend relative flag where supported - Campbell Barton
- RNA: add PointerRNA::data_as<T>() method - Jacques Lucke
Refactor
- Refactor: Vulkan: swapchain - Jeroen Bakker
- Refactor: Depsgraph: Use StringRef, inline some simple methods - Hans Goudey
- Refactor: Various cleanups to ED_mesh_shapes_join_objects_exec - Hans Goudey
- Refactor: Build: Add bf::dependencies::eigen target - Brecht Van Lommel
- Refactor: Eigen: Switch from OpenMP to TBB - Brecht Van Lommel
- Refactor: Cloth: Switch from OpenMP to TBB - Brecht Van Lommel
- Refactor: Restructure paint BVH node gathering methods - Sean Kim
- Refactor: use a more directly method of applying UV sticky selection - Campbell Barton
- Refactor: Depsgraph: add const variants of a couple depsgraph query functions - Jacques Lucke
- Refactor: Geometry Nodes: improve accessing contextual tree log data - Jacques Lucke
- Refactor: Geometry Nodes: store tree identifier in tree logger - Jacques Lucke
- Refactor: BLI: use FunctionRef in BLI_uniquename api - Jacques Lucke
- Refactor: Cycles: Use full resolution for viewplane bounds check - Brecht Van Lommel
- Refactor: Cycles: Move scene update earlier in render iteration update - Brecht Van Lommel
- Refactor: Extract plane brush node calculation to plane.cc - Sean Kim
- Refactor: Hydra: Use matching texture format - Brecht Van Lommel
- Refactor: Geometry Nodes: replace ComputeContextBuilder with ComputeContextCache - Jacques Lucke
- Refactor: BLI: Make some CPPType properties public instead of using methods - Jacques Lucke
- Refactor: Geometry Nodes: extract function to create compute context for zone - Jacques Lucke
- Refactor: clean up code of Pose mode Select Mirror operator - Sybren A. Stüvel
- Refactor: Geometry Nodes: simplify getting compute context for edittree - Jacques Lucke
- Refactor: Mesh: Don't share code between "clear geomtry" and "free" - Hans Goudey
- Refactor: Use more typed MEM_calloc<>, avoid unnecessary size_t cast - Brecht Van Lommel
- Refactor: Eliminate various void pointers passed to MEM_freeN - Brecht Van Lommel
- Refactor: Eliminate various unsafe memcpy and memset - Brecht Van Lommel
- Refactor: Add function to query editable Graph Editor curves - Christoph Lendenfeld
- Refactor: Use more typed MEM_calloc<> and MEM_malloc<> - Brecht Van Lommel
- Refactor: UI: Split uiLayout API into separate header - Guillermo Venegas
- Refactor: don't pass in mesh & object data to edit-mesh undo functions - Campbell Barton
- Refactor: UI: Rename uiLayout properties with trailing underscore (1/2) - Guillermo Venegas
- Refactor: UI: Rename uiLayout properties with trailing underscore (2/2) - Guillermo Venegas
- Refactor: pose select enum to enum class - Christoph Lendenfeld
- Refactor: UI: Rename uiItem properties with trailing underscore - Guillermo Venegas
- Refactor: Factor out Blender API URL in bug fixes per release script - Alaska
- Refactor: UI: Replace uiLayoutRow with class method uiLayout::row - Guillermo Venegas
- Refactor: UI: Replace uiLayoutRowWithHeading with class method uiLayout::row - Guillermo Venegas
- Refactor: UI: Replace uiLayoutColumn with class method uiLayout::column - Guillermo Venegas
- Refactor: UI: Replace uiLayoutColumnWithHeading with class method uiLayout::column - Guillermo Venegas
- Refactor: Cycles: Graphics interop changes - Brecht Van Lommel
Release
- Release: Update installer graphic for 4.4 - Thomas Dinges
Release note tools
- Release note tools: Only check for issue numbers if they contain a space before them - Alaska
- Release note tools: Shift commit fix overrides to a Gitea issue - Alaska
- Release notes tools: Add manual revert commit sorting - Alaska
Render
- 🔸 Render: support pixel density in the render pipeline - Campbell Barton
Sculpt
- 🔸 Sculpt: Add Manifold Boolean solver, avoid BMesh conversion for trim - Hans Goudey
- 🔸 Sculpt: Adjust list of brushes that can use tilt functionality - Sean Kim
- 🔸 Sculpt: Allow negative values for tilt_strength_factor - Sean Kim
- 🔸 Sculpt: Avoid use of BKE_pbvh_redraw_BB - Nicola
- 🔸 Sculpt: Add BVH node parent index to optimize bounds update - Nicola
- 🔸 Sculpt: Adjust inactive cursor display based on tilt - Sean Kim
- 🔸 Sculpt: Extract & refactor Clay Strips brush plane calculation - Sean Kim
- 🔸 Sculpt: Clay Strips optimizations - Nicola
- Sculpt: Avoid unnecessary sampled brush normal calculation - Sean Kim
- Sculpt: Avoid calculating brush normal for view automasking - Sean Kim
- Sculpt: Avoid calculating brush normal during stroke for automasking - Sean Kim
Shader
- 🔸 Shader: Use experimental node previews only for material trees - Colin Marmond
Shape Keys
- 🔸 Shape Keys: Add "Duplicate Shape Key" operator - Hans Goudey
- 🔸 Shape Keys: Tweaks to duplicate operator - Hans Goudey
Spreadsheet
Tests
- Tests: Properly disable tests when data directory is missing - Brecht Van Lommel
- Tests: Adjust gtest filter to avoid skipping some Vulkan tests - Josh Belanich
- Tests: Overhaul Sculpt performance tests - Sean Kim
- Tests: Add Cycles test for RDNA1 Principled BSDF rendering issue - Alaska
-
Tests: Add tests for
object.voxel_remesh- Sean Kim - Tests: switch FBX import tests to use the new importer - Aras Pranckevicius
- Tests: Update tests hash for Geometry Nodes fix - Hans Goudey
- Tests: Add sculpt rebuild bvh performance tests - Sean Kim
- Tests: Add adaptive subdivision tests with problematic geometry features - Alaska
- Tests: Small adjustments to the principled_bsdf_bevel_emission test - Alaska
- Tests: New tests/data version to include boolean manifold test. - Howard Trickey
- Tests: Cycles: Remove OSL-specific displacement test after fix to match SVM - Lukas Stockner
Tools
- Tools: include STRNLEN macros in code_clean utility - Campbell Barton
- Tools: use arguments for suppressions where possible - Campbell Barton
UI
- UI: Use busyButClickableCursor for MacOS Wait Cursor - Harley Acheson
- UI: Status Bar Feedback at Corner Zone While Still - Harley Acheson
- UI: Curves and Grease Pencil dimensions in transform side panel - Pratik Borhade
- UI: Rename "Hide Collection" operator to "Hide Other Collections" - Eitan Traurig
- UI: Use Icon for Panel Header Grip - Harley Acheson
- UI: Allow Changing Editor Outline Width - Harley Acheson
- UI: resolve glitch where resetting the theme left the old name - Campbell Barton
- UI: Filter visible tabs in Properties Editor - Richard Antalik
- UI: Region Scaling Edge Highlighting - Harley Acheson
- UI: Do Not Full Hide Scroll Bars When Region Overlap - Harley Acheson
- UI: Do Not Open Neighboring Menu if Open One is Wide - Harley Acheson
- UI: Padding When Opening Menu When One is Already Open - Harley Acheson
- UI: FullScreen Remove Outline and Fix One Pixel Offset - Harley Acheson
- UI: Move "Active Spline" panel to viewport. - YimingWu
- UI: Theme: Increase scrollbars contrast in light theme - Jun Mizutani
- UI: Make auto-run scripts setting off by default - Pablo Vazquez
- UI: hide the "Geometry" panel when viewing the render result - Campbell Barton
- UI: Increase Gizmo 3D Part Hit Size For Pens - Harley Acheson
- UI: Include button type in button comparisons to preserve UI state - Julian Eisel
- UI: hide "Relative Path" in the file selector when it's not supported - Campbell Barton
- UI: various minor fixes/changes to file BUTTONS_OT_file_browse - Campbell Barton
- UI: Minimum Height for Timeline Marker Operations - Harley Acheson
- UI: Allow Using Mac Option, Command + Arrow Input Movement - Harley Acheson
- UI: Use Theme Color for Initial Window Background - Jonas Holzman
- UI: Decrease Tablet Drag Threshold With Pen Pressure - Harley Acheson
- UI: Consistent Pen Tilt Values - Harley Acheson
- UI: Geometry Nodes: Use viewport icon for viewer node - Habib Gahbiche
- UI: Improve default position of shader nodes - Habib Gahbiche
- UI: Compositor: use viewport icon to indicate active viewer - Habib Gahbiche
- UI: Remove Initial Win32 White Flash During Startup - Harley Acheson
- UI: Increase Contrast of Scroll Bar Thumb for Light Themes - Harley Acheson
- UI: Reverse Pen Y Tilt Expected Direction - Harley Acheson
- UI: Improve default position of shader nodes in startup file - Habib Gahbiche
- UI: Improve labels of asset browser parameters - Nika Kutsniashvili
- UI: File/Asset Browser: Improve positioning of labels and icons - Julian Eisel
- UI: Compositor: Activate viewer node when icon is clicked - Habib Gahbiche
- UI: Changes to Save Startup Dialog - Harley Acheson
- UI: Viewport Shading Modes Tooltips More Descriptive - Loïc 'Lauloque' Dautry
- UI: Theme: Update missing properties in Light theme - Pablo Vazquez
- UI: Theme: Fix inconsistencies in Light theme - Pablo Vazquez
- UI: Clarify Boolean solver descriptions/names and make consistent - Hans Goudey
- UI: Use two lines for Asset/File Browser file names under previews - Julian Eisel
- UI: Rename "Tris to Quads" to "Triangles to Quads" - Pablo Vazquez
- UI: Line Break on Conditional Punctuation - Harley Acheson
- UI: Path Line Breaking Characters - Harley Acheson
- UI: Remove Gizmo 3D Part Hit-space Scaling - Harley Acheson
- UI: Expose MOD_MESHSEQ_READ_ATTRIBUTES flag for Mesh Sequence Cache modifier - airyz
USD
- 🔸 USD: Animated camera property import - Jesse Yurkovich
Update Ceres to version 2.2.0
- Update Ceres to version 2.2.0 - Sergey Sharybin
VSE
- VSE: Fixing channel lock when a strip is duplicated from preview - Mukhesh
- 🔸 VSE: Slip Operator 2.0 - John Kiril Swenson
- 🔸 VSE: Blade Tool Cursor - John Kiril Swenson
- 🔸 VSE: Hide-Reveal strips operator in sequencer preview - Mukhesh
- 🔸 VSE: Make mirror operator work in VSE preview - Ramon Klauck
- 🔸 VSE: Change wording for one-time property reports - John Kiril Swenson
- 🔸 VSE: Keep zoom levels constant when resizing - John Kiril Swenson
Versioning
- Versioning: ensure render slot names are valid UTF8 - Campbell Barton
Vertex Paint
Viewport
- 🔸 Viewport: use "Show Extras" to control texture space & bounds - Campbell Barton
- 🔸 Viewport: Fix quadratic runtime for object box selection - Hans Goudey
Vulkan
- Vulkan: Partial revert of swap chain refactor. - Jeroen Bakker
- Vulkan: Optimize swapchain image selection - Jeroen Bakker
- Vulkan: Include Win32 extensions definitions - Jeroen Bakker
- Vulkan: Update unsupported features - Jeroen Bakker
- Vulkan: Show device selection in preferences - Jeroen Bakker
- Vulkan: Reduce memory overhead rendergraph - Jeroen Bakker
- Vulkan: Add dedicated memory bit to external memory pool - Jeroen Bakker
- Vulkan: Implement native handles for pixel buffers - Brecht Van Lommel
- Vulkan: Validation error when allocating large vertex buffers - Jeroen Bakker
- 🔸 Vulkan: Remove from experimental - Jeroen Bakker
Vulkan/OpenXR
- Vulkan/OpenXR: Add support for VK_KHR_external_memory_fd - Jeroen Bakker
- Vulkan/OpenXR: Support VK_KHR_external_memory_win32 - Jeroen Bakker
- Vulkan/OpenXR: Direct3D Bridge - Jeroen Bakker
WM
- WM: Pass tablet tilt data to paint cursor draw callback - Sean Kim
- WM: remove arbitrary path length limit for FS_CATEGORY_OTHER - Campbell Barton
- WM: warn when file selector properties don't match expected types - Campbell Barton
Weight Paint
Windows
- 🔸 Windows: show popup after crash - Germano Cavalcante
check_spelling
- check_spelling: allow variables with an 'th suffix (for indices) - Campbell Barton
- check_spelling: use language & token-type specific suppression - Campbell Barton
- check_spelling: enable checking text in single quotes for C/C++ - Campbell Barton
macOS
- macOS: Disable OpenMP when using Xcode 16.3 / LLVM 17 - Sergey Sharybin
- macOS: Default to modern linker on x64 - Johan Walles
pyGPU
-
pyGPU: Deprecate
Shader.programgetter - Clément Foucault
8 Comments
What can I say? I can only say that your work and Blender are great.
Hello Pablo, A few years ago there was a blog post where "Handling high-poly" through a separate editor was discussed is this still happening?
Large scenes with many high res instances often render fine during final frame but struggles in the viewport, as someone who used Clarisse in the past (now discontinued) it would be nice if blender could facilitate this type of lookdev in it's place. Although I understand that this is quite niche.
Link to blog post: code.blender.org/2021/06/asset-creation-pipeline-design/
Hello Pablo!
Is there any reason that Relative Shapekeys and Absolute shapekeys are mutually exclusive? You can use one or the other, which translates to automatically giving up on the later because the former is basically mandatory when working with Shapekeys.
Also, right click menus don't follow the OS convention of staying open no matter where the mouse is and same for the buttons that open menus.
Here are examples: (I promise it's not cornographic) files.catbox.moe/4qx5at.mp4 files.catbox.moe/bbwvai.mp4
Oi, Pablo! I just wanted to thank you for inspiring me to get into blender. my journey began when I first saw Sintel, and after a hiatus, I used it for VFX, and I was a total lurker on the dev channels for the better part of a decade, but blender today made the blender devs (starting with you) a lot more approachable! I still lurked there, too, till I found something I just couldn't live without fixing! It took a year, and still learning C++ for this, but I hope to keep contributing!
... maybe something a little more normal next!... possibly normal correction 2: reflection correction boogaloo
it turns out the normal correction flag actually triggers several unrelated visual changes, but gives no further control! It both fades the terminator and fakes the reflection ray angle to remove self-intersecting rays! fascinating! I want to expose control for which is used, and then give options for which algorithm to use!
Hello Pablo, I was compiling my render in VSE other day and when importing image sequence, it was not importing in order of frame number. It was weird. I looked up online and found out it imports by date modified rather than the number sequence it has. Shouldn't it respect the frame number rather than date modified?
It imports it the way it is sorted in the file browser. If you click on "name" it will import your sqeuence for example from image_001.exr to image_100.exr. But if you click "name" again it will reverse the order and import it from image_100.exr to image_001.exr
If yoiu sort by date or size it will import it accordingly, so you probably had it accidentially sorted by date or size.
Hola Pablo,
I would really like Nested Dielectrics in blender for more realistics glass and liquids. Lukas Stockner is working on it here:
projects.blender.org/blender/blender/pulls/118478
But from the Draft it looks like we have to wait for a MaterialX update until he implements it for blender?
My question is, for which blender version will this be a milestone for?
Gracias
Love it! Thanks for your work as always, Blender.