Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync blender master #4002

Merged
merged 442 commits into from
Dec 14, 2023
Merged

Sync blender master #4002

merged 442 commits into from
Dec 14, 2023
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Dec 8, 2023

  1. Configuration menu
    Copy the full SHA
    63432f0 View commit details
    Browse the repository at this point in the history
  2. Fix #115933: Assert with invalid time-stamp on X11 with XIM input

    Regression in [0] caused XIM generated key events to assert.
    
    [0]: efef709
    ideasman42 committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    eb7d5d0 View commit details
    Browse the repository at this point in the history
  3. Vulkan: Add Debug Name To Descriptor Sets

    When debugging the descriptor sets are unnamed. This PR sets the
    active shader name. This helps when debugging so we don't need
    to track down the shader it is complaining about.
    
    ```
     the descriptor (VkDescriptorSet 0x66da6f0000001c58[workbench_prepass_mesh_opaque_studio_texture_no_clip_1022]
    binding 7, index 0) is being used in draw but has never been updated via vkUpdateDescriptorSets() or a similar call.
    ```
    
    This message direct directly to the shader including what part is
    needed to be checked. No need to add break points and that sort
    of things.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115944
    jeroenbakker-atmind committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    f355575 View commit details
    Browse the repository at this point in the history
  4. CMake: Fix Compiling Shader Builder on macOS

    Due to changes in the build environment shader_builder wasn't able to
    compile on macOs. This patch reverts several recent changes to CMake files.
    
    * dbb2844
    * 94817f6
    * 1b6cd93
    
    The idea is that in the near future shader_builder will run on the buildbot as
    part of any regular build to ensure that changes to the CMake doesn't break
    shader_builder and we only detect it after a few days.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115929
    jeroenbakker-atmind committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    65e58fe View commit details
    Browse the repository at this point in the history
  5. Fix #115909: Walk Navigation Up and Down is interrupted by WASD

    Caused by 93f6001 , 1b3cfcc .
    Direction flag names was changed but the max value passed to `ENUM_OPERATORS`
    wasn't pointing to actual max value.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115926
    PratikBorhade302 authored and Pratik Borhade committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    b9cbc5b View commit details
    Browse the repository at this point in the history
  6. GPv3: Clean loose points operator

    Similar to the legacy operator. Removes strokes with a number of points less than or equal to the "limit" property.
    Resolves #113599.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115923
    PratikBorhade302 authored and falkdavid committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    2e5d4a8 View commit details
    Browse the repository at this point in the history
  7. Fix #40009: Win32 Use Message Time for Events not Current Time

    When creating Blender events in Win32 message processing we are using
    the current time as timestamp. This isn't set until we collect them, so
    this might be inaccurate at times of high load. This PR changes to using
    the time the message was delivered.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115872
    harley-acheson authored and Harley Acheson committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    0137e54 View commit details
    Browse the repository at this point in the history
  8. Cleanup: Sculpt explicitly retrieve mesh face visibility attribute

    Rather than relying on the pointers in `SculptSession` which should be
    removed eventually, to avoid redundant state storage.
    HansGoudey committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    83810e2 View commit details
    Browse the repository at this point in the history
  9. Cleanup: Move majority of sculpt paint module to C++ namespaces

    And improve naming to remove the inconsistent "SCULPT" prefix in
    many cases-- removing redundancy between the namespace name
    and the function name. The specific names might need to evolve a bit
    still, but it's much less annoying not having to type or read the
    namespace all the time. I left out some areas with unclear design.
    HansGoudey committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    e5814ab View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    956d00e View commit details
    Browse the repository at this point in the history
  11. Cleanup: Use consistent "mesh" variable name (replace "me")

    "mesh" reads much better than "me" since "me" is a different word.
    There's no reason to avoid using two more characters here. Replacing
    all of these at once is better than encountering it repeatedly and
    doing the same change bit by bit.
    HansGoudey committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    854cdd1 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    e0d95b9 View commit details
    Browse the repository at this point in the history
  13. Fix #100784: Truncate Text with Ellipsis inside Number Inputs

    When a property name is shown inside of a numerical input, truncate
    with ellipsis if it cannot fit.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115958
    harley-acheson authored and Harley Acheson committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    639272e View commit details
    Browse the repository at this point in the history
  14. Fix #114838: Force Full Redraw When Duplicating Areas

    Duplicating into a new window needs to tag the new area for full
    redraw. Otherwise Outliner will try a partial redraw while the
    tree is not yet built.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115959
    harley-acheson authored and Harley Acheson committed Dec 8, 2023
    Configuration menu
    Copy the full SHA
    f3c1111 View commit details
    Browse the repository at this point in the history

