Age | Commit message (Collapse) | Author |
|
Use new `BKE_pose_ensure` utils, and do so for reference linked object
too everywhere.
|
|
Avoids having to spread the check logic everywhere in the code.
|
|
This patch improves the single core performance of the lattice deform.
1. Prefetching deform vert during initialization. This data is constant for
each innerloop. This reduces the complexity of the inner loop what makes
more CPU resources free for other optimizations.
2. Prefetching the Lattice instance. It was constant. Although performance
wise this isn't noticeable it is always good to free some space in the
branch prediction tables.
3. Remove branching in all loops by not exiting when the effect of the loop
isn't there. The checks in the inner loops detected if this loop didn't
have any effect on the final result and then continue to the next loop.
This made the branch prediction unpredictable and a lot of mis
predictions were done. For smaller inner loops it is always better
to remove unpredictable if statements by using branchless code patterns.
4. Use SSE2 instruction when available.
This gives 50% performance increase measured on a
Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz with GCC 9.3.
Also check other compilers.
Before:
```
performance_no_dvert_10000 (4 ms)
performance_no_dvert_100000 (30 ms)
performance_no_dvert_1000000 (268 ms)
performance_no_dvert_10000000 (2637 ms)
```
After:
```
performance_no_dvert_10000 (3 ms)
performance_no_dvert_100000 (21 ms)
performance_no_dvert_1000000 (180 ms)
performance_no_dvert_10000000 (1756 ms)
```
Reviewed By: Campbell Barton
Differential Revision: https://developer.blender.org/D9087
|
|
This looks like a optimizer bug where it makes wrong assumptions.
The code inside lib_id_delete:264 on rBafd13710b897cc1c11b
`for (id = last_remapped_id->next; id; id = id->next) {..}`
is not executed in release/relwithdebinfo builds.
This can be "fixed" by several ways:
- Adding a line that prints the `last_remapped_id->name` right before
the said for-loop starts.
- Turning off optimization for the whole function `id_delete`:
`#pragma clang optimize off/on` Ray Molenkamp
- Marking `last_remapped_id` volatile. Julian Eisel
- Marking `tagged_deleted_ids` volatile. But it adds a warning when
calling `BLI_addtail`: discards volatile qualifier. Discovered by
accident.
Fix T81077
Reviewed By: mont29
Maniphest Tasks: T81077
Differential Revision: https://developer.blender.org/D9315
|
|
Finaly managed to reproduce, we not only have to ensure pose data is up
to date for the override armature, but also for the reference linked
data.
|
|
More operators missing the mandatory undo flag...
|
|
Recursion happens in case when scene strip point to it's own scene
indirectly by using SEQ_SCENE_STRIPS option.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D9264
|
|
It is possible to create scene strips pointing to each other. This is
sanitized when rendering, but in dependency graph such setup will cause
infinite loop.
This patch fixes loop in dependency graph, but same problem exists in
audaspace
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D9262
|
|
Main DB and it's structs can point to different address after undoing.
In this case problem was that bmain was not updated. Same fix was
done for scene as well.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D9240
|
|
When using local area, all nodes need to build their constraints first
before activating them for simulation. THis ensures that nodes get their
structural constraints from the initial location of each symmetry pass.
Reviewed By: sergey
Maniphest Tasks: T81904
Differential Revision: https://developer.blender.org/D9303
|
|
A cell with winding number > 1 for the second operand was incorrectly
included in the output.
|
|
The previous fix forgot the case where there is an intermediate
edge and everything isn't in one plane.
Differential Revision: https://developer.blender.org/D9336
|
|
The versioning code to default to old booleans for old files was
faulty because really old files had a 'solver' field (later removed,
but then added back for new booleans).
|
|
We don't make use of it anyway.
|
|
This removes the escape color control caracters when the output
does not supports it (i.e: file output, windows cmd).
|
|
|
|
Found by valgrind, unclear if this caused an actual bug.
|
|
clipped geometry
Caused by rB7878adf49cff.
When getting the stroke location via raycast in ortho view, the above
commit flipped the condition of the check to perform adjustments on the
rays start/end. This would thus happen (even though it shouldnt),
resulting in wrong depth and stroke location.
Now just flip the condition back, so adjustments only happen when
clipping is OFF.
Maniphest Tasks: T81934
Differential Revision: https://developer.blender.org/D9318
|
|
- Add NULL check for BKE_lnor_spacearr_clear
- Remove unnecessary 'use_toolflags' with BMesh creation.
|
|
This regression was caused by rB57de5686048f which disabled srgb
transform after the python callback.
The right thing to do is to only rebind the framebuffer once to
reset the no-srgb override.
|
|
This was happening because the raytrace was not even being performed
due to the tracing line being too small after frustum clipping.
|
|
This was reintroduced by the wide line emulation workaround.
|
|
For objects with shared data, it makes sense to show the mode icon for
every object sharing the same data if one of them is in edit mode.
This also disables the "extend" functionality in this case, because
being in edit mode for multiple objects with the same data isn't
supported.
Differential Revision: https://developer.blender.org/D9273
|
|
Sphinx expects functions and methods with the same name and different
parameters to be written using one directive. See:
https://www.sphinx-doc.org/en/master/usage/restructuredtext/domains.html#basic-markup
Unfortunately this makes giving different descriptions for each harder.
This was already a request for better support for this in sphinx, see:
https://github.com/sphinx-doc/sphinx/issues/7787
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D9170
|
|
Move the checks for whether to draw the button to the beginning of the
function and return early. Also use a shorthand variable for ob_active.
Committing to 2.91 as a patch for an upcoming bug fix depends on these
changes.
Differential Revision: https://developer.blender.org/D9272
|
|
The solo mode was skipping the layer creation data and the loop of masks expect to have all layers in the array or the loop crash.
The solution is just create the layer array data for the layer, but don't draw any stroke.
|
|
Every label string in uiItem* calls needs an IFACE_ call.
|
|
The material index was not used and only worked with new objects.
|
|
All tools planned for 2.91 now have icons, so this option can be
removed.
Reviewed By: dfelinto, Severin
Differential Revision: https://developer.blender.org/D9299
|
|
`imb_gpu_get_data` could reuse `data_rect` when it was already in used (double alloc).
making the first use leak. This was detected after enabling OpenGL Texture
Limit.
Reviewed By: Clément Foucault
Differential Revision: https://developer.blender.org/D9280
|
|
Caused by ad70d4b0956f5, assigning the matrix now
clears the flag that would reset it.
|
|
Updates from 9d30fade3ea9b weren't applied to the animation player
causing an assert and missing call to IMB_init.
|
|
Selecting an F-Curve handle caused an assertion as well as treating
the key-frame as inactive.
Allow active the keyframe to be active when it's handle is selected,
as is done with bezier curves.
|
|
Missing NULL check in bmesh_kernel_vert_separate.
|
|
Regression in 0b2d1badecc48.
|
|
Also add docs to event and keymap item flag.
|
|
Follow up to d782bad62dc53373bb28811c0672da81924371d6
Also clear this for simulated events.
|
|
This was caused by unprotected drawing callbacks.
As of 2.91, we require that all python callbacks used for
drawing needs to be safeguarded by `GPU_bgl_end()` to end the
state tracking override.
|
|
This was caused by unprotected drawing callbacks.
From 2.91, we now require that all python callbacks used for
drawing needs to be safeguarded by `GPU_bgl_end()` to end the
state tracking override.
|
|
This avoid strange discrepency between the general purpose variant and
the specialized glass variant which did not have a way to turn
multi-scatter off.
|
|
The degenerate line workaround was ill defined.
|
|
Regression in 6f3a9031f7b93e7c687edde646beed9f02d920d4
Ref D9306
|
|
This patch helps the case of intricate reflections where the
ray does not travel far before intersecting the geometry.
In these cases there could be false negative exclusion of the ray
caused by the backface rejection threshold.
|
|
The artifact manifested as lines of different values caused by faillure to
trace the depth buffer correctly.
Adding a ad-hoc value to the step size to mitigate the issue.
|
|
Outliners listener (outliner_main_region_listener) needs ND_PARENT
notifier to redraw, the parenting operator only spawned ND_TRANSFORM
(which doesnt do a redraw).
Maniphest Tasks: T81896
Differential Revision: https://developer.blender.org/D9295
|
|
shapekeys/modifiers
This was failing for all mask filters (sharpen, grow, invert, clear,
shrink, contrast, smooth) and mask gestures (box, lasso).
Also have to recalc shading, use SCULPT_tag_update_overlays for this.
ref D8956
Maniphest Tasks: T81929
Differential Revision: https://developer.blender.org/D9302
|
|
Line gesture use always the right side of the line as active (the area
of the mesh that is going to be modified) by default.
This adds the ability to change the active side when the line gesture is
active by pressing the F key.
This allows more freedom to position the line after starting the
gestures, as it won't be required to cancel the operation or undo if the
line was used in the wrong direction.
Reviewed By: Severin
Differential Revision: https://developer.blender.org/D9301
|
|
|
|
The new preset I made for 2.91 is way more controllable with lower
strength values and does not have the accumulate bug, but until the
brush management is in place to ship multiple versions of the brush,
probably most people expect something closer to the old version to be
the default.
Reviewed By: sergey
Maniphest Tasks: T81901
Differential Revision: https://developer.blender.org/D9289
|
|
Swaps the order of the '+' and '-' button in the File Browser file name field,
so that '-' comes first.
For increasing or decreasing a value it makes more sense to have decreasing
first, increasing last. Consistent to how you press on the left side of a
number button for decrease, and right to increase.
However this is inconsistent in another way: Usually we have a '+' button
before a '-' button, but that refers to adding and removing items, not
increasing or decreasing. The icons are also placed in their own buttons then,
making them look more separate.
So the UI Team agreed on accepting that trade-off, see today's meeting notes:
https://devtalk.blender.org/t/2020-10-21-ui-team-upcoming/15849
|