Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-05-22Cleanup: Use const argumentsHans Goudey
2022-05-22Cleanup: Remove unused functionHans Goudey
Mesh "MFace" is deprecated and shouldn't be used in any new code anyway.
2022-05-20LibOverride: Add option to Hierarchy Creation to get all data user-editable ↵Bastien Montagne
by default. Avoids having to manually enable data-blocks for user-edition when you do not care about what should be edited by whom. Similar to default behavior before introduction of system overrides (aka non-user-editable overrides).
2022-05-20Merge branch 'blender-v3.2-release'Hans Goudey
2022-05-20Fix T96810: Bitmap race condition in PBVH normal calculationHans Goudey
The final normalization step of sculpt normal calculation iterates over all unique vertices in each node and marks them as done. However, storing the done mask in a bitmap meant that multiple threads could write to a single byte at the same time, because the bits for separate threads could be stored in the same byte. This is not threadsafe Fixing this issue seems to improve performance as well. First I tested just clearing the entire bitmap after the normal calculation. Then I tested using an array of booleans instead, which turned out to be slightly better, and simplifies code a bit. I tested on a Ryzen 3800x, on an 8 million polygon subdivided Suzanne by using the grab brush with a radius large enough to affect most of the mesh. | Original | Clear Entire Bitmap | Boolean Array | | --------- | ------------------- | ------------- | | 67.9 ms | 59.1 ms | 57.9 ms | | 1.0x | 1.15x | 1.17x | Differential Revision: https://developer.blender.org/D14985
2022-05-20Cleanup: make functions for setting clone/stencil layer more consistentMartijn Versteegh
This was missing in rBf1beb3b3f60be45854285935d6bfcedf839b317c. Differential Revision: https://developer.blender.org/D14991
2022-05-20Cleanup: warnings, spelling, formattingCampbell Barton
Avoid multiple `sound.bl_rna.properties["channels"].enum_items` in the same line. Note we might want a way to avoid having to do this.
2022-05-19VSE: Display sound sample rate and channelsMarcos Perez
Display information about sound media in "Source" category in side panel similar to movie resolution and framerate. The specs are stored in the `Sequence` struct, and are extracted at the moment of struct creation. If the "source file" is changed, the specs change also. Reviewed By: ISS Differential Revision: https://developer.blender.org/D14565
2022-05-19Merge branch 'blender-v3.2-release'Bastien Montagne
2022-05-19Fix (studio-reported) more possibilities to edit content of linked/override ↵Bastien Montagne
collections. Existing code for the `Move` operator, and some `Collections` panel operations (Object properties) was absolutely not override-safe, and sometimes not even linked-data safe.
2022-05-19Cleanup: Decrease variable scopeHans Goudey
2022-05-19Cleanup: Remove redundant functionHans Goudey
`BKE_object_get_evaluated_mesh` now looks inside `geometry_set_eval`.
2022-05-19Merge branch 'blender-v3.2-release'Bastien Montagne
Conflicts: source/blender/blenkernel/intern/lib_override.c
2022-05-19Fix liboverride extreme resync times in case of libraries dependency loops.Bastien Montagne
That max number of `10000` level of recursivity was a typo (should have been `1000`), but even that is way too high, typical sane situation should not lead to more than a few tens of levels, so reducing the max level to 200. Also improve error message with more context info about the issue. Found while investigating issues for the Blender Studio's Heist production.
2022-05-19Revert "Fix liboverride extreme resync times in case of libraries dependency ↵Bastien Montagne
loops." This reverts commit e42e4e8568edeb4e0b962e2059586c2a3d3b457d. Wrong commit, sorry for the noise.
2022-05-19Fix liboverride extreme resync times in case of libraries dependency loops.Bastien Montagne
That max number of `10000` level of recursivity was a typo (should have been `1000`), but even that is way too high, typical sane situation should not lead to more than a few tens of levels, so reducing the max level to 200. Also improve error message with more context info about the issue. Found while investigating issues for the Blender Studio's Heist production.
2022-05-19Fix T98237: Double free with curve object conversion to meshHans Goudey
In some cases (when there is an evaluated curve), the conversion code would try to free the evaluated data-block twice, because freeing the object would free it from `data_eval` and then the data-block was freed again explicitly. Now check if the data-block is stored in `data_eval` before freeing `object.data` manually. This is another area that's made more complex by the fact that we change the meaning of `object.data` for evaluated objects. The solution is more complicated than it should be, but it works whether or not an evaluated mesh or curve exists.
2022-05-19Fix T73250: Override Library will always return to Object Mode on file opening.Bastien Montagne
Was an old known annoying issue, since the matching RNA property is read-only we need a manual handling of this in override applying and resyncing code.
2022-05-18Merge branch 'blender-v3.2-release'Sergey Sharybin
2022-05-18Fix T97761: incorrect mixing of integersJacques Lucke
Sometimes integers are mixed using float weights. In those cases the mixed result has to be converted from into float again. Previously, this was done using a simple cast, which was unexpected because e.g. 14.999 would be cast to 14 instead of 15. Now, the values are rounded properly. This can affect existing files unfortunately without a good option for versioning. Gladly, very few files seem to depend on the details of the old behavior. Differential Revision: https://developer.blender.org/D14892
2022-05-18Subdiv: support interpolating orco coordinates in subdivision surfacesBrecht Van Lommel
This makes changes to the opensubdiv module to support additional vertex data besides the vertex position, that is smootly interpolated the same way. This is different than varying data which is interpolated linearly. Fixes T96596: wrong generated texture coordinates with GPU subdivision. In that bug lazy subdivision would not interpolate orcos. Later on, this implementation can also be used to remove the modifier stack mechanism where modifiers are evaluated a second time for orcos, which is messy and inefficient. But that's a more risky change, this is just the part to fix the bug in 3.2. Differential Revision: https://developer.blender.org/D14973
2022-05-18Fix T98157: improve animation fps with better check in depsgraphJacques Lucke
Previously, the depsgraph assumed that every node tree might contain a reference to a video. This resulted noticeable overhead when there was no video. Checking whether a node tree contained a video was relatively expensive to do in the depsgraph. It is cheaper now due to the structure of the new node tree updater. This also adds an additional run-time field to `bNodeTree` (there are quite a few already). We should move those to a separate run-time struct, but not as part of a bug fix. Differential Revision: https://developer.blender.org/D14957
2022-05-18Merge branch 'blender-v3.2-release'Bastien Montagne
2022-05-18Fix (unreported) crash in some rare case when making liboverride.Bastien Montagne
If making liboverride of an empty collection, this (root of override hierarchy) collection would get untagged in code when checking for collections that do not need to be overridden, leading to not overriding this root collection, and later in code to using NULL pointer.
2022-05-17Merge branch 'blender-v3.2-release'Bastien Montagne
2022-05-17Fix T98052: Eevee / Workbench background render crash with GPU subdivisionBrecht Van Lommel
The problem is that depsgraph evaluation happens before the OpenGL context is initialized, and so modifier evaluation happens without GPU subdivision. Later the BKE_subsurf_modifier_can_do_gpu_subdiv test in the draw code gives a different result. This just checks if the mesh has information for GPU subdivision in the draw code, and if so uses it. This is only set if the test for supported GPU subdivision passes in the modifier evaluation. Additionally it may be good to perform OpenGL context initialization earlier so background render can take advantage of GPU subdivision, but this is more complicated. Differential Revision: https://developer.blender.org/D14969
2022-05-17Cleanup: Remove asserts when logging error messages.Bastien Montagne
If we produce CLOG_ERROR messages and the error is not actually critical, there is no point in asserting too. Mainly related to ID user counts, and a few other ID management areas.
2022-05-17Cleanup: Use `switch` and `BLI_assert_unreachable()` more.Bastien Montagne
Replace some `if/else if` chains by proper `switch` statement. Replace some `BLI_assert(0)` calls by `BLI_assert_unreachable()` ones.
2022-05-17Cleanup: Use const in curves sculpt codeHans Goudey
This makes it much clearer what data is supposed to be modified and what data is just used to influence the operation. The new `BKE_paint_brush_for_read` function isn't great design, but it can be removed or renamed if similar changes are applied to more places. Also pass pointers explicitly to `sample_curves_3d_brush` rather than reusing the `bContext`. This makes it clearer what data the function actually needs. Differential Revision: https://developer.blender.org/D14967
2022-05-17Merge branch 'blender-v3.2-release'Campbell Barton
2022-05-17Fix text.as_string() adding a trailing new-lineCampbell Barton
Moving Text.as_string() from Python to C [0] added an extra new-line causing a round-trip from_string/to_string to add a new-line, this also broke the undo test `test_undo.text_editor_simple` in `../lib/tests/ui_simulate/run.py`. [0]: 231eac160ee394d41c84e0cc36845facb7594ba5
2022-05-17Cleanup: spelling in commentsCampbell Barton
2022-05-17Cleanup: use term 'filepath' for full file pathsCampbell Barton
2022-05-16Fix image saving incorrectly overrding non-color data color spaceBrecht Van Lommel
In such cases we should not automatically change the color space.
2022-05-16Refactor modifiers writing code.Bastien Montagne
This changes is needed to give more control to modifiers' writing callback when defined. It will allow to implement better culling of needless data when writing e.g. modifiers from library overrides. Ref. T97967. Reviewed By: brecht, JacquesLucke Differential Revision: https://developer.blender.org/D14939
2022-05-16Cleanup: make functions for setting active/render layer more consistentMartijn Versteegh
The active/render layer is indexed from the first layer of that type. These functions incorrectly subtracted the layer index of *each* layer, instead of the first one. If there's only a single layer this doesn't matter, but when there are multiple layers it will set the wrong active layer for consecutive layers. I'm not aware of any actual errors caused by this, because the active and render layers are only ever queried from the first layer of that type, but it was confusing during debugging a related issue. This patch makes the behavior of CustomData_set_layer_active_index() consistent with CustomData_set_layer_active() and the same for render. Differential Revision: https://developer.blender.org/D14955
2022-05-163D Texturing: Undo.Jeroen Bakker
Blender can only support a single undo system per undo step. As sculpting/vertex colors are mutual exclusive operations out approach is just to switch the undo system when painting on an image. PBVHNodes contain a list of areas that needs to be pushed to the undo system. Currently the undo code is in sculpt_paint_image. We should eventually support undo for color filtering and other nodes. we might need to place it to its own compile unit so more brushes can invoke the same code. {F13048942} Reviewed By: brecht Maniphest Tasks: T97479 Differential Revision: https://developer.blender.org/D14821
2022-05-16Merge branch 'blender-v3.2-release'Bastien Montagne
2022-05-16Fix T98136: Crash undoing "Make Library Override" in some cases.Bastien Montagne
The 'OVERRIDE_HIDDEN' extra collection would often be mistakenly added to a linked collection, which is totally forbidden and guaranteed to crash on undo/redo. Reworked the code instantiating that extra collection in a more generic and hopefully robust way now.
2022-05-16Python API: make Image.save and Image.save_render more consistent with operatorBrecht Van Lommel
Previously these only supported a subset of what the save operator could do, for example no multilayer or stereo saving, no proper color management. Now share code with the image save operator so it's more consistent.
2022-05-16Merge branch 'blender-v3.2-release'Bastien Montagne
2022-05-15Cleanup: Simplify loop syntax, make function staticHans Goudey
Use range based for loops, spans, references, and slice. Change split from D14685, in order to simplify refactor to the mesh hide masks.
2022-05-15Cleanup: Remove includes from DerivedMesh headerHans Goudey
Headers should only include other headers when absolutely necessary, to avoid unnecessary dependencies and increasing compile times. To make this change simpler, three DerivedMesh functions with a single use were removed.
2022-05-15Fix T98049: crash rendering multilayer EXR with some color spacesBrecht Van Lommel
2022-05-15Cleanup: Simplify loop syntax, decrease variable scopeHans Goudey
Mostly changes split from D14685, which refactors the hide flags.
2022-05-15Cleanup: Remove unused DerivedMesh functionHans Goudey
2022-05-15Cleanup: Remove unused subsurf ccg functionsHans Goudey
This simplifies some refactoring to mesh hide flags (see D14685).
2022-05-15Merge branch 'blender-v3.2-release'Joseph Eagar
2022-05-15Fix T81715: Unprojected radius mode messes up sculpt texture radiusJoseph Eagar
We really need to fix how unprojected radius (scene unit) works. What happened is the paint code updates the brush's normal radius with the current unprojected pixel radius, which was then used by texture brush tiled mode. To fix this I just cached the pixel radius at stroke start in UnifiedPaintSettings->start_pixel_radius.
2022-05-14Fix: Build error due to previous commitHans Goudey