This editor's code was a bit schizophrenic, some parts considering its
nodetree usages as real refcounted ones, others, as shallow 'user one'
ones...
Editors should not be real ID users anyway, unless there are *very* good
reasons for it, so swich it to fully 'shallow' usage now.
While this should not happen, we still want to handle those errors
gracefully from user perspective (i.e. assert for devs, no crash for
users).
Actual fix of root cause of the issue will come later.
glAttributes also include `gl_` names. These don't have a location and
should be ignored during shader interface creation. Those internal names
received a location of -1 and therefore the bitmasking was undefined.
Users wouldn't notice this, but ASAN warned developers of this situation.
ASAN could quit making ASAN un-usable as most shaders have this issue.
Reviewed By: Clément Foucault`
Differential Revision: https://developer.blender.org/D7448
This goes along with the existing changes to ignore PYTHONPATH by default.
--python-use-system-env now controls both.
Differential Revision: https://developer.blender.org/D6962
This crashes with ASAN enabled.
```
==39366==ERROR: AddressSanitizer: memcpy-param-overlap: memory ranges [0x6230000ae848,0x6230000ae85a) and [0x6230000ae851, 0x6230000ae863) overlap
```
Node input buttons (e.g. in the material properties) used to draw their
icons on the right of the buttons. However since they represent inputs,
it makes more sense conceptually to have them on the left.
Further, we might want to add the usual decorator buttons (to control
keyframes or display other states) to the material properties as well.
Having two circle icons next to each other would be confusing.
Differential Revision: https://developer.blender.org/D7409
Reviewed by: Brecht Van Lommel, William Reynish
For buttons representing node inputs (e.g. in the material properties)
rather than drawing some generic socket icon, the actual sockets are
drawn now. That includes color, shape and the selection outline.
This should make it easier to understand what these buttons relate to.
Screenshots: {F8469252}, {F8469248} (The left alignment will be done in
a follow-up commit.)
Differential Revision: https://developer.blender.org/D7409
Reviewed by: Brecht Van Lommel, Clément Foucault, William Reynish
This color had it's alpha reduced in the drawing code,
as the active face is no longer stippled.
Now the color is used from the theme without adjusting the alpha.
We used to have a single buffer that was shared between strict and
unstrict draw calls. This leads to many recreation events for the draw
buffers. This patch separates the Unstrict draw buffer from the strict
draw buffer.
This improves performance on Windows Intel 10th gen platform.
On a reference platfor before the patch I got 10 FPS, after this patch
it became 34fps. Note that the same test normally on a low end GPU can
get to 60fps so this does not solve all teh bottlenecks yet.
Reviewed By: Clément Foucault
Differential Revision: https://developer.blender.org/D7421
When drawing the viewport to the screen the draw calls were not batched.
This resulted in measurable slowdown on Windows Intel 10th gen
platforms.
This patch would cache the last draw calls per viewport. Our API does
support partial redrawing of the viewport, but that isn't used anywhere.
This patch does not include stereoscopy rendering. This still uses the
imm approach and would still be slow on certain hardware.
Reviewed By: Clément Foucault
Differential Revision: https://developer.blender.org/D7357
The loop normal VBO is used in two manners. In edit mode to draw the
edge normals. And in paint mode to draw the wireframe. This commit
checks which VBO is needed and build the correct one.
This allows show the wireframe correct in paint mode, when the object is
subdivided.
Reviewed By: Clément Foucault
Differential Revision: https://developer.blender.org/D7419
When setting the number of cavity samples to a high number blender could
write out of bounds.
This patch will harmonize the number of iterations in the same way how
it is done during execution.
Reviewed By: Clément Foucault
Differential Revision: https://developer.blender.org/D7425
Also some minor improvements:
- Only run once per object data instance.
- Correction for mesh smooth flag being used on curves.
- Move curve operation into utility function.
The root cause is that viewport can draw cached version of themself but
the scene can have been updated and the pointed curvemapping could have
been freed.
To workaround this we just keep a copy of the curvemap at the viewport
level.
Currently the background of a panel is drawn on top of its subpanels
when it is dragged. The solution is to also "select" the subpanels so they
are drawn on top in UI_panels_draw.
Differential Revision: https://developer.blender.org/D7440
- Change the default cache method to replay
- Change the default resolution to 32 (The same as old smoke)
which have a speedup of about 4x (~4 FPS vs. ~16 FPS on initial
playback)
Peformance was tested with 3700x and RTX 2070
Differential Revision: https://developer.blender.org/D6853
Fixes T73799
Caused by rB2bf4c74130ff.
For undo, the ImageUser's scene should be NULL (see D7022 for
discussion).
PaintTiles were already doing it beforehand in ED_image_paint_tile_push,
but Image ops [scale/invert] are calling
ED_image_undo_push_begin_with_image directly.
Now actually set the UndoImageHandle iuser.scene to NULL (rather than
asserting)
ref T75675
Maniphest Tasks: T75675
Differential Revision: https://developer.blender.org/D7435
Introduced in 2011 in rB6a392e8cb505, it was disabled again soon after
in rBb062056c05a3 and traces to it partly removed in rB21744217cea9.
Now remove completely.
quote @sergey:
We shouldn't be having partially working unused code.
If we ever need some sort of update cache it would need to have clear
design first, and the code could be resurrected from history if needed.
Differential Revision: https://developer.blender.org/D7432
Basically this new tool constitutes a macro that uses the parameters of
the Extrude and Translate operators that were recently implemented.
Thanks to @CandleComet for initial implementation.
Differential Revision: https://developer.blender.org/D7222