Commit Graph

94350 Commits

Author SHA1 Message Date
b649fc13ed Cleanup: Avoid using invalid attribute domain
The number of attribute domains isn't an attribute domain, so storing
ATTR_DOMAIN_NUM in a variable with an eAttrDomain type isn't correct.
In the cases it was used, the value wouldn't be accessed anyway.
2022-08-23 10:44:10 -04:00
c32bb58e5b Depsgraph: use more fine grained update tags for scenes
Ref D15710, this avoids unnecessary sequencer updates for some operations.
2022-08-23 15:27:16 +02:00
a87d3edb98 Build: add system for shipping with dynamic libraries on Linux and macOS
PLATFORM_BUNDLED_LIBRARIES gathers shared libraries that will be installed
to the lib/ folder. The Blender executable gets a relative rpath pointing to
this folder as part of the install step.

The build rpath is different and uses absolute paths, so that it works for
executables like tests that are in different locations, and to support the
case where the build and install folders are different.

The system is already used for the OpenMP library on macOS. But on Linux it
will only kick in once we start using shared libraries for dependencies.

This also removes Mesa libraries from the old location, as these would cause
Blender to start with software OpenGL.

Ref T99618
2022-08-23 15:27:16 +02:00
afb74149c1 Cleanup: consistent variable names for install target directories 2022-08-23 15:27:16 +02:00
a77a1bcae7 Merge branch 'blender-v3.3-release' 2022-08-23 15:09:50 +02:00
efc9faef23 Fix T98954: Color management is very slow with sequencer sound
Function `rna_ColorManagement_update` tagged unnecesary updates.

Reviewed By: sergey, brecht

Differential Revision: https://developer.blender.org/D15710
2022-08-23 15:08:46 +02:00
21ea499558 Fix T100286: Crash accessing freed depsgraph object instances
Invalidate depsgraph.object_instances when freed, this resolves a crash
when accessing the object instances after iteration has finished.

Unlike most other collections, object_instances is only valid while the
iterator is in-memory.

The Python/RNA API needs to inline int/string collection lookups so the
Python instance can be created before the iterator ends.

Reviewed By: mont29, sergey

Ref D15755
2022-08-23 22:56:54 +10:00
ffb6cc263f Cleanup: format 2022-08-23 22:55:48 +10:00
Jeroen Bakker
37533cd6cb ImBuf: Optimize GPU memory by using 1 component format for grayscale images
This is done by checking the number of bitplanes from the image buffer.
We assume that for float buffer to use the same bitplanes as it was a
byte buffer.

Then, the data of the image buffer is packed at the start of the `rect` or
`float_rect` before upload.

**Statistics - einar.v004.blend **

Note that not all grayscale textures have been stored as BW images so the
amount of memory that can be reduced would be more.

Without patch
```
104 Textures - 3294.99 MB (3294.47 MB over 32x32), 37 RTs - 192.52 MB.
Avg. tex dimension: 2201.88x1253.51 (2283.53x2202.13 over 32x32)
464 Buffers - 25.01 MB total 1.24 MB IBs 23.50 MB VBs.
3512.52 MB - Grand total GPU buffer + texture load
```

Patch applied
```
104 Textures - 2917.66 MB (2917.14 MB over 32x32), 39 RTs - 215.45 MB.
Avg. tex dimension: 2221.38x1252.75 (2323.28x2253.47 over 32x32)
467 Buffers - 25.01 MB total 1.24 MB IBs 23.51 MB VBs.
3158.13 MB - Grand total GPU buffer + texture load.
```

Reviewed By: fclem

Differential Revision: https://developer.blender.org/D15484
2022-08-23 14:35:39 +02:00
13b2716e1c Merge branch 'blender-v3.3-release' 2022-08-23 14:25:18 +02:00
65870821da Fix: OBJ import unused parameter warning
Since {rB2542fda14d85}, `r_node` is an unused parameter.
Changed `load_texture_image` to reflect that.

Differential Revision: https://developer.blender.org/D15759
2022-08-23 14:22:23 +02:00
Philipp Oeser
0bc95b7b40 Compositor: handle NODE_DO_OUTPUT in RNA when setting a node active
Main motivation is from T54314 where there was no way to read from a
Viewer image datablock after setting another viewer node active.

Part of the problem was addressed in rB16d329da284c (where handlers for
the compositing background job were added so that you can act after the
compositor has run), however there was still the remaining issue that
setting another viewer node active would not properly tag the node
NODE_DO_OUTPUT. This forced users into a complicated workaround (using
switch nodes feeding into a single viewer node).

Now handle NODE_DO_OUTPUT properly in RNA, too, and do proper updates so
that behavior from RNA matches that of the Node Editor when setting a
viewer node active.

ref T54314.

Reviewed By: JacquesLucke

Maniphest Tasks: T54314

