Age | Commit message (Collapse) | Author |
|
Now that volume is a dedicated geometry type in Cycles, we need to re-allocate
the geometry when a mesh changes into a volume.
|
|
|
|
Account for custom normals for edit-mesh tools:
- Limited Dissolve
- Split
- Split (Edges/Vertices)
- Triangulate
|
|
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.
|
|
Add check for an image space type.
Ref D9347
|
|
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).
|
|
|
|
|
|
Don't allocate a new buffer for refitting meshes, but update the existing one.
It's not clear from the API docs if this is required, but it appears to solve
the issue and should be more efficient.
|
|
|
|
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
|
|
|
|
GPencil: Change Interpolate shortcut to Ctrl+E
Before the shortcut was Ctrl+Alt+E, but it's more logic remove the Alt.
This was missed in rBee49ce482a797a5937829de497abd69bcd1edb48
|
|
- 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
|
|
There was a weird bug in the API where a value of 0 gave a mask value of
1. I am not sure why this is but the current code works as desirable.
This was missed in rB6faa765af8954948de3cec75a2261a5aa139b4e5
|
|
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
|
|
Leftover from rBe05ce1ea2029, 'use_image_editor_legacy_drawing' was
removed.
Maniphest Tasks: T81953
Differential Revision: https://developer.blender.org/D9310
|
|
`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.
|