Commits on Dec 9, 2023

  1. Fix #115938: BLF Handle Negative Left-Side Bearings

    Our glyph bounds clipping test will fail for the first character of a
    string if that character has negative left-side bearing. This is not
    usual but can happen in some designs for lowercase "j" to have the tail
    hook under the preceding character.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115965
    harley-acheson authored and Harley Acheson committed Dec 9, 2023
    Configuration menu
    Copy the full SHA
    76bf43f View commit details
    Browse the repository at this point in the history
  2. Cleanup: Remove excessive use of optimized IndexMask functions

    These shouldn't be used when the lambda is non-trivial, it likely
    generates too much code and bloats the binary size for no
    observable performance gain in these cases.
    HansGoudey committed Dec 9, 2023
    Configuration menu
    Copy the full SHA
    7bfb7af View commit details
    Browse the repository at this point in the history
  3. Cleanup: Use simpler positions name in curves selection functions

    These functions don't have to know about things like geometry
    deformations. As far as they're concerned, they just use the positions
    from the argument span instead of the positions stored in the curves.
    HansGoudey committed Dec 9, 2023
    Configuration menu
    Copy the full SHA
    85012cc View commit details
    Browse the repository at this point in the history
  4. IO: Add initial support for File Handlers registration

    Adds initial support for File Handler registration with the python API
    for design task #68935. File Handlers will allow developers to associate
    additional UI behavior and capability to operators traditionally used
    only within the file browser.
    
    The initial commit should have no user visible changes, but will serve
    as the foundation for providing file drag & drop capabilities to
    operators that can manage files (#111242).
    
    See the PR for an example of python usage.
    See design task #68935 for remaining work to be explored in the future.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/112466
    Guillermo Venegas authored and Jesse Yurkovich committed Dec 9, 2023
    Configuration menu
    Copy the full SHA
    7c5fa8b View commit details
    Browse the repository at this point in the history
  5. BMesh: Optimize copying attributes from many elements at once

    Fixes #115776
    
    Create a minimal structure that contains the instructions necessary to
    copy from one custom data format to another. This structure is similar
    to the one used in dfacaf4. It should have been used in
    9175d9b, which instead introduced quadratic performance
    relative to the number of layers when copying every element.
    
    In this commit, copying the entire mesh and adding new custom data
    are explicitly changed to use the new map to speed up copying many
    elements at a time.
    
    The non-map attribute copy functions are also changed to check for when
    the source and result BMeshes are the same. In that case it's much
    faster to call the "same format" function from 9175d9b.
    
    For numbers, the timings are arbitrarily influenced by how many layers
    I add in my testing. With 50 or so layers, a 10x difference is easily
    observable though.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115824
    HansGoudey authored and Hans Goudey committed Dec 9, 2023
    Configuration menu
    Copy the full SHA
    0b1049b View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    2c85561 View commit details
    Browse the repository at this point in the history
  7. BMesh: optimize attribute copying by reusing BMCustomDataCopyMap

    Continuation of fix for #115776. Removes attribute copy functions
    that calculate the map inline, this is error prone as it's easy to
    call these functions from a loop which may result in poor performance.
    ideasman42 committed Dec 9, 2023
    Configuration menu
    Copy the full SHA
    15cff1f View commit details
    Browse the repository at this point in the history
  8. Fix (unreported): Set Color Tag broken when inside meta strip

    When editing inside a meta strip, running the "Set Color Tag" operator
    would set the color tag of the top-most meta strip, rather than that of
    the intended strip.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115950
    ok_what authored and Richard Antalik committed Dec 9, 2023
    Configuration menu
    Copy the full SHA
    5e07e9f View commit details
    Browse the repository at this point in the history
  9. Fix #114951: Waveform drawn incorrectly in strips with hold offset

    Caused by not applying the offset to start frame calculation.
    Also fixes reverse offsetting of waveform when start offset was
    negative - content start frame was used instead of handle frame.
    RichardAntalik committed Dec 9, 2023
    Configuration menu
    Copy the full SHA
    b5ce6b6 View commit details
    Browse the repository at this point in the history
  10. Cleanup: VSE waveform drawing variables

    Code had variables `frame_start` and `start_frame` for different purpose
    confusing. Variables were sorted and math simplified.
    
    Fixes broken waveform to pixel grid alignment.
    RichardAntalik committed Dec 9, 2023
    Configuration menu
    Copy the full SHA
    79dff81 View commit details
    Browse the repository at this point in the history

Commits on Dec 10, 2023

  1. Configuration menu
    Copy the full SHA
    dd9eeca View commit details
    Browse the repository at this point in the history
  2. GHOST/Wayland: correct fix for #106040

    The previous fix for #106040 worked with GNOME, it relied on
    matching GNOME's internal limits - which isn't fool proof
    and could fail in the future.
    
    Resolve by adding a `read` wrapper that reads the requested number of
    bytes (when available).
    ideasman42 committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    3069d59 View commit details
    Browse the repository at this point in the history
  3. Cleanup: make read_file_as_buffer into a generic utility function

    Also use a (void *) data argument, matching `read(..)`.
    ideasman42 committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    5d5fd5d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    af4160d View commit details
    Browse the repository at this point in the history
  5. Cleanup: minor changes to read_file_as_buffer logic

    Assign the `chunk_first` once instead of checking & assigning
    each iteration.
    ideasman42 committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    3c7b753 View commit details
    Browse the repository at this point in the history
  6. Cleanup: replace WM_cursor_set with WM_cursor_wait for image copy/paste

    WM_cursor_wait is more common and doesn't assume the current cursor
    is WM_CURSOR_DEFAULT.
    ideasman42 committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    7ee8de9 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    6afad4b View commit details
    Browse the repository at this point in the history
  8. PyAPI: micro optimization accessing keyword arguments for bpy functions

    Check the string length before comparing with memcmp,
    gives 20-30% speedup for the lookup function.
    ideasman42 committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    49c6e4e View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    ded3692 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    21525b4 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    21fbd9d View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    ff47eb3 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    52a7555 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    64c4b34 View commit details
    Browse the repository at this point in the history
  15. Cleanup: avoid pass-by-value on vector argument for ContextVK

    Also use const arguments & values.
    ideasman42 committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    cbf1eac View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    f02ebe7 View commit details
    Browse the repository at this point in the history
  17. Fix "project_source_info" use with clang

    Simple string replacement failed when one compiler was the exact
    prefix of another (`clang` & `clang++` in this case),
    resolve by performing string replacement on the list items.
    ideasman42 committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    0e64c95 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    ffc84da View commit details
    Browse the repository at this point in the history
  19. Cleanup: pass BMesh by pointer instead of reference

    The version of BM_elem_attrs_copy that took a map used a reference
    the version without a map didn't, which is fairly confusing.
    
    Pass by pointer now unless this is part of a wider refactor
    to move to references everywhere.
    ideasman42 committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    22d65ba View commit details
    Browse the repository at this point in the history
  20. Fix #115937: Context override fails to restore screen

    The recent addition screen override [0] failed to account for the
    override windows screen being overridden when restoring the context.
    
    When overriding the window and screen, it's incorrect to use the
    original contexts screen when restoring the screen of the overriding
    window.
    
    This window's screen may not be in the original context or the
    overriding screen. Resolve the bug by storing this separately
    and use it when restoring the context.
    
    [0]: 6af92e1
    ideasman42 committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    12c4d22 View commit details
    Browse the repository at this point in the history
  21. Cycles: update OSL to work with version 1.13.5

    This keeps compatibility with older stable versions, but not
    older unreleased versions in the 1.13.x series.
    
    Ref #113157
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116004
    brechtvl authored and Brecht Van Lommel committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    798a0b3 View commit details
    Browse the repository at this point in the history
  22. Cycles: update to work with OpenVDB 11

    Ref #113157
    brechtvl committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    bbb7e7a View commit details
    Browse the repository at this point in the history
  23. Refactor: replace NanoVDB SampleFromVoxels by own code

    This makes the GPU tricubic implementation more efficient. The dense
    grid code implemented this in terms of trilinear lookups that are
    hardware accelerated, but for NanoVDB this just causes unnecessary voxel
    reads. Instead match the CPU code.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115992
    brechtvl committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    8ba474d View commit details
    Browse the repository at this point in the history
  24. Refactor: replace NanoVDB kernel side implementation by own code

    The NanoVDB headers are not compatible with Metal due to missing address
    space qualifiers. We currently have a big patch for NanoVDB header
    files, which is difficult to update for OpenVDB 11. Instead extract a
    few hundred lines of code from NanoVDB to do just what we need.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115992
    brechtvl committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    6cdb431 View commit details
    Browse the repository at this point in the history
  25. Fix #115288: EEVEE-Next: Horizon Scan light leaking

    This was caused by the normal test being wrong and
    not taken into account at all.
    Clément Foucault committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    91fd6b1 View commit details
    Browse the repository at this point in the history
  26. EEVEE-Next: Refactor Raytracing pipeline

    This de-duplicate some passes in the raytracing
    pipeline and make it more ready for adoption
    of arbitrary closure evaluation. This last part
    means the removal of some per closure type
    options.
    
    The put in common the tile classification step
    that is now done only once for all 3 closure
    type. Also add some speedup to the tile
    compaction phase that is now only twice
    faster.
    
    The horizon-scan setup was also de-duplicated
    and run only if needed, which can save up to
    0.5ms is complex scenes.
    
    However, this moves the max-roughness and and
    resolution scaling to a common parameter.
    This is to be able to support arbitrary closure
    evaluation where multiple closure with conflicting
    parameters could be evaluated in one tracing pass.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116009
    Clément Foucault authored and Clément Foucault committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    ae70d25 View commit details
    Browse the repository at this point in the history
  27. Fix #115979: Object bounds display type doubled size

    The "size" of a bounding box that used to be calculated by
    `BKE_boundbox_calc_size_aabb` was actually the dimensions
    divided by two.
    HansGoudey committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    4eee57f View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    edb7656 View commit details
    Browse the repository at this point in the history
  29. Metal: Add support for attachment-less framebuffer

    Authored by Apple: Michael Parkin-White
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115296
    Jason Fielder authored and Clément Foucault committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    6ebe196 View commit details
    Browse the repository at this point in the history
  30. UI: fix and improve a few messages

    - "Frame Step" -> "Number of frames to skip forward while baking each
      frame": expand description which was just copying the prop name.
    - "b-bone" -> "B-Bone": title case.
    - "Volumes Lighting" -> "Volume Lighting": typo.
    - "Volumes Shadows" -> "Volume Shadows": typo.
    - "Insert Blank Keyframe (All Layer)" -> "(All Layers)": typo.
    - "the an" -> "an", typo.
    - "Inverse" -> "Invert": use verb instead of noun for an action.
    - "Desination" -> "Destination": typo.
    - "Hides all other F-Curves other than the ones being framed": remove
      extra "other".
    - "Remove Bone from Bone collections" -> "Collection", singular because
      the operator is only applied to the active collection. Also title
      case on "Collection".
    - "Change Stroke material with selected material" -> "Assign the
      active material slot to the selected strokes": rephrase by reusing
      the message from the non-Grease Pencil materials.
    - "VisAction", "VisArea" -> "Visibility Action", "Visibility Area":
      expand abbreviation. This is not exposed in the UI right now but
      will show up in the API docs.
    - "Stop Mode Right / Global Down" -> "Stop Move" (typo).
    - "... for node input  %s": remove extra space.
    - "Move along their normal" -> "Move shadows along their normal":
      rephrase unclear sentence.
    - "Stat Vis" -> "Mesh Analysis": stands for "Statistical
      visualization"? Unclear and not shown anywhere. Reuse the label
      specified in the UI code instead.
    - " Output data...": remove leading space.
    - "Attribute domain for the selection and group id inputs": title case
      on "Selection" and "Group ID" as that is how they appear in the UI.
    - "Ior" -> "IOR": uppercase acronym, for consistency.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115964
    PiOverFour authored and Hans Goudey committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    6d70e9b View commit details
    Browse the repository at this point in the history
  31. Fix: Typo in recent commit to BMesh copy function

    Mistake in 0b1049b used the vertex map for edges.
    Thanks to Philipp for pointing this out.
    HansGoudey committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    fb5d03b View commit details
    Browse the repository at this point in the history

Commits on Dec 11, 2023

  1. GPU: Shader Builder Filter

    This PR introduced some filters to improve the workflow when using
    shader_builder. Shader builder is used to validate shader compilation
    during buildtime and can be enabled using `WITH_GPU_BUILDTIME_SHADER_BUILDER`.
    
    During backend development shader builder is also handy as you can
    pin-point it to the shader/backend you're focusing on. Without filters
    you would insert temporary code to break on a specific shader.
    
    * `--gpu-backend` can be used to only check a specific backend.
      possible values are `vulkan`, `metal` or `opengl`. When argument
      isn't passed, all backends will be validated.
    * `--gpu-shader-filter` can be used to only check a subset or indivisual
      shader. The filter is a name starts with filter. Use
      `--gpu-shader-filter eevee` to validate all eevee shaders
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115888
    jeroenbakker-atmind committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    1b99987 View commit details
    Browse the repository at this point in the history
  2. Cleanup: rename bArmature.collections -> bArmature.collections_legacy

    And leave a TODO to remove it entirely in Blender 5.0.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115931
    cessen authored and Nathan Vegdahl committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    089383a View commit details
    Browse the repository at this point in the history
  3. Fix: update collada export code to use the new bone collections array

    I missed this in the previous commit, which broke building Blender.
    cessen committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    274dc81 View commit details
    Browse the repository at this point in the history
  4. Compositor: Use full precision inputs for GPU compositor

    Store render pass cache using full precision since some passes will only
    make sense in full precision, like Cryptomatte and Z Depth.
    OmarEmaraDev committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    eabe386 View commit details
    Browse the repository at this point in the history
  5. I18N: Enable Belarusian language in UI translations.

    Bastien Montagne committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    5179e1e View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    750bc5c View commit details
    Browse the repository at this point in the history
  7. Fix: Assert When Using Shader Builder

    Depending on the compiler shader builder could assert due to an
    uninitialized attribute. This PR initializes the attribute.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116034
    jeroenbakker-atmind committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    01eade9 View commit details
    Browse the repository at this point in the history
  8. Cleanup: Move opensubdiv C-API headers to C++

    All the relevant code is C++ now, so we don't need to complicate things
    with the trip through C anymore. We will still need some wrappers, since
    opensubdiv is an optional dependency though. The goal is to make it
    simpler to remove the unnecessary/costly abstraction levels between
    Blender mesh data and the opensubdiv code.
    HansGoudey committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    8157f33 View commit details
    Browse the repository at this point in the history
  9. Cleanup: GPv3: render engine

    Falk David committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    aa40e9b View commit details
    Browse the repository at this point in the history
  10. Build: remove Cycles build options to disable RTTI

    This was required for OSL, which used to be compiled entirely without
    RTTI for LLVM. However OSL now only compiles a private part of its code
    without RTTI, so this no longer necessary.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116035
    brechtvl authored and Brecht Van Lommel committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    f9d69da View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    cf1505d View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    25e74f0 View commit details
    Browse the repository at this point in the history
  13. Cleanup: EEVEE-Next: Add pipeline defines

    Clément Foucault committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    809365d View commit details
    Browse the repository at this point in the history
  14. EEVEE-Next: More work into supporting horizon scan in AO node

    This is only part of making inverted scan work.
    There are still issues with background not being
    considered outside objects.
    Clément Foucault committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    4ed9b4f View commit details
    Browse the repository at this point in the history
  15. EEVEE-Next: Make AO node respect the normal input

    Clément Foucault committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    bac94fe View commit details
    Browse the repository at this point in the history
  16. Vulkan: Generate Correct GLSL After Changing Workarounds

    During normal execution it isn't possible to switch workarounds.
    However when running test cases we want to check if shaders and
    other tests work when work arounds are enabled. Currently shader
    patches are cached globally.
    
    This PR moves the cached shader patch to the device level which
    is rebuild every time a device needs to be reinitialized.
    
    For OpenGL this is also an issue, but harder to solve as the concept
    device doesn't exist there.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116042
    jeroenbakker-atmind committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    fa2f9ef View commit details
    Browse the repository at this point in the history
  17. Fix: EEVEE-Next: ObjectKey

    memset is not guaranteed to clear padding bytes,
    which breaks the use of memcmp for comparison.
    pragma37 committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    b484018 View commit details
    Browse the repository at this point in the history
  18. EEVEE-Next: Make Hi-Z buffer swap on set_source

    This fixes a case where the source was set but the
    internal pointers for binding were not updated.
    
    This also tag for update internally.
    
    Cleanup and remove the redundant tagging.
    
    This also use the planar depth buffer as layer view.
    Clément Foucault committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    a32b4ec View commit details
    Browse the repository at this point in the history
  19. Fix: EEVEE-Next: Crash when using Planar Probe

    This was caused by missing cryptomatte and
    depth buffer input for shadow tagging.
    Clément Foucault committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    85f9758 View commit details
    Browse the repository at this point in the history
  20. Fix: EEVEE-Next: Planar Probe rendering broken

    Was caused by several small mistakes.
    Clément Foucault committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    3df81b0 View commit details
    Browse the repository at this point in the history
  21. Fix: EEVEE-Next: Broken HiZ for planar probe

    This was caused by missing resources.
    Clément Foucault committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    5fa44c0 View commit details
    Browse the repository at this point in the history
  22. Fix: EEVEE-Next: Undefined behavior with only diffuse material

    Diffuse materials still needs the feedback buffer for correct
    horizon scan.
    Clément Foucault committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    4c14557 View commit details
    Browse the repository at this point in the history
  23. Realtime Compositor: Cache bokeh kernel image

    This patch creates a static cached resource from bokeh kernel images,
    for better performance and reusability, since it will be used by the
    Defocus node as well.
    OmarEmaraDev committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    bcea221 View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    6bc3445 View commit details
    Browse the repository at this point in the history
  25. Fix #115994: Crashes with edit mode tools using custom data correction

    Caused by 15cff1f reversing source and result arguments.
    HansGoudey committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    eefe19a View commit details
    Browse the repository at this point in the history
  26. Fix: EEVEE-Next: Broken Shadow usage tagging

    Broken after recent changes.
    
    Caused by 85f9758
    Clément Foucault committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    3313e99 View commit details
    Browse the repository at this point in the history
  27. Curves: Support for edit mode draw tool

    Adds new curves support to "Draw Curve" operator. This is a direct copy
    and replace of the old code to the new editors directly, with a change to
    create the new data structure instead of the old one. There is no attempt
    at code deduplication, since that would complicate removing the old
    curve type when it comes time.
    
    To replace the "2D curve" option a new operator property is added
    for projecting to the Z=0 plane.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115864
    lduburas authored and Hans Goudey committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    feae0b4 View commit details
    Browse the repository at this point in the history
  28. Fix: EEVEE-Next: Film matrix

    Fixes motion vectors for static geometry.
    Regression from beee7db.
    pragma37 committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    73a5826 View commit details
    Browse the repository at this point in the history
  29. Fix: EEVEE-Next: Missing indirect light in ShaderToRGBA

    Silly mistake. The lighting was not added to the right
    variable.
    Clément Foucault committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    8ab23ea View commit details
    Browse the repository at this point in the history
  30. EEVEE-Next: Support ShaderToRGBA on Dithered materials

    This adds a new hybrid mode where the light and lightprobe
    textures are bound to the gbuffer pass and used by
    shaders that use ShaderToRGBA.
    
    The counterpart is that these shaders have less texture
    slots available but still two more than the Blended
    materials.
    
    These materials will correctly write to the AOVs and
    render passes.
    
    This is not too invasive in terms of implementation. The
    only quirk was that we needed another fragment shader to
    simplify the dependencies on the resources. But if we ever
    get pre-processor support in our include / require system
    this could be cleaned up.
    Clément Foucault committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    fe2a7f4 View commit details
    Browse the repository at this point in the history
  31. Fix #115086: Retimed hard split sound strip does not seek correctly

    Content cut off by `anim_startofs` is as if it does not exist for
    sequencer. But Audaspace seeking relies on having animation buffer
    initialized for whole sequence. Initialize pitch of cut content to 1.
    RichardAntalik committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    4e10aa6 View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    d8497e4 View commit details
    Browse the repository at this point in the history
  33. GPv3: Avoid creating cyclic attribute when unnecessary in duplicate o…

    …perator
    
    None of the final curves will be cyclic if none of the original curves were cyclic.
    HansGoudey committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    99f6f13 View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    a416677 View commit details
    Browse the repository at this point in the history
  35. Configuration menu
    Copy the full SHA
    6dad7af View commit details
    Browse the repository at this point in the history
  36. GPv3: Specialize duplicate function for curve selection domain

    The logic can be much simpler when curves are selected rather than points,
    because then we just copy all of the points in each curve. Like some other
    operators, implement both cases.
    HansGoudey committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    7dc6a6b View commit details
    Browse the repository at this point in the history
  37. Curves: Add edit mode duplicate operator

    Reuse the grease pencil implementation added in:
    - fb275bc
    - 5799a26568819ce27e8c12df96b7ffba84cc00f9
    HansGoudey committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    9af176b View commit details
    Browse the repository at this point in the history
  38. Configuration menu
    Copy the full SHA
    dcf9d74 View commit details
    Browse the repository at this point in the history
  39. Cleanup: Make format

    HansGoudey committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    c02784b View commit details
    Browse the repository at this point in the history
  40. Cleanup: Use C++ Vector in transform translate

    Germano Cavalcante committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    1bcf393 View commit details
    Browse the repository at this point in the history
  41. Fix #116058: 'Align Rotation to Target' does not consider object orie…

    …ntation
    
    Similar to #49494, but here we need to consider orientation instead of
    position.
    Germano Cavalcante committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    3612e0e View commit details
    Browse the repository at this point in the history
  42. Fix: EEVEE-Next: Opaque dielectric packing broken

    Clément Foucault committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    cf4558d View commit details
    Browse the repository at this point in the history
  43. Metal: Add fallback path for texture atomics V2

    This patch adds an alternative path for devices/OSs
    which do not support native texture atomics in Metal.
    Support is encapsulated within the backend, ensuring
    any allocated texture with the USAGE_ATOMIC flag is
    allocated with a backing buffer, upon which atomic
    operations happen.
    
    The shader generation is also changed for the atomic
    case, which instructs the backend to insert additional
    buffer bind-points for the buffer resource. As Metal
    also only supports buffer-backed textures for
    textureBuffers or 2D textures, TextureArrays and
    3D textures are emulated within a 2D texture, with
    sample locations being indirected.
    
    All usage of atomic textures MUST now utilise the
    correct atomic texture types in the high level shader
    and GPUShaderCreateInfo declarations.
    
    Authored by Apple: Michael Parkin-White
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115956
    Jason Fielder authored and Clément Foucault committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    9313750 View commit details
    Browse the repository at this point in the history
  44. Cleanup: Improve mesh MLoopTri struct comment

    Update code examples to current C++ style. Change formatting
    slightly to use more columns. Rewrite secions to be more explicit
    and precise. Avoid cryptic / uncommon code in examples. Finding
    real edges in particular is never inlined, we just use the function
    for it.
    HansGoudey committed Dec 11, 2023
    Configuration menu
    Copy the full SHA
    249c8b0 View commit details
    Browse the repository at this point in the history

Commits on Dec 12, 2023

  1. Cleanup: compiler warnings

    ideasman42 committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    d93a594 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    77204be View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    dc2d7a4 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    6e3d1be View commit details
    Browse the repository at this point in the history
  5. Cleanup: rename GHOST event processing arguments

    Rename `evt` to `ghost_event` since it's too similar to `event`
    (used for generated `wmEvent` structs).
    ideasman42 committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    7f64bf4 View commit details
    Browse the repository at this point in the history
  6. WM: warn about suspicious event time-stamps in debug builds

    Report suspicious time-stamps as they could cause bugs which are
    difficult to troubleshoot.
    Currently the time-stamps are only used for double-click detection but
    we may want to use them in the future, so ensure they're valid.
    
    Print an error when two events are handled in the last second and the
    current event has a time-stamp 5 seconds before or after the current
    time.
    ideasman42 committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    857714c View commit details
    Browse the repository at this point in the history
  7. Windows: Remove workaround for ARM64/WSL Mesa drivers

    This reverts #110582 - the workaround is no longer needed, as MS have updated
    the version of mesa they ship as part of their compatibility pack, which contains
    a workaround on that side instead.
    
    This means that the supported version of OpenGL based on the host GPU is now
    correct, bar `GL_ARB_texture_view`.
    
    `GL_ARB_texture_view` is faked for ARM64 devices, as the part that is not
    implemented (channel casting) is not used in blender.
    
    This means that ARM64 devices (at least) now report compatibility up to OpenGL
    4.6 in the system info export.
    
    See: https://gitlab.freedesktop.org/mesa/mesa/-/commit/698344b93c49a9f3a257a0ef4546edf5cd3a9130
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116052
    anthony-linaro authored and jeroenbakker-atmind committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    3b2ed40 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    f66ad2d View commit details
    Browse the repository at this point in the history
  9. Anim: reorder "View in Graph Editor" buttons in the context menu

    In the property context menu, the operator to View in Graph Editor can
    apply to a single value or all values of a vector property.
    
    Currently, these two options are presented in this order (Single, then
    All), while all other operators (replace, delete, clear, add to keying
    set, reset, copy to selected) follow the opposite order (All, then
    Single).
    
    This commit inverts this order for consistency's sake.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115962
    PiOverFour authored and Christoph Lendenfeld committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    6428f23 View commit details
    Browse the repository at this point in the history
  10. Fix: Debug assert in file_handler_test

    The debug assert condition was inverted.
    
    It is expected that we do not find a `FileHandlerType` with the given
    `idname` during add. Like Operators being added twice from c code, this
    will now assert if one is actually found. Python duplicates are handled
    through `register_class` already.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116084
    jessey-git authored and Jesse Yurkovich committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    1db8035 View commit details
    Browse the repository at this point in the history
  11. Fix #116075: OpenGL Shader Compilation On Selected Platforms

    Due to recent changes a cached patch string in GLShader grew out of
    its bounds. This resulted in incorrect shader generation on selected
    platforms (Reported was Windows/NVIDIA). The patch string can differ
    based on the features that the GPU supports.
    
    This PR replaces the old C-style string generation with CPP-style
    string stream, making sure that the allocated memory grows with the
    size of the string.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116085
    jeroenbakker-atmind committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    f926931 View commit details
    Browse the repository at this point in the history
  12. Fix #116037: Corner Pin mask retains original alpha

    The Corner Pin mask output retains the original alpha of the input
    image, while it should be a binary mask. This also affects the Plane
    Deform node.
    OmarEmaraDev committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    a694831 View commit details
    Browse the repository at this point in the history
  13. Metal: Enable Shader Validation on Buildbot

    This PR enables shader validation testing on buildbot for Metal.
    
    OpenGL isn't enabled as OpenGL requires an actual driver and GPU
    attached to the build bot infrastructure. Also the OpenGL backend
    caches data (glsl_patch) globally and requires a restart in order to
    create the correct one.
    
    Vulkan isn't enabled as it requires some changes:
    * For windows it requires to install more recent vulkan software versions as
      part of the buildbot windows configuration
    * For Linux it requires to start a GHOST System without any X11/Wayland
      This currently fails on the buildbot. We should check if we can use
      `GHOST_SystemHeadless` with `GHOST_ContextVK`
    
    Each shaders are compiled twice. Once based on the
    actual features of the installed GPU/backend. And once with all
    the work-arounds enabled, simulating a platform close to the
    minimum requirements of Blender.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116040
    jeroenbakker-atmind committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    efc1094 View commit details
    Browse the repository at this point in the history
  14. BLI: destruct non-trivial types after using remove_if

    `Vector::remove_if` allows certain elements to be removed based on a predicate.
    However `std::remove_if` only shifts the elements that will not be deleted
    to the beginning of the container and then `Vector::remove_if` only
    updates the pointer to the new last element after using `std::remove_if`.
    This works well if `Vector` is used with trivial types that don't have a destructor.
    
    Having a `Vector<std::unique_ptr>` for example, can generate undefined behavior
    if the predicate gives `true` to elements that are contiguous at the end, if
    `Vector::remove_if` only updates the end pointer in these specific cases, these
    makes these smart pointers useless because  they will not be freed by themselves.
    
    To prevent that, also destruct the elements being removed.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115914
    Guillermo Venegas authored and JacquesLucke committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    e23b8ee View commit details
    Browse the repository at this point in the history
  15. Cleanup: correct & improve MLoopTri struct comment

    Own previous cleanup had a grammar error and could be worded better.
    
    Co-authored-by: Hans Goudey <hans@blender.org>
    ideasman42 and HansGoudey committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    598a480 View commit details
    Browse the repository at this point in the history
  16. Fix #116024: Face set unhide crash for masked type

    This is due to accessing value from empty mask attribute array.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116028
    PratikBorhade302 authored and Pratik Borhade committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    f70e9cf View commit details
    Browse the repository at this point in the history
  17. Fix #116000: Face set toggle visibility not working correctly

    Toggle visibility is hiding active face sets instead of isoloating it.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116026
    PratikBorhade302 authored and Pratik Borhade committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    16705f0 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    d015e98 View commit details
    Browse the repository at this point in the history
  19. Cleanup: compiler warning

    brechtvl committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    a43f847 View commit details
    Browse the repository at this point in the history
  20. Fix #113728: fireflies in Principled Hair Huang with MIS

    The function `has_surface_transparent()` needs to be implemented in
    order for hair with elliptical cross-sections to work correctly with MIS.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116088
    Weizhen Huang authored and Brecht Van Lommel committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    858349d View commit details
    Browse the repository at this point in the history
  21. Fix #92621: foreach_get/set doesn't work for enum

    There were two issues at play here.
    
    The first is that only enum properties with raw array access were
    supported.
    
    The second is that if the item property pointer was found immediately,
    `rna_raw_access` could fall back to the slower loop without checking if
    the property was an enum property, which the slower loop did not
    support. This would cause the code to go through the entire slower loop
    without doing anything. In the case of `foreach_get` without a
    compatible buffer, this meant that the temporary, uninitialized array
    (which was supposed to be set by `rna_raw_access`) would be converted to
    Python integers, causing garbage values to be retrieved by
    `foreach_get`, since they were created from uninitialized memory.
    
    This patch adds support for enum properties that are not arrays and adds
    asserts if an enum array property is encountered because they do not
    exist.
    
    Additional unreachable asserts have been added to the default case of
    each switch block within the slower loop because there are prior checks
    that the property type is supported, so the switch blocks should never
    get an unsupported property type.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115508
    Mysteryem authored and Brecht Van Lommel committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    e503536 View commit details
    Browse the repository at this point in the history
  22. GPU: Remove the Word OpenGL from Build Scripts

    The build scripts are still referring to gpu tests as being opengl.
    Although they can also use Metal or Vulkan. This PR only replaces
    the work `opengl` with `gpu` for build options.
    
    Special note is that the windows argument `with_opengl_tests` is
    also replaced with `with_gpu_tests` for consistency.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116030
    jeroenbakker-atmind committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    c110045 View commit details
    Browse the repository at this point in the history
  23. Refactor: Remove dependencies on Editor code from animrig

    No functional changes.
    
    This moves the function `update_autoflags_fcurve_direct`
    from the editors/animation section to blender/animrig.
    This is in an effort to remove the need for editor code in animrig.
    
    Also removes the include of editor code from fcurve.cc
    This was only used on a single line for a macro.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116100
    Christoph Lendenfeld authored and Christoph Lendenfeld committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    fd3629b View commit details
    Browse the repository at this point in the history
  24. Cleanup: Use loops instead of PBVH iter macro in sculpt undo

    With the goal of finding/using different abstractions that are more
    aligned with the data structures.
    HansGoudey committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    36097b7 View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    36d5443 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    ba6c07f View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    93a3423 View commit details
    Browse the repository at this point in the history
  28. Cleanup: Remove unnecessary PBVH function

    This is only used internally. Externally, it's simpler to fetch the spans instead.
    HansGoudey committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    0ad6576 View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    d7b2141 View commit details
    Browse the repository at this point in the history
  30. Fix #116022: Binary PLY import fails if first data byte is 0x0A or 0x0D

    Now instead of trying to potentially handle unlimited amount of
    newlines (which might be actual data in a binary file), only
    explicitly handle either LF or CRLF line endings. Fixes #116022.
    
    Will add test coverage in a followup commit, for easier backporting
    of just the fix if needed.
    aras-p committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    460439a View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    a0640ce View commit details
    Browse the repository at this point in the history
  32. Build: Linux: patch ocloc to store binaries per-generation

    When storing multiple binaries in a fatbinary, ocloc stores Intel
    Graphics binaries for specific devices and these don't get found when
    the device doesn't match fully.
    
    Blender compiles one binary per generation rather than per device, to
    gain space and compile time.
    
    We introduce a patch at ocloc level to work around this behavior that
    otherwise leads to binaries not being found and recompilation being
    attempted.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115750
    ph0b authored and Brecht Van Lommel committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    9d5164d View commit details
    Browse the repository at this point in the history
  33. IO: Add support for multiple drag-n-drop files

    There are operators in Blender that allow the user to import multiple
    files at the same time, however this functionality is only implemented
    when importing with blender's file browser, drag and drop files only
    takes first selected file.
    
    The patch adds support for drag and drop multiple files.
    
    Notes:
    * The files are filtered according to the extension of the first
      selected file.
    * Not all operators that import files support importing multiple files,
      so they will still import one.
    * Changes must be made to allow importers to read all file paths.
    
    This will be used in upcoming drag & drop import.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/107230
    Guillermo Venegas authored and Brecht Van Lommel committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    c00c8b1 View commit details
    Browse the repository at this point in the history
  34. Geometry Nodes: Change Instance Rotation node to use rotation socket

    See #92967. Since the versioning is idempotent, I just moved it to the
    latest subversion bump again.
    HansGoudey committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    a6838c8 View commit details
    Browse the repository at this point in the history
  35. Fix: Mesh draw normals extraction ignores sharp_edge with no sharp_face

    See c4446d7
    
    When the "fully flat" state comes from "sharp_edge" and "sharp_face"
    doesn't exist, we need to check for that for every face when extracting
    normals. Eventually these loops should be unrolled so we don't have a
    function call per face. That would remove the cost of this check.
    HansGoudey committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    5875349 View commit details
    Browse the repository at this point in the history
  36. Configuration menu
    Copy the full SHA
    86953df View commit details
    Browse the repository at this point in the history
  37. Geometry Nodes: Add Active Camera input node

    This adds a new "Active Camera" input geometry node, per #105761.
    
    The node outputs the the scene's current active camera. It is available
    from Input > Scene > Active Camera in the geometry nodes Add menu.
    
    Typical usage would be to connect this node to an Object Info node to
    obtain its transform. This works as expected when the camera's
    transform is animated, and also when there are markers on the timeline
    that change the active camera.
    
    In order to support the aforementioned changes in the active camera,
    this implementation adds depsgraph relations for all cameras referenced
    by timeline markers. This eliminates the complexity of updating the
    depsgraph whenever the scene switches to a different active camera,
    but of course it comes at the cost of including more objects than
    strictly necessary in the depsgraph for scenes that switch cameras.
    Dynamically updating the depsgraph upon camera changes could be a
    future improvement if there proves to be sufficient need for it.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/113431
    douglyuckling authored and Hans Goudey committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    75f160e View commit details
    Browse the repository at this point in the history
  38. Depsgraph: avoid unnecessary image updates, for compositor caching

    For non-COW datablocks like images, there is no need to update when
    they just got added to the depsgraph and there is no flag indicating
    a specific change that was made to them. Avoiding this helps preserve
    the cached image draw data used by the compositor.
    
    Co-authored-by: Sergey Sharybin <sergey@blender.org>
    
    Ref #115511
    brechtvl committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    cd61a14 View commit details
    Browse the repository at this point in the history
  39. Fix: Out of bounds array access building PBVH for empty BMesh

    Use Span and Array to catch this sort of mistake faster.
    HansGoudey committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    7aee812 View commit details
    Browse the repository at this point in the history
  40. Fix #115326: Memory leak toggling dyntopo on and off with empty mesh

    The custom data layers (the format) wasn't freed if there were no
    geometry elements. But it's fine to call the custom data free functions
    with a size of 0.
    HansGoudey committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    a7e8d8c View commit details
    Browse the repository at this point in the history
  41. Configuration menu
    Copy the full SHA
    b86d656 View commit details
    Browse the repository at this point in the history
  42. Configuration menu
    Copy the full SHA
    2246582 View commit details
    Browse the repository at this point in the history
  43. Cleanup: move internal Wayland cursor API's into their own doxy section

    Also resolve building when USE_EVENT_BACKGROUND_THREAD is disabled.
    ideasman42 committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    46a9530 View commit details
    Browse the repository at this point in the history
  44. Fix #115878: build error with LIBDECOR & WITH_GHOST_WAYLAND_DYNLOAD=OFF

    There were two problems here:
    
    - libdecor_frame_get_content_* is not available in LIBDECOR v0.1.0.
    - These functions aren't exposed by <libdecor.h>,
      they're only exposed by `libdecor-plugin.h`
      (intended for plug-ins that implement window decorations).
    
    Resolve by storing the last applied size from LIBDECOR for reuse.
    ideasman42 committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    6e0037e View commit details
    Browse the repository at this point in the history
  45. Cleanup: Move mesh update tags to DNA struct

    This is similar to other update tags and update tags for other geometry types.
    HansGoudey committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    1d0179a View commit details
    Browse the repository at this point in the history
  46. Cleanup: Use C++ attribute API instead of CustomData API

    This gives better asserts in debug builds through use of Span, more
    safety when name convention attributes happen to have different types
    or domains, and simpler code in some cases. But the main reasoning is to
    avoid relying on the specifics of CustomData more to allow us to replace
    it in the future.
    HansGoudey committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    c53e220 View commit details
    Browse the repository at this point in the history
  47. Fix #112293: wrong console line cursor position with multi-byte chars

    The ConsoleLine's `cursor` stores the index of the char where the
    cursor is currently at. This works for ASCII characters, which
    are all one-byte long, but will be offset when the string contains
    multi-byte UTF8 sequences.
    
    This caused an issue during auto-complete where the matching results
    would be offset to the right.
    
    This commit reuses the same logic as the text editor's
    `current_character` RNA property, so that on getting and setting, the
    cursor index is converted from and to UTF-8.
    
    Ref: !114121
    PiOverFour authored and ideasman42 committed Dec 12, 2023
    Configuration menu
    Copy the full SHA
    402cec5 View commit details
    Browse the repository at this point in the history

Commits on Dec 13, 2023

  1. Fix: EEVEE-Next: Numerical imprecision with emission only volumes

    This was caused by the fix to #65771 which biased the extinction.
    The fix uses an exact method by taking the limit of the ill defined
    computation and replacing the result by the simplified formula.
    Clément Foucault committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    c4d91ad View commit details
    Browse the repository at this point in the history
  2. Cleanup: EEVEE-Next: Avoid use of float math when needed

    Clément Foucault committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    c1130ee View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    79ade78 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    768cd9b View commit details
    Browse the repository at this point in the history
  5. Tests: ensure BLI_str_utf8_offset_from_index index is logically clamped

    Callers to this function were clamping the index which isn't necessary.
    
    Update doc-string & tests to reflect this.
    ideasman42 committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    2d171aa View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    7ad2c71 View commit details
    Browse the repository at this point in the history
  7. EEVEE-Next: Add Translucent BSDF support

    This adds support for Translucent BSDF.
    
    This also fixes a bug to allow correct
    shadowing.
    
    The input normal had to be set back to
    non-inverted in the node function to allow
    for correct interpretation of the Normal
    by Screen Space Reflections.
    
    This add the necessary optimization
    and code deduplication to hybrid deferred
    and forward pipeline.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116070
    Clément Foucault authored and Clément Foucault committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    ac11ccd View commit details
    Browse the repository at this point in the history
  8. Fix: EEVEE-Next: OpenGL errors in probe capture

    Was caused by missing / incorrect bindings.
    Reuse the same gbuffer setup for all deferred
    layer to avoid this problem later on.
    Clément Foucault committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    7f8763d View commit details
    Browse the repository at this point in the history
  9. USD: Apply MaterialBindingAPI to Curves with materials

    For Curves having materials, make sure to apply the MaterialBindingAPI
    to their prims during export.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116078
    jessey-git authored and Jesse Yurkovich committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    a7ed0e2 View commit details
    Browse the repository at this point in the history
  10. Fix: EEVEE-Next: Broken surfel lighting

    This was caused by #113257 which removed the
    simple ltc evaluation usage. This in turn
    caused a precision issue for the cases where
    V == N and surfel lighting was one of them.
    
    Adding a special case fixes the issue.
    Clément Foucault committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    4aff321 View commit details
    Browse the repository at this point in the history
  11. WM: correct error printing for suspicious time-stamps

    Future/past were swapped & include the literal uint64 value as it's
    useful to know the invalid value when debugging.
    ideasman42 committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    c9a810d View commit details
    Browse the repository at this point in the history
  12. Fix GHOST/Wayland handling of out-of-order time-stamps

    From what I can tell time-stamps are supposed to be monotonic
    however with LIBDECOR & GNOME click events after resizing the window
    can cause this to happen.
    
    Resolve by only considering the value wrapped when the new time-stamps
    wrapped difference is less than the unwrapped difference.
    Also skip wrapping when the current offset is closer to the current time
    than it would be with the offset applied.
    ideasman42 committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    a56d0c7 View commit details
    Browse the repository at this point in the history
  13. Realtime Compositor: Add static cached images

    The Realtime compositor currently relies on the GPU cache in image IDs.
    That cache only supports single layer images, so multi-layer images will
    be acquired without a cache, introducing significant IO bottlenecks for
    the GPU compositor.
    
    This patch ignores the image GPU cache and stores the images in the
    static cache manager of the compositor. Draw data was introduced to the
    image ID for proper cache invalidation, like other IDs such as masks.
    
    The downside is that the cache will no longer be shared between EEVEE
    and the compositor. But realistically, images are not typically shared
    between materials and compositors.
    
    This is just a temporary solution until we have proper GPU storage
    support for image buffers.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115511
    OmarEmaraDev authored and Omar Emara committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    356480f View commit details
    Browse the repository at this point in the history
  14. IMB: Read single-layer XYZ channels as a combined image

    Currently, the OpenEXR reader can't read single-layer XYZ images as a
    combined image. Single-view images will only read the X channel, while
    multi-view images will interpret the Z as a depth image and the Y and Z
    channels will be treated as float passes.
    
    This patch allows the reading of XYZ channels as combined images. For
    single-view images, we just extend the RGB-like channel names we match
    to contain XYZ. For multi-view images we only treat the Z channel as a
    Depth one if no X and Y channels exists, since the Z in this case is
    part of the XYZ image.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115290
    OmarEmaraDev authored and Omar Emara committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    23df139 View commit details
    Browse the repository at this point in the history
  15. Geometry Nodes: add support for blackbody shader node

    This adds the existing Blackbody shader node to geometry nodes, with the
    same functionality.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/114768
    Kenzie authored and JacquesLucke committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    3f485c8 View commit details
    Browse the repository at this point in the history
  16. Fix #115907: Select similar edge direction skips opposite direction

    As I dont quite get the logic of "enforcing a positive quadrant" from
    b38be90 (which broke the previous behavior of 2.79 which was
    capable of handling reversed edges as well -- there might be ways to
    make that work though), now use the alternative approach of storing the
    flipped direction in the kdtree as well.
    
    This has a slight performance hit (only noticable at ~500k edges), but I
    believe correctness beats performance here.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115951
    lichtwerk authored and Philipp Oeser committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    105db1a View commit details
    Browse the repository at this point in the history
  17. Compositor: Refactor File Output node

    This patches refactors the compositor File Output mechanism and
    implements the file output node for the Realtime Compositor. The
    refactor was done for the following reasons:
    
    1. The existing file output mechanism relied on a global EXR image
       resource where the result of each compositor execution for each
       view was accumulated and stored in the global resource, until the
       last view is executed, when the EXR is finally saved. Aside from
       relying on global resources, this can cause effective memory leaks
       since the compositor can be interrupted before the EXR is written and
       closed.
    2. We need common code to share between all compositors since we now
       have multiple compositor implementations.
    3. We needed to take the opportunity to fix some of the issues with the
       existing implementation, like lossy compression of data passes,
       and inability to save single values passes.
    
    The refactor first introduced a new structure called the Compositor
    Render Context. This context stores compositor information related to
    the render pipeline and is persistent across all compositor executions
    of all views. Its extended lifetime relative to a single compositor
    execution lends itself well to store data that is accumulated across
    views. The context currently has a map of File Output objects. Those
    objects wrap a Render Result structure and can be used to construct
    multi-view images which can then be saved after all views are executed
    using the existing BKE_image_render_write function.
    
    Minor adjustments were made to the BKE and RE modules to allow saving
    using the BKE_image_render_write function. Namely, the function now
    allows the use of a source image format for saving as well as the
    ability to not save the render result as a render by introducing two new
    default arguments. Further, for multi-layer EXR saving, the existent of
    a single unnamed render layer will omit the layer name from the EXR
    channel full name, and only the pass, view, and channel ID will remain.
    Finally, the Render Result to Image Buffer conversion now take he number
    of channels into account, instead of always assuming color channels.
    
    The patch implements the File Output node in the Realtime Compositor
    using the aforementioned mechanisms, replaces the implementation of the
    CPU compositor using the same Realtime Compositor implementation, and
    setup the necessary logic in the render pipeline code.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/113982
    OmarEmaraDev authored and Omar Emara committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    931c188 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    123da34 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    048f70e View commit details
    Browse the repository at this point in the history
  20. LibOverride: Modify automatic handling of which IDs to override in a …

    …hierarchy.
    
    The previous behavior, fairly rough, was simply considering all
    Collections and IDs found as part of the root's hierarchy as to be
    overridden.
    
    The new behavior is based on a specific tag added to some ID usages.
    Currently, these are only the links from a Collection to its Objects
    and children Collections, and the link from an Object to its parent.
    
    The goal of this huge reduction of the 'automatically overridden' set of
    data in a hierarchy is to avoid creating liboverrides for 'utils' data,
    e.g. a collection used as source of data by a GeometryNode generating
    some parametric geometry (Blender Studio use-case: some form of LOD
    handling).
    
    In general, it means that only Collections and objects part of the
    collection hierarchy of the root collection are now overridden.
    
    This should not change in the typical recommended use-case so far (where
    there is a clear root collection to the whole overridden hierarchy, and
    it contains all related collections and objects).
    
    But this should allow much less overhead (and viewport pollution, due to
    the current principle that local (and therefore liboverridden) objects
    have to be instanciated in a Scene) for more complex setups.
    
    Note that the initial idea/change is fairly simple and easy to
    implement, but it creates some additional complexity in the partial
    resync code, since now some linked data may not be detected as needing
    a liboverride anymore when processing a sub-hierarchy, while it would
    require it when processing the whole hierarchy.
    
    This required adding some more processing to the util functions which
    define which ID should be overridden. It essentially creates a
    'reference set' of all reference IDs that should be overridden when
    the whole hierarchy is considered, and use this as additional input to
    decide which ID to override when processing a sub-hierarchy for the
    partial resync.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115853
    Bastien Montagne authored and Gitea committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    fb8bf8b View commit details
    Browse the repository at this point in the history
  21. Cleanup: Move BKE_blendfile headers to CPP.

    Bastien Montagne committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    f01bc93 View commit details
    Browse the repository at this point in the history
  22. Cleanup: rename dynamic paint specific volume grid

    Doing this to avoid name clashes with the more used `VolumeGrid` type.
    JacquesLucke committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    1a4f410 View commit details
    Browse the repository at this point in the history
  23. Geometry Nodes: rename ValueOrField to SocketValueVariant

    Doing this in preparation for also supporting volume
    grids in the same type (#115270).
    
    At some point we could also actually use an `std::variant` in this
    type, but that would change behavior without futher changes.
    JacquesLucke committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    3370228 View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    5519a48 View commit details
    Browse the repository at this point in the history
  25. Fix #116130: Mirrored custom normals broken again

    Caused by c53e220
    
    Above commit was working on the `mesh` (not the `result`) -- basically a
    typo...
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116134
    lichtwerk authored and Philipp Oeser committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    65274dc View commit details
    Browse the repository at this point in the history
  26. Cleanup: Remove unnecessary Mesh C-API functions

    Like mentioned in the docstrings, use the C++ API or access methods
    in C++ code.
    HansGoudey committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    b52a071 View commit details
    Browse the repository at this point in the history
  27. Cleanup: Un-inline mesh data access functions

    These shouldn't be called in hot loops at all, and mostly aren't
    anymore anyway. Definining them outside of a header allows removing
    the `BKE_customdata.hh` include from `BKE_mesh.hh`.
    HansGoudey committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    4c1817e View commit details
    Browse the repository at this point in the history
  28. Fix #116122: Frame Selected/All operators incorrectly frame view

    `BKE_object_minmax` is expected to update the min and max, not just set them.
    HansGoudey committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    766b0ce View commit details
    Browse the repository at this point in the history
  29. Cleanup: Forward declare some classes in mesh headers

    Aiming to reduce cases of including headers in headers,
    when the final definition might be unnecessary.
    HansGoudey committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    30d9596 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    6a1009c View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    e657aa2 View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    96dff1d View commit details
    Browse the repository at this point in the history
  33. Fix #116144: Tag update relations for Active Camera node

    illua1 authored and Hans Goudey committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    51bb324 View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    7e4c2b2 View commit details
    Browse the repository at this point in the history
  35. Fix #116025: Uninitialized value when versioning old node trees

    Usually we expect new DNA values do be zeroed when we add them. But the
    conversion to the interface format for 4.0 didn't clear the memory, so
    behavior was different when updating old files. Fix that by using
    `calloc` instead of `malloc`.
    HansGoudey committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    6525256 View commit details
    Browse the repository at this point in the history
  36. Geometry Nodes: use dynamic declaration for switch node

    Follow up for 8149678. Significantly reduce boilerplate
    required for each type in the switch node.Forward compatibility in 4.0
    provided by 0ea193b.
    
    Co-authored-by: Hans Goudey <hans@blender.org>
    Pull Request: https://projects.blender.org/blender/blender/pulls/113413
    JacquesLucke authored and Hans Goudey committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    f7383cf View commit details
    Browse the repository at this point in the history
  37. Fix: GPU: from_up_axis

    glsl sign can return 0.
    Fixes surfels display when normal.z == 0.
    pragma37 committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    6c40adc View commit details
    Browse the repository at this point in the history
  38. Fix #115590: UV window menus disappearing

    Due to lack of forward compatibility, tool_settings.snap_uv_element
    could return empty if a 4.0 file is opened in 3.6.
    
    This causes a Python error when trying to identify the element's icon.
    
    Avoid this python error.
    Germano Cavalcante committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    f831803 View commit details
    Browse the repository at this point in the history
  39. Fix (unreported) crash when trying to link/append while a linked scen…

    …e is active.
    
    Link/append code sets the scene pointer to `null` when the active
    scene is a linked one, to avoid attempt to instantiate linked data
    (objects or collections) into a linked scene, which is forbidden.
    
    However, code was still calling some functions expecting a valid scene
    pointer, leading to crash.
    
    It is unclear when exactly this issue was introduced code wise. From a
    user perspective, it seems to have been revealed between 3.6 and 4.0
    release (bisect points at 00a36cb, which does not seem to be
    directly related...).
    
    In any case, the fix is trivial and safe, so should we do another 4.0
    bugfix release, this commit should be backported.
    Bastien Montagne committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    b840ba1 View commit details
    Browse the repository at this point in the history
  40. Fix #115486: Linked scenes disappear after reopening file.

    Caused by 133dde4, it is expected behavior now for linked ID in
    general, see also #105786 and #106321.
    
    However, Scenes are a special case here, since they are almost never
    (and should not be) indirectly linked by other data, and have (almost)
    never any real user, unless they are active in one of the open main
    windows.
    
    So this commit essentially reverts the new behavior implemented
    in #106321, for linked scenes only.
    
    Should be backported to a potential bugfix release of 4.0.
    Bastien Montagne committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    60a9c8e View commit details
    Browse the repository at this point in the history
  41. Fix: from_up_axis sign

    Same as 6c40adc
    Fixes the case where up.z == 0
    pragma37 committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    937c4ed View commit details
    Browse the repository at this point in the history
  42. Fix: EEEVEE-Next: Volume lighting

    Fix socket_not_white and socket_not_black logic.
    (Volume lighting would be disabled if any scatter channel was 0)
    Remove unnecesary clamps.
    pragma37 committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    8e9ce4d View commit details
    Browse the repository at this point in the history
  43. VSE: implement selection of "linked" retiming keys

    This feature improves workflow, where it is necessary to select all
    retiming keys after one that is selected in order to change speed of
    only 1 segment.
    
    The feature is reusing `sequencer.select` "linked time" feature and
    mapped Ctrl key.
    
    Ref: #112343
    RichardAntalik committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    5092fe6 View commit details
    Browse the repository at this point in the history
  44. VSE: Keep exiting retiming when changing speed

    Add "Preserve Current Retiming" option to set speed operator. This
    option is enabled by default. When changing speed of retiming segment,
    the strip changes length instead of changing next segment speed.
    
    Ref: #112343
    RichardAntalik committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    f372ac6 View commit details
    Browse the repository at this point in the history
  45. Cycles: Enable HIP devices for OpenImageDenoise

    This enables the HIP backend of OpenImageDenoise on supported devices.
    
    Co-authored-by: Werner, Stefan <stefan.werner@intel.com>
    Pull Request: https://projects.blender.org/blender/blender/pulls/115854
    Stefan Werner committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    fd8bb41 View commit details
    Browse the repository at this point in the history
  46. Fix eyedropper outside blender on mac

    Support for picking colors from outside of the blender window on macOS
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115187
    rajveermalviya authored and Harley Acheson committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    639de68 View commit details
    Browse the repository at this point in the history
  47. Configuration menu
    Copy the full SHA
    ac753fe View commit details
    Browse the repository at this point in the history
  48. Fix #116137: Overflow causing event time false positive warnings

    The intent of `ghost_event_proc_timestamp_warning` is to give a console
    warning when an event time is outside of an expected 5 second window
    around the last time. However if an event happens within the first 5
    seconds we get an overflow in a calculation and we get warnings for
    normal times within the range.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116164
    harley-acheson authored and Harley Acheson committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    463dc4d View commit details
    Browse the repository at this point in the history
  49. Fix #116140: GPU subdivision ignores completely smooth shading

    Extraction of data is done in a different order for GPU subdivision
    drawing. The necessary normals domain of the mesh has to be
    retrieved before that.
    HansGoudey committed Dec 13, 2023
    Configuration menu
    Copy the full SHA
    cdb2f1e View commit details
    Browse the repository at this point in the history

Commits on Dec 14, 2023

  1. Fix invalid size of allocated looptris array

    Regression in [0], moving to C++ types.
    
    [0]: 321c1af
    ideasman42 committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    173a4df View commit details
    Browse the repository at this point in the history
  2. Cleanup: follow convention for naming array lengths

    In the context of meshes `totface` reads as if its the number of faces
    in the mesh. This was infact the number of looptris however as this
    is converted into a "bodyface" array, use that as the prefix.
    ideasman42 committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    adb74ad View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a4af406 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    d8ffa64 View commit details
    Browse the repository at this point in the history
  5. Refactor: move BEZKEYTYPE define to DNA

    Recently this was inlined [0] however the purpose of this define is to
    allow for the method of setting the value to be changed.
    It also means the hack doesn't have to be explained whenever it's used.
    
    Move the BEZKEYTYPE to DNA, update it's doc-string and restore the
    original comment.
    
    [0]: fd3629b
    ideasman42 committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    931b255 View commit details
    Browse the repository at this point in the history
  6. Cleanup: clarify naming for MLoopTri

    The term `looptri` was used ambiguously for both single & arrays.
    The term `tri` was also used, causing `tri->tri`.
    
    Use terms:
    
    - `looptris` for an array or when dealing with multiple items.
    - `looptri` is used when dealing with a single item.
    - `lt` for a single MLoopTri variables & arguments.
    
    This was already a convention but not followed closely.
    ideasman42 committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    944e048 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    0d9acf8 View commit details
    Browse the repository at this point in the history
  8. Cleanup: replace C expressions with plain text in cloth errors

    Also remove the print as BKE_modifier_set_error prints a warning.
    ideasman42 committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    664b49c View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    bff5ffc View commit details
    Browse the repository at this point in the history
  10. Docs: correct code comment for LaplacianSystem::tris

    Also use doxygen doc-strings as they more easily allow comments to be
    expanded on.
    ideasman42 committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    3241db3 View commit details
    Browse the repository at this point in the history
  11. Fix #116141: Missing task isolation when storing sculpt undo node

    We shouldn't use parallelism internally for each node, but it snuck in
    with recent changes to use `array_utils::gather`. That's a nice change,
    but we need a better way to turn off parallelism for that sort of
    function. Until that's decided on, add a quick fix to fix the deadlock.
    HansGoudey committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    e5cb2b2 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    410e202 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    4f609a4 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    42e7d9f View commit details
    Browse the repository at this point in the history
  15. GHOST/Wayland: set windows scale on creation when it's known

    When the final buffer scale is known, set the window scaling on startup.
    
    This avoids scaling immediately after creating the window which
    flickers. It also resolves an paper-cut with KDE where fractional
    scaling caused the window to be placed on the screen center,
    then the size increased pushing the window contents off the bottom right
    hand portion of the screen.
    ideasman42 committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    3e635c3 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    a1bee22 View commit details
    Browse the repository at this point in the history
  17. Fix window frames not following blender window with fractional scaling

    With fractional scale under GNOME, the window frames didn't match
    the window contents. This was caused by updates needed to call
    libdecor_frame_get_xdg_toplevel initializing the LIBDECOR window
    before the window scale, internal buffer - etc were set.
    
    Resolve by accessing moving the window state assignment last.
    ideasman42 committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    ba33dba View commit details
    Browse the repository at this point in the history
  18. Fix incorrectly sized maximized windows on Wayland + KDE

    Starting blender with --window-maximized wouldn't always size the
    windows properly, similar to the fix for LIBDECOR, move setting the
    window state last.
    ideasman42 committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    39f378d View commit details
    Browse the repository at this point in the history
  19. Fix crash with change to window initialization order

    Recent re-ordering change [0] on Wayland window initialization crashed
    WLROOTS based compositors, resolve by keeping the updates and only
    postponing the state change.
    
    [0]: 39f378d
    ideasman42 committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    a7bcee8 View commit details
    Browse the repository at this point in the history
  20. Fix #116121: Resolve framebuffer resize issue in Metal

    Changing size of framebuffer attachments would
    throw an assertion as framebuffer size was not
    correctly reset to zero. Zero allows any size
    to override the current if there are no set attachments.
    
    Authored by Apple: Michael Parkin-White
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116162
    Jason Fielder authored and jeroenbakker-atmind committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    2db12cc View commit details
    Browse the repository at this point in the history
  21. Realtime Compositor: Implement Cryptomatte node

    This patch implements the Cryptomatte node for the Realtime Compositor.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115884
    OmarEmaraDev authored and Omar Emara committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    a8e1399 View commit details
    Browse the repository at this point in the history
  22. Anim: Don't use keying sets when inserting keyframes during autokeying

    Prior to this PR, the autokeying system used keying sets
    to insert keyframes where required.
    
    With the functions introduced in #113504
    the code can be simplified and made to not rely on keying sets,
    allowing autokeying to also insert keys by rna path directly.
    
    This also removes all the code related to "Insert Needed" from autokeying.
    The insert key functions deal with that now, all that is needed is to pass
    in the flag.
    
    Part of #113278
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115522
    Christoph Lendenfeld authored and Christoph Lendenfeld committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    92ad16a View commit details
    Browse the repository at this point in the history
  23. Fix #115581: Channel Context Menu mis-labeled

    The context menu for the channels is shared
    between all animation editors.
    Changed "Dope Sheet Channel" label to "Channel"
    for consistent channel label in all animation editors.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115845
    Draise14 authored and Christoph Lendenfeld committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    5c868e9 View commit details
    Browse the repository at this point in the history
  24. Refactor: Move ED_id_action_ensure to animrig

    No functional changes.
    
    Move the function ED_id_action_ensure to animrig,
    and rename it to `id_action_ensure`.
    This is in order to reduce references from animrig
    to the editor code.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116101
    Christoph Lendenfeld authored and Christoph Lendenfeld committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    9bfd7de View commit details
    Browse the repository at this point in the history
  25. Cleanup: remove libdecor workaround for fractional scale

    Since the preferred fractional scale callback runs,
    remove a workaround that guessed the fractional scale from the output.
    
    While it could be kept, it added unnecessary complexity.
    ideasman42 committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    f79da9f View commit details
    Browse the repository at this point in the history
  26. Build: update Windows ocloc to store binaries per generation

    Same as #115750 for Linux, to gain space and compile time.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116159
    brechtvl authored and Brecht Van Lommel committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    7df6d9e View commit details
    Browse the repository at this point in the history
  27. GHOST/Wayland: remove workaround when resizing windows with LIBDECOR

    This was an attempt to fix a crash resizing windows #107797
    (which I can't reproduce), however it didn't fix the issue and meant
    that a window would sometimes not reach the desired size,
    the maximized window for e.g. would sometimes remain the un-maximized
    size.
    ideasman42 committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    9479b49 View commit details
    Browse the repository at this point in the history
  28. Fix: Keying Channel Defaults

    This was missed during #113504
    
    While the versioning code set the flags correctly,
    the defaults were not specified correctly.
    This would leave new users to key only location.
    
    Fix it by enabling Location, Rotation, Scale and
    Custom Properties by default.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116180
    Christoph Lendenfeld authored and Christoph Lendenfeld committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    1a998c7 View commit details
    Browse the repository at this point in the history
  29. Anim: Bake Channel operator

    This is a replacement for the workflow that uses
    "Bake Curve" and "Unbake Curve" to quickly generate
    dense key data.
    
    Compared to the existing workflow it has the advantage
    of allowing the user more control over the key types,
    and distance between keys, as well as the frame range affected.
    
    Operator options
    
    * Range: the range that will be baked.
    Defaults to the scene range or preview range.
    
    * Step: Distance between keyframes.
    Can be used to bake on 2s or even bake to subframes.
    
    * Remove Existing Keys: Boolean option that
    if enabled also removes keys outside the specified baking range
    
    * Interpolation Type: Choose a interpolation mode used
    for new keys e.g. Constant or Bezier
    
    * Bake Modifiers: If enabled bakes the effect of the
    modifier stack to keys and deletes the modifier stack.
    If false, the code disables the modifiers before baking,
    so the resulting keys will behave as if the modifiers didn't exist
    
    The operator can be found in the Graph Editor under `Channel->Bake Channels`
    
    Part of: #111050
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/111263
    Christoph Lendenfeld authored and Christoph Lendenfeld committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    1e931f5 View commit details
    Browse the repository at this point in the history
  30. GHOST/X11: Enable desktop sample capability

    The functionality was added [0] but the flag wasn't enabled.
    
    Ref: !116178
    
    [0]: e5a0d11
    rajveermalviya authored and ideasman42 committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    40a89c0 View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    5197dd2 View commit details
    Browse the repository at this point in the history
  32. Cleanup: Remove unused EnumPropertyItem

    The channel_bake_remove_options were forgotten
    to be removed. They were no longer in use after
    addressing review comments.
    This fixes the compiler warning.
    Christoph Lendenfeld committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    915358f View commit details
    Browse the repository at this point in the history
  33. Studiolights: Remove Unused Options

    Studio lights had gone over several iterations during 2.80. Some
    unused options where still in the code, but not used.
    
    This PR cleans up the studio lights to options that are still in use.
    Removing:
    
    - Spherical Harmonics: It was used by workbench, but was replaced
      by regular OpenGL lights
    - Irradiance textures: Was used by an old eevee world light evaluation
    - Cached data files.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116186
    jeroenbakker-atmind committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    a52a362 View commit details
    Browse the repository at this point in the history
  34. ImBuf: optimize IMB_transform

    IMB_transform is used by Sequencer (and other places) to do image
    translation/rotation/scale on the CPU. This PR speeds up parts of it,
    particularly when bilinear filtering is used. No behavior changes are
    expected.
    
    - Don't use virtual function calls inside inner loop. The code was using
      class hierarchies with virtual calls just to do equivalent of "outside
      of image? ignore" and "wrap UV coordinates or not?" decisions. Make those
      use non-virtual function based code.
    - Simplify pixel sampling functions to only do the work as needed by
      anything within Blender codebase. For example, bilinear sampling of uchar
      images always uses 4 RGBA channels and never does "UV wrap" logic.
    - Bilinear interpolation uchar: completely branchless SIMD code now.
    - Bilinear interpolation float: 2x floor() calls instead of 4x floor() +
      2x ceil(), and final sample blending is done with SIMD.
    
    Sequencer at 4K UHD resolution, with two image strips that need a transform,
    playback framerate:
    
    - Windows Ryzen 5950X: 18.7fps -> 26.2fps (IMB_transform time per frame goes
      26.3ms -> 11.2ms)
    - Mac M1 Max: 27.3fps -> 31.4fps
    
    At that point the IMB_transform is not the slowest part of where playback
    takes time (but rather sequencer effect application etc.).
    
    Note: the amount of _actual code_ got a bit smaller. But I've added 100 lines
    of unit tests in BLI_math_interp_test.cc, the bilinear interpolation
    functions were only tested very indirectly by CPU compositor template
    image tests.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/115653
    aras-p authored and Aras Pranckevicius committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    1e0bf33 View commit details
    Browse the repository at this point in the history
  35. Fix #116017: Mesh edit mode vertex slide allocation ignores alignment

    `float4x4` requires 16 byte alignment. The compiler can add padding
    within the struct, but the allocation needs to know about the alignment
    too. Fix by using an allocation function that handles this properly.
    HansGoudey committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    5b05320 View commit details
    Browse the repository at this point in the history
  36. Configuration menu
    Copy the full SHA
    451aa56 View commit details
    Browse the repository at this point in the history
  37. Studiolight: Free Resources for Unused Lights.

    Studio lights based on image resources are kept in memory, even when only
    displayed as an icon. When having many studio lights configured
    leads to allocating a lot of memory that are not used.
    
    This patch free image resources when only icons are requested.
    For studio lights that are used in a viewport the image resources are kept.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116191
    jeroenbakker-atmind committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    4a34dcb View commit details
    Browse the repository at this point in the history
  38. VSE: reduce effects code duplication, making gaussian blur faster in …

    …the process
    
    Now that the code is in C++, quite some duplication between "byte" and
    "float" effect code paths can be reduced (easier than it was in C times).
    So I did that, removing about 400 lines of code.
    
    In that process I accidentally made Gaussian Blur faster, since while
    reducing the amount of code I noticed it was doing some things
    sub-optimally (calculated kernel tables for each job, etc.). Applying
    100x100 gaussian blur on 4K UHD resolution image strip on Ryzen 5950X
    went 630ms -> 450ms.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116089
    aras-p authored and Aras Pranckevicius committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    5cac8e2 View commit details
    Browse the repository at this point in the history
  39. Cleanup: Remove unnecessary C API for delaunay triangulation

    The only user was the Python API. Convert that to use the C++ API.
    That simplifies things a bit even, since the encoding of "arrays of arrays"
    is a fair amount simpler with the C++ data structures. The motivation
    is to simplify the changes from #111061.
    HansGoudey committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    a494d6a View commit details
    Browse the repository at this point in the history
  40. Cleanup: Anim, add explanation to bone collection assign operator

    Just a little explanation of the code, because I got confused by my own.
    
    No functional changes, except for the addition of a `BLI_assert_msg()`.
    drsybren committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    b5e7e6b View commit details
    Browse the repository at this point in the history
  41. Cleanup: Fix compiler warning in face group boundaries node

    Fix error of wrong parameter for `compare_exchange_weak`. Second
    one parameter is used for write new value, but a mistake occurred and
    the wrong parameter (for read) was used. Default param is enough for
    this, so just delete last one.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116010
    illua1 authored and Hans Goudey committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    999c0f6 View commit details
    Browse the repository at this point in the history
  42. Cleanup: Conver macros into functions

    Avoids macro redefinition warnings in unity builds.
    pragma37 committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    9bf942d View commit details
    Browse the repository at this point in the history
  43. Cleanup: Use utility function to calculate face normal

    Rather than inlining all the logic into OBJ export code
    HansGoudey committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    bb2a289 View commit details
    Browse the repository at this point in the history
  44. Cleanup: Slightly simplify delaunay triangulation input gathering

    Separate allocation of input arrays and assignment to input class.
    The main purpose is to simplify #111061.
    HansGoudey committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    34bf1f6 View commit details
    Browse the repository at this point in the history
  45. Cleanup: Slightly simplify some loops in delaunary triangulation

    Use a local variable for the faces, use range based for loops.
    HansGoudey committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    5be9a1c View commit details
    Browse the repository at this point in the history
  46. Merge branch 'main' into sync_blender_master

    Conflicts Resolved:
    	release/text/readme.html
    	scripts/startup/bl_ui/properties_render.py
    	scripts/startup/bl_ui/space_toolsystem_toolbar.py
    	scripts/startup/bl_ui/space_view3d.py
    	source/blender/editors/sculpt_paint/sculpt_face_set.cc
    	source/blender/editors/sculpt_paint/sculpt_mask_init.cc
    	source/blender/nodes/NOD_static_types.h
    Draise14 committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    5fa4fec View commit details
    Browse the repository at this point in the history
  47. Configuration menu
    Copy the full SHA
    262572a View commit details
    Browse the repository at this point in the history
  48. Cleanup: Remove useless PBVH update function

    This `update_vertex_data` only found nodes with the color update
    tag and also added redraw tags. But whenever nodes are marked
    for a color update, those redraw tags are already set anyway.
    It appears this was meant to solve problems switching active
    color attributes during undo and redo, but it doesn't make a
    difference when this function is removed.
    HansGoudey committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    f15bca6 View commit details
    Browse the repository at this point in the history
  49. Cleanup: Remove unnecessary sculpt visibility update

    Mainly for semantic reasoning-- these face set gestures don't change visibility.
    HansGoudey committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    1d94003 View commit details
    Browse the repository at this point in the history
  50. Cleanup: Pass vertex update array as argument when building PBVH

    To prepare for potentially not storing this array in the PBVH.
    HansGoudey committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    71b6f0e View commit details
    Browse the repository at this point in the history
  51. Configuration menu
    Copy the full SHA
    ce4ec6d View commit details
    Browse the repository at this point in the history
  52. Cleanup: Remove unnecessary PBVH threading settings function

    There were just two more places using the C threading API in sculpt code.
    Switch them to the C++ API and remove the settings function.
    HansGoudey committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    4c1f766 View commit details
    Browse the repository at this point in the history
  53. Configuration menu
    Copy the full SHA
    87e8a28 View commit details
    Browse the repository at this point in the history
  54. Fix #116135: Ensure blf_font_width_to_rstrlen always works

    If the string is shorter than the cut-off length, ensure we always
    exit cleanly when we iterate to the very start of the string.
    
    Pull Request: https://projects.blender.org/blender/blender/pulls/116208
    harley-acheson authored and Harley Acheson committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    8c6898c View commit details
    Browse the repository at this point in the history
  55. Merge branch 'main' into sync_blender_master

    Conflicts Resolved:
    	scripts/startup/bl_ui/space_dopesheet.py
    	scripts/startup/bl_ui/space_graph.py
    	source/blender/editors/interface/interface_context_menu.cc
    	source/blender/nodes/NOD_static_types.h
    Draise14 committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    e36222a View commit details
    Browse the repository at this point in the history