Differential Revision: https://developer.blender.org/D15203
2022-08-23 14:22:04 +02:00
60e2dfd1e8 Fix T99524: GPencil not updating when frame num is changed
When changing the frame_number of a grease pencil frame, the grease
pencil object is not updated correctly. The frame stays where it
previously was.

The fix adds a `property_update` callback to the `frame_number` RNA
property.

Maniphest Tasks: T99524

Reviewed By: antoniov

Differential Revision: https://developer.blender.org/D15394
2022-08-23 13:53:44 +02:00
511ff898da Merge branch 'blender-v3.3-release' 2022-08-23 12:40:58 +02:00
1663530408 Fix T100318: handle custom nodes in field inferencing more gracefully
Custom nodes are not supported, but it shouldn't crash here.
2022-08-23 12:40:26 +02:00
65c6886284 Merge branch 'blender-v3.3-release' 2022-08-23 11:55:57 +02:00
95464a842c Fix T99932: video in node group does not play 2022-08-23 11:54:51 +02:00
Damien Picard
4ac96a483b I18n: make workspaces translatable
This makes workspaces more translatable:
- New Workspace menu
  - header
  - preset menus
  - preset entries
- workspace names upon factory file template load
- new workspace name upon workspace addition

To properly translate those names, an extraction function for
workspace names from app templates was added as well.

(Do not do anything when loading a user-saved file!)

Reviewed By: mont29

Differential Revision: https://developer.blender.org/D15727
2022-08-23 11:54:34 +02:00
22fdb88be5 Merge branch 'blender-v3.3-release' 2022-08-23 11:19:08 +02:00
d269ad3535 Fix T100578: Surface Deform modifier displays wrong in editmode
This was the case when the "Show in Editmode" option was used and a
vertexgroup affected the areas.

Probably an oversight in {rBdeaff945d0b9}?, seems like deforming
modifiers always need to call `BKE_mesh_wrapper_ensure_mdata` in
`deformVertsEM` when a vertex group is used.

Maniphest Tasks: T100578

Differential Revision: https://developer.blender.org/D15756
2022-08-23 11:07:26 +02:00
c76d7f7bde Fix T99493: better syncing between Node Editor and Image Editor
Since {rBb0cb0a785475}, changing the active texture in the Node Editor
would also change the current image in the Image Editor.
While this was an overall improvement, this was not desired when the
image currently looked at was a `Render Result` or a `Viewer Node`
(artists usually want to keep focus on these).

With this patch, syncing the active texture change from the Node Editor
to the Image Editor will now only happen if the Image Editor's current
image is not a Render Result or a Viewer Node.

NOTE: Syncing the active paint slot to the Image Editor still happens
(even if the Image Editor's current image is not a Render Result or a
Viewer Node), behavior was not changed since this is a much more
explicit action while texture painting and probably desired in that
case.

Maniphest Tasks: T99493

Differential Revision: https://developer.blender.org/D15749
2022-08-23 11:07:08 +02:00
a3548667bc Merge branch 'blender-v3.3-release' 2022-08-23 10:58:00 +02:00
5d67b52441 Fix T100562: Realize Instances node crashes when there is an attribute name collision 2022-08-23 10:57:28 +02:00
56205e9f31 Fix T100579: internal links are drawn when sockets are hidden 2022-08-23 10:35:38 +02:00
6319dcb230 Fix: Missing compositor domain priority for filter nodes
Domain priorities were accidentally left out of the patches for the
filter nodes. This patch adds them appropriately.
2022-08-23 09:33:28 +02:00
655e9eabc3 Cleanup: Turn filter node methods into an Enum
This patch turns the filter node methods into an enum and renames the
members from FILT into FILTER for easier writing.
2022-08-23 09:24:25 +02:00
78061e6c3e Fix: Compositor results are fuzzy with bilinear filtering
The realtime compositor sometimes produces fuzzy results when the
interpolation is set to bilinear. This was due to the domain realization
shader, which incorrectly sampled the input image.

This patch fixes such fuzziness by introducing a 0.5 offset to evaluate
the sampler at the center of pixels. Additionally, it makes sure the
centring offset is an integer offset by taking its floor, retaining the
previous 0.5 offset even with the difference in size is odd.
2022-08-23 09:06:16 +02:00
35cc755366 Cleanup: simplify partition functions
- Assign return arguments last instead of manipulating them.
- Remove redundant NULL assignment of return arguments.
2022-08-23 12:48:06 +10:00
7694678025 Cleanup: remove unnecessary NULL check 2022-08-23 12:18:01 +10:00
ee60aa9d01 Cleanup: match names between functions & declarations 2022-08-23 11:05:50 +10:00
7f6cd405b9 Merge branch 'blender-v3.3-release' 2022-08-22 18:16:09 +02:00
4fecf652e2 Fix T100568: triangulate node resets vertices to rest position
The triangulate node is not supposed to take shape keys into account.
This was likely a mistake in rBabf30007abdac2a5bf3a1.
2022-08-22 18:15:33 +02:00
3345e8ed3c Merge branch 'blender-v3.3-release' 2022-08-22 16:31:53 +02:00
Iliya Katueshenock
5fff6c419c Fix T100258: wrong spline length used in Spline Parameter node
Differential Revision: https://developer.blender.org/D15705
2022-08-22 16:30:18 +02:00
500e4d540a Merge branch 'blender-v3.3-release'
Conflicts:
	release/scripts/startup/bl_ui/space_userpref.py
2022-08-22 15:44:44 +02:00
4ad471d67f I18n: systematically tag all messages in RNA_ENUM_ITEM_HEADING.
Add missing labels, and also add tooltips.

Unfortunately there is no way currently to extract two messages from a
single 'function' call, so unless those type of macros become very
widely used, would keep it as manual tagging.

Also disambiguate `case` in text context, pretty sure English is one of
the very rare languages to use this word for character case too.
2022-08-22 15:24:21 +02:00
Damien Picard
ee985fa925 I18n: disambiguate a few translations
- Keying (keyframe insertion)
- Roughness (particle children)
- New image, collection, text (in menus)
- Parents (particles)
- Wrap (text)
- Light (add menu)
- Empty (volume add menu)
- Empty (empty add menu)
- Cycles (f-curve modifier)
- Drag (workspace tool type)
- Power (light intensity)
- Power (math nodes)

This last change also moves all math operations in nodes to the
ID_nodetree context. It's needed only for some operations, but we
can't be more granular here.

Also...

- Fix context extraction for interpolation mode headers in F-Curves
  and GPencil interpolation operator
- Enable new translation: "Slot %d" in image editor
- Fix an English message in the node editor:
  "Replace the input image's alpha channels by..." -> channel

Ref. T43295

Reviewed By: mont29

Differential Revision: https://developer.blender.org/D15694
2022-08-22 14:33:07 +02:00
ba74704c9a Merge branch 'blender-v3.3-release' 2022-08-22 12:16:11 +02:00
c973d333da Fix T100527: Right click in the attribute name field crashes blender.
`UI_context_active_but_prop_get_templateID` became much more widely used
with recent rBfec254364884, which revealed that it did not do any check
on actual type of data it accesses, resulting easily in undefined
behavior.

Now also check the callback function pointer, this should be safe
enough.

Patch by @Severin (Julian Eisel), many thanks!
2022-08-22 12:15:50 +02:00
9e23ab9f37 Fix: Memory leak in realtime compositor
There was a memory leak in the GPU code generator for the compositor
output. It was just due to a missing free in the GPU code generator
destructor, so this patch makes sure it is freed.
2022-08-22 10:57:24 +02:00
79dfd2eb7b EEVEE-Next: Fix shader compilation error.
This fixes a compilation error in eevee_light_culling_debug shader.

Some compilers complained when accessing the same data twice. Unclear
why. We should investigate that this change doesn't harm the performance
of the shader.

Although the light is a local variable it might clutter available
registers. If so it will harm developers during debugging.
2022-08-22 10:44:46 +02:00
d966ce718b EEVEE-Next: Fix shader compilation error.
Due to a copy-paste error there was an out of bound read. Some drivers
didn't complain about it, others did. This patch fixes the compilation
error by accessing the array within bounds.
2022-08-22 10:36:38 +02:00
0aeae0d0b9 Revert "Fix T99259: Python API: ViewLayer.aovs.remove isn't available"
This reverts commit ae7909010f.
2022-08-22 08:40:36 +02:00
Mangal Kushwah
ae7909010f Fix T99259: Python API: ViewLayer.aovs.remove isn't available
Imeplemented **ViewLayer.aovs.remove** by Adding a new rna function to call the internal **BKE_view_layer_remove_aov**, removed assert from **BKE_view_layer_remove_aov**.

Reviewed By: jbakker

Maniphest Tasks: T99259

Differential Revision: https://developer.blender.org/D15341
2022-08-22 08:36:19 +02:00
9581be930b Cleanup: remove dead code 2022-08-22 12:42:23 +10:00
2a43c9bb08 Cleanup: move inline unit system search into a function
Improved readability and remove redundant NULL checks.
Also remove redundant assignment.
2022-08-22 12:42:23 +10:00
212a3a23df Merge branch 'blender-v3.3-release' 2022-08-22 12:14:09 +10:00
c9144f0cbb Fix potential undefined behavior printing a NULL pointer string
Improve messages when the font directory can't be detected or is missing.
2022-08-22 12:10:41 +10:00
b04514da5d Cleanup: match names between functions & declarations
Mostly update the declarations, in some cases rename in the function
especially when the names used were inconstant with related functions.
2022-08-22 11:20:40 +10:00
5bd1d63115 Cleanup: move model authors from the doc-string to the implementation
There is no need for details like this in API doc-strings.
2022-08-22 10:58:02 +10:00