Commit Graph

94310 Commits

Author SHA1 Message Date
Jeroen Bakker
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
Jeroen Bakker
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
Jeroen Bakker
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
Campbell Barton
9581be930b Cleanup: remove dead code 2022-08-22 12:42:23 +10:00
Campbell Barton
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
Campbell Barton
212a3a23df Merge branch 'blender-v3.3-release' 2022-08-22 12:14:09 +10:00
Campbell Barton
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
Campbell Barton
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
Campbell Barton
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
Clément Foucault
a283e07e04 BLI: float4x4: Fix bug / typo in << operator 2022-08-21 12:45:10 +02:00
Leon Schittek
563404d8ad Fix T100430: Restore larger node socket snap hitbox
Restore old hitbox for connecting links to sockets.

Commit rBd9d97db018d2 improved the node socket snapping when nodes
are close together by decreasing the tolerance around the cursor when
checking for nodes in front, that might occlude the socket.
In doing so it also reduced the hitbox of the node socket itself that
extended outside of the node.

This commit restores the old node socket hitbox while keeping the
improved behavior when nodes are close together with the following
changes:
1) When looking for the socket under the cursor, iterate through the
nodes front to back, which prioritizes node sockets in the foreground.
2) Instead of checking for another node underneath the cursor it checks
if the socket is actually occluded by another node.

The way the occlusion test for sockets is tweaked you can now connect to
sockets that are only partially occluded, which is a bit more forgiving
than previously.

Reviewed By: Hans Goudey

Differential Revision: http://developer.blender.org/D15731
2022-08-21 10:20:17 +02:00
Leon Schittek
a0c28a8054 Fix T100430: Restore larger node socket snap hitbox
Restore old hitbox for connecting links to sockets.

Commit rBd9d97db018d2 improved the node socket snapping when nodes
are close together by decreasing the tolerance around the cursor when
checking for nodes in front, that might occlude the socket.
In doing so it also reduced the hitbox of the node socket itself that
extended outside of the node.

This commit restores the old node socket hitbox while keeping the
improved behavior when nodes are close together with the following
changes:
1) When looking for the socket under the cursor, iterate through the
nodes front to back, which prioritizes node sockets in the foreground.
2) Instead of checking for another node underneath the cursor it checks
if the socket is actually occluded by another node.

The way the occlusion test for sockets is tweaked you can now connect to
sockets that are only partially occluded, which is a bit more forgiving
than previously.

Reviewed By: Hans Goudey

Differential Revision: http://developer.blender.org/D15731
2022-08-21 10:12:50 +02:00
Harley Acheson
acf083a5bf BLF: Fix FT_Get_Advance Wrong Value Without Size
Fix possibility of getting invalid fixed-pitch advance size.

See D15735 for more details.

Differential Revision: https://developer.blender.org/D15735

Own Code.
2022-08-19 17:16:22 -07:00
Julian Eisel
c9a9967903 Outliner: Workaround for big performance issue in Library Overrides mode
When displaying the Hierarchies view of the Library Overrides display
mode in a specific Heist production file, Blender would become
unresponsive for about 30 seconds and every redraw in the Outliner would
lag noticably. Issue is that the sum of hierarchy elements is multiple
thousands, and that really brings the Outliner to its knees. I've looked
into some improvents and committed a few minor ones already, but it
seems it's really the big sum of elements causing the issue. There
doesn't appear to be a single bottle-neck.

To work around this, "lazy build" children, so that children of
collapsed elements are not actually created. This brings the tree
building down to some tens of miliseconds, and redrawing becomes
rather lag-free again, even with big parts of the tree un-collapsed.

Problem: Searching still needs to build the entire tree, so it's
essentially unusable right now. Should we disallow searching
altogether?
2022-08-19 22:22:40 +02:00
Julian Eisel
c2a6c3a4e2 Outliner: Refactor how lazy-building of children is done
Makes the lazy-building (where children are only built when the parent
isn't collapsed) more generic, so more display modes can use it. So far
this was hardcoded for the "Data API" display mode.

This will be used to work around a big performance issue with the
Library Overrides Hierachies view in a complex production file, see
following commit.
2022-08-19 22:22:25 +02:00
Julian Eisel
3a1ae5a02a Outliner: Workaround for big performance issue in Library Overrides mode
When displaying the Hierarchies view of the Library Overrides display
mode in a specific Heist production file, Blender would become
unresponsive for about 30 seconds and every redraw in the Outliner would
lag noticably. Issue is that the sum of hierarchy elements is multiple
thousands, and that really brings the Outliner to its knees. I've looked
into some improvents and committed a few minor ones already, but it
seems it's really the big sum of elements causing the issue. There
doesn't appear to be a single bottle-neck.

To work around this, "lazy build" children, so that children of
collapsed elements are not actually created. This brings the tree
building down to some tens of miliseconds, and redrawing becomes
rather lag-free again, even with big parts of the tree un-collapsed.

Problem: Searching still needs to build the entire tree, so it's
essentially unusable right now. Should we disallow searching
altogether?
2022-08-19 22:21:11 +02:00
Julian Eisel
231078441f Outliner: Refactor how lazy-building of children is done
Makes the lazy-building (where children are only built when the parent
isn't collapsed) more generic, so more display modes can use it. So far
this was hardcoded for the "Data API" display mode.

This will be used to work around a big performance issue with the
Library Overrides Hierachies view in a complex production file, see
following commit.
2022-08-19 22:21:10 +02:00
Julian Eisel
8115d31248 Outliner: (Refactor) Use C++ map instead of GHash
This container is type safe and contains a few nice optimizations,
although they shouldn't make a big difference here in practice. The
hashing now uses our default hashing method which reduces code
complexity and seems to perform slightly better in my tests.

For a Heist shot with a highly complex library overrides hierarchy in
the Outliner this reduces the tree building time from around 25 to 23.6
seconds here. However the main design change for performance is yet to
come, all this is just general code refactoring (which at least
shouldn't make performance worse).
2022-08-19 22:21:04 +02:00
Antonio Vazquez
6ef4267d5e Merge branch 'blender-v3.3-release' 2022-08-19 17:52:52 +02:00
Antonio Vazquez
be5c296e52 Fix T100502: GPencil Primitive apply offset when using Stroke mode
The offset was applied in stroke mode and this was wrong.
2022-08-19 17:52:12 +02:00
Brecht Van Lommel
78e0c936c1 Merge branch 'blender-v3.3-release' 2022-08-19 17:32:55 +02:00
Brecht Van Lommel
8f9b812d79 Fix build error on i386 due to wrong use of float_t
Was supposed to be float, likely copy paste error from int32_t.
2022-08-19 17:29:02 +02:00
Brecht Van Lommel
0c8749788c Fix build error on mips64el architecture
Same as D12194, name "mips" conflicts on such systems.
2022-08-19 17:28:51 +02:00
Loren Osborn
db46251209 Fix ubsan warnings about indexing into null pointers
Ref T99382

Differential Revision: https://developer.blender.org/D15390
2022-08-19 16:27:22 +02:00
Jacques Lucke
35a41a49a8 Merge branch 'blender-v3.3-release' 2022-08-19 16:25:41 +02:00
Jacques Lucke
1608406600 Fix: nurbs basis cache not computed before it is used 2022-08-19 16:24:24 +02:00
Omar Emara
d94aadf235 Fix: Crash when realtime compositor node is unlinked
The realtime compositor crashes when some nodes are unlinked.

This happens for GPU material nodes if it was compiled into its own
shader operation. Since it is unlinked, the shader operation will have
no inputs, a case that the current code didn't consider.

This patch fixes this by skipping code generation for inputs if no
inputs exist for the shader operation.
2022-08-19 15:03:14 +02:00
Campbell Barton
1eeb174e72 Cleanup: update comment about undo & smooth-view 2022-08-19 21:04:57 +10:00
Bastien Montagne
188f7585a1 Fix T100323: Outliner: Do not allow to delete objects from an override collection. 2022-08-19 12:42:52 +02:00
Campbell Barton
ab3e9c47d8 Merge branch 'blender-v3.3-release' 2022-08-19 16:24:51 +10:00
Campbell Barton
5c9bea25d0 Fix crash accessing PyEval_GetFrame from Python's crash handler
Check the thread-state before accessing PyEval_GetFrame, since this is
a crash handler, the state of the Python interpreter isn't known.
2022-08-19 16:23:29 +10:00
Campbell Barton
9855264c8d UI: increase range of font size for text editor & console
Useful when using different DPI & UI scales.
2022-08-19 15:54:24 +10:00
Campbell Barton
0322802314 Cleanup: minor changes to BLF API
- Use upper-case for defines.
- Use u-prefix for unsigned types.
- Use snake case for struct members.
- Use const struct for unicode_blocks & arguments.
- Use doxy style comments for struct members.
- Add doxy sections for recently added code.
- Correct code-comments (outdated references).
- Remove 'e' prefix from struct UnicodeBlock/FaceDetails
  (normally used for enums).
2022-08-19 14:46:45 +10:00
Campbell Barton
1a3bc09e89 Cleanup: spelling in comments 2022-08-19 13:49:13 +10:00
Campbell Barton
2a15040777 Merge branch 'blender-v3.3-release' 2022-08-19 13:46:37 +10:00
Campbell Barton
97f9015ed0 Cleanup: unused argument warning 2022-08-19 13:41:49 +10:00
Jesse Yurkovich
0491ba09c2 Cleanup: Remove data duplication from BLI_any.hh support variables
Use `inline constexpr` instead of `static constexpr` to prevent these
variables from being duplicated in each translation unit that includes
the BLI_any.hh header.

Differential Revision: https://developer.blender.org/D15698
2022-08-18 19:40:46 -07:00
Chris Blackbourn
cd516d76b6 Cleanup: replace uint cd_loop_uv_offset with int
See https://wiki.blender.org/wiki/Style_Guide/C_Cpp#Integer_Types
2022-08-19 14:19:13 +12:00
Chris Blackbourn
e80a9d2645 Cleanup: lint, unused_vars 2022-08-19 13:44:55 +12:00
Chris Blackbourn
a5c696a0c2 UV: respect uv selection for smart uv, cube, sphere and cylinder projection
Differential Revision: https://developer.blender.org/D15711
2022-08-19 13:35:03 +12:00
Campbell Barton
529f0427fc Cleanup: spelling in comments 2022-08-19 11:29:32 +10:00
Chris Blackbourn
aa82f91c92 Cleanup: uvedit_*_select, replace BMEditMesh* with BMesh*
Change `cd_loop_uv_offset` from signed to unsigned, forcing
a crash if passed invalid input.

Differential Revision: https://developer.blender.org/D15722
2022-08-19 13:00:48 +12:00
Campbell Barton
4f8c15daf4 Fix logical errors in RNA_path_array_index_token_find
This function never succeeded as an off by one error checking the last
character always indexed the null byte.
The 'for' loop was broken as of [0] since the unsigned number could wrap
around with some RNA paths causing out of bounds memory access.

This is an example where tests would have caught the problem early on,
RNA path tests are planned as part of D15558.

[0]: 11b4d0a3c3
2022-08-19 10:54:45 +10:00
Germano Cavalcante
f5aac6662d Fix GPUShader.format_calc documentation
`format_calc` instead of `calc_format`.
2022-08-18 20:03:07 -03:00
Harley Acheson
d772e11b5a BLF: Gamma Correction
Gamma correction for glyph coverage values.

See D13376 for details and examples.

Differential Revision: https://developer.blender.org/D13376

Reviewed by Julian Eisel
2022-08-18 12:34:23 -07:00
Julian Eisel
9707080a9d Cleanup: Remove unused outliner function
This is unused, and I don't see a need for it.
2022-08-18 21:14:54 +02:00
Julian Eisel
d2255aa4ed Outliner: Refactor outliner tree-hash interfaces with C++
- Turn storage into an object with "automatic" memory management (RAII)
  so freeing is implicit and reliable.
- Turn functions into member functions, to have the data and its
  functions close together with controlled access that increases
  encapsulation and hiding implementation details.
- Use references to indicate null is not an expected value.
- Related minor cleanup (comments, use const etc.)

Couldn't spot any changes in performance.
2022-08-18 20:22:55 +02:00
Julian Eisel
75cca8360f Outliner: Add commented out benchmarking calls for tree rebuilding
This way you can benchmark the tree rebuilding by simply commenting out
a single line. Not that it was difficult before, but this makes it as
easy as it gets, with basically no knowledge of existing benchmarking
tools required.
2022-08-18 20:22:55 +02:00
Julian Eisel
de794adc0c Outliner: Use C++ container for tree hash element storage
Simplifies code quite a bit, since this was doing the typical work of
such a container. I may remove this vector entirely as I'm working on
performance fixes, not sure, but simplifying this helps reason about the
design.

Couldn't spot performance differences in some benchmarks, and I wouldn't
expect any. Maybe some minor onces thanks to the small buffer
optimization of `blender::Vector`.
2022-08-18 20:22:55 +02:00