Commit Graph

116816 Commits

Author SHA1 Message Date
Colin Basnett
abc46d5aeb Fix: Timeline marker names are not correctly clipped in some cases
Timeline marker names are now correctly clipped instead of messily
overlapping each other and being unreadable. This change affects all
the animation editors (graph editor, NLA, action editor etc.) as well
as the VSE.

This also makes a change to when text is elevated. In the previous
behavior, a marker's text would be elevated if it was selected or if
the current frame was <= 4 frames away from the marker. This seems
like a completely arbitrary thing (probably added in to alleviate text
overlapping for markers that the user would be interested in). This
patch changes the behavior such that the marker's text will be elevated
if it is either selected or it is the last marker encountered relative
to the current frame.
2022-08-02 20:59:44 -07:00
Chris Blackbourn
84b1607196 Cleanup: make format 2022-08-03 13:27:13 +12:00
Chris Blackbourn
68c1eb86a6 Fix unreported: Add tie-break conditions for udim search with integers
When searching for closest UDIM with integer co-ordinates, several UDIMs
can be equidistant. Previously, of all closest UDIMs, the one which was
earliest in the list would be used. Now, "half-open interval" rules are
used to break the tie.

Motivated by 0fcc04e7bf

Differential Revision: https://developer.blender.org/D15590
2022-08-03 13:20:54 +12:00
Hans Goudey
43918ec28d Geometry Nodes: Speed up reading attribute with different type
The virtual array created by the implicit conversions had a lot of
overhead when converting many values. Implement "materialize"
functions to avoid a virtual function call for every element.
This gave me a 20x improvement when copying the values
from a float attribute as a boolean, though I doubt there are
any real world situations where it's that noticible.
2022-08-02 19:23:13 -05:00
Chris Blackbourn
fc1a53eb7b Cleanup: Remove unused function uv_poly_copy_aspect 2022-08-03 09:51:55 +12:00
Chris Blackbourn
18377c4f5e UI: Improve circle drawing of cursor for uv sculpting
Calculate segments based on radius.

Differential Revision: https://developer.blender.org/D15591
2022-08-03 09:44:06 +12:00
Hans Goudey
8081a05015 Tests: Remove deprecated/removed operators from tests
44aa9e40ff
2022-08-02 16:26:38 -05:00
Clément Foucault
f4fe3fb09b EEVEE-Next: Depth Of Field: Port implementation to compute shader
This is a port of the previous implementation but using compute
shaders instead of using the raster pipeline for every steps.

Only the scatter passes is kept as a raster pass for obvious performance
reasons.

Many steps have been rewritten to take advantage of LDS which allows faster
and simpler downsampling and filtering for some passes.

A new stabilize phase has been separated from another setup pass in order
to improve it in the future with better stabilization.

The scatter pass shaders and pipeline also changed. We now use indirect
drawcall to draw quads using triangle strips primitives. This reduces
fragment shader invocation count & overdraw compared to a bounding
triangle. This also reduces the amount of vertex shader invocation
drastically to the bare minimum instead of having always 3 verts per
4 pixels (for each ground).
2022-08-02 21:53:17 +02:00
Clément Foucault
2ea4754109 EEVEE-Next: Cleanup: Remove static references for swapchains
Those are no longer necessary.
2022-08-02 21:53:17 +02:00
Clément Foucault
335dbccc33 EEVEE-Next: Fix GL errors when rendering with transparent materials
For now, we need to always bind the render pass images even if not used.
2022-08-02 21:53:17 +02:00
Clément Foucault
75dda90030 EEVEE: Depth of field: Fix incorrect variance occlusion
The change is likely not noticeable.
2022-08-02 21:53:17 +02:00
Clément Foucault
04d43e8dbb GL: Remove lingering image binds
This updates image bind tracking to be the same as texture binds.
Adding a new bind flag to avoid conflict when the texture is used in
both slots.
Fixes a gl error in glBindImageTextures about invalid image binds.
2022-08-02 21:53:17 +02:00
Clément Foucault
d629402054 GL: Compute: Fix indirect compute barrier and unbind
This path is not used by any existing code so it isn't necessary to
backport.
2022-08-02 21:53:17 +02:00
Clément Foucault
35762cea91 DRW: common_math_lib.glsl: Fix weighted_sum macro
This avoids issue when the macro is followed by another operator.
Example:
`float result = weighted_sum(a,b,c,d,w) * 5.0;`
2022-08-02 21:53:17 +02:00
Clément Foucault
8a0f804e2b DRW: Add image unbind in debug mode
This allows finding missing binds more easily as the missing binds slots
won't be populated with previous texture binds.
2022-08-02 21:53:17 +02:00
Clément Foucault
24a0015dbd DRW: Add DRW_shgroup_call_procedural_indirect()
Replaces `DRW_shgroup_call_procedural_triangles_indirect`.
This makes the indirect drawing more flexible.
Not all primitive types are supported but it is just a matter of adding
them.
2022-08-02 21:53:17 +02:00
Clément Foucault
9a52f1f720 DRW: Add DRW_shgroup_call_procedural_triangles_indirect
Just like the name suggest, this adds a way to draw a series of proceduraly
positioned triangles using and indirect buffer.
2022-08-02 21:53:17 +02:00
Clément Foucault
710609a2e0 DRW: GPU Wrapper: Fix invalid cached texture view when ensure() reallocs 2022-08-02 21:53:17 +02:00
Clément Foucault
22143b351f DRW: GPU wrapper: Make SwapChain renference work
This make using texture reference easier. But now, it makes it mandatory
for the wrapped type to implement the `swap()` static method.
2022-08-02 21:53:17 +02:00
Clément Foucault
04160ffd12 DRW: GPU wrappers: Expose more ease of use functions and cleanup style 2022-08-02 21:53:17 +02:00
Clément Foucault
1e5ab041d7 GPUBatch: Add GPU_batch_draw_indirect
This allows rendering a batch with parameters computed by the GPU.

Contains GL backend implementation.
2022-08-02 21:53:17 +02:00
Clément Foucault
7220619554 EEVEE-Next: Expose Motion blur shutter curve in render panel
It is now fully supported.
Also reorder panels to keep EEVEE-Next panels in the same ordered as
EEVEE's ones.
2022-08-02 21:53:17 +02:00
Hans Goudey
c5b361335a Cleanup: Simplify functions for adding and removing color attributes
The specific functions for vertex colors and and sculpt vertex colors
can be replaced by more generic attribute functions internally.
Also remove a paramter from one function.
2022-08-02 14:43:36 -05:00
Hans Goudey
44aa9e40ff Cleanup: Remove unused sculpt and vertex color operators
The "Color Attributes" system from f7bbc7cdbb has replaced
both "Sculpt Vertex Colors" and "Vertex Colors" in the UI. The Operators
for adding and removing them are unused now.

This commit does not break backwards compatibility with the Python
API, it only removes the operators, which generally aren't used by
addons anyway. The mesh RNA properties will be removed in 4.0 (T100153).

Differential Revision: https://developer.blender.org/D15077
2022-08-02 14:17:20 -05:00
Hans Goudey
a48e5c53a5 Cleanup: Simplify const cast in virtual array construction 2022-08-02 13:44:07 -05:00
Hans Goudey
2ba2efc296 Cleanup: Simplify arguments to sculpt draw functions
Instead of passing pointers to specific mesh data, rely on
retrieving that data from the mesh internally. This makes
it easier to support retrieving additional data from Mesh
(like active attribute names in D15101 or D15169). It also makes
the functions simpler conceptually, because they're drawing
a mesh with an acceleration strcture on top.

The BKE_id_attribute_copy_domains_temp call was unnecessary
because the GPU_pbvh_mesh_buffers_update function was only
called when Mesh/PBVH_FACES is used in the first place.

Differential Revision: https://developer.blender.org/D15197
2022-08-02 13:32:45 -05:00
Jörg Müller
e4fd2d5754 Fix T99812: Audio scrubbing freezes Blender 3.2.1
Bug was caused by a change in ffmpeg's API.
2022-08-02 20:17:46 +02:00
Aras Pranckevicius
5ddaf2fa7b Merge branch 'blender-v3.3-release' 2022-08-02 21:01:54 +03:00
Aras Pranckevicius
ead8260a49 Object: move collection resync after empty duplicate early-out
As pointed out in rB02b1a209be88 comment, the BKE_main_collection_sync
should be after "nothing to duplicate" early-out.
2022-08-02 21:01:25 +03:00
Sebastian Parborg
b010985e4a Fix T99255: Strips inserting incorrectly
When dropping file to sequencer timeline, coordinates for strip position
and overlap handling are used even if not set.

Reset internal state in on_drag_start callback and set is_modal
variable only if coordinates are updated. This way when dragging file
from external file browser, strip is added at current frame as before
modal operator was implemented.

Reviewed By: Richard Antalik

Differential Revision: http://developer.blender.org/D15333
2022-08-02 19:36:42 +02:00
Hans Goudey
2d4498e457 Merge branch 'blender-v3.3-release' 2022-08-02 11:11:20 -05:00
Hans Goudey
efe0e2b183 Fix T96810: Invalid sculpt normals after some operations
Mask and color brushes were using the existing PBVH vertex "update tag"
to mark their modifications. This was mostly unnecessary, and causes
unnecessary calculation of normals. It also caused errors though,
because they didn't tag the corresponding PBVH node for normal
recalculation, causing problems on the borders of nodes, since one
node might accumulate into another's vertex normals, but the other
node wouldn't also accumulate and normalize the normals.

The solution is to only use the update tag for tagging deformed
vertices that need recalculated normals. Everything else is handled at
the PBVH node level (which was already the case, but it wasn't clear).

The update tag was also used for undo to tag the nodes corresponding to
changed vertices. This was wrong though, because normals and visibility
would also be recalculated for just color or mask undo steps. Instead,
just use local arrays to map from vertices to nodes.

Differential Revision: https://developer.blender.org/D15581
2022-08-02 11:00:57 -05:00
Richard Antalik
ac9d9c993a Merge branch 'blender-v3.3-release' 2022-08-02 17:57:12 +02:00
Richard Antalik
97b226ac51 Fix T100049: Crash when render finishes
Caused by NULL dereference of `Editing` before NULL check was done.
2022-08-02 17:52:40 +02:00
Antonio Vazquez
09ac5f97a7 GPencil: Fix compiler warning
The variable can never be NULL and the comparison was wrong.
2022-08-02 17:03:33 +02:00
Hans Goudey
dadfdc8226 Merge branch 'blender-v3.3-release' 2022-08-02 09:51:08 -05:00
Hans Goudey
d3eef4d22a Fix: Use evaluated materials in OBJ exporter
Since 1a81d268a1, materials on object data can change during
evaluation. But a different function is necessary to retrieve materials
taking that into account.

Solves part of T96721.

Differential Revision: https://developer.blender.org/D15595
2022-08-02 09:49:51 -05:00
Pratik Borhade
074ce49de0 Automated testing: Add operators tests
Part of {T84999}
This patch adds test for
- `dissolve_limited`
- `dissolve_mode`
- `merge_normals`

Updated blend file:
{F13162744}

Reviewed By: zazizizou, mont29

Differential Revision: https://developer.blender.org/D15187
2022-08-02 16:43:42 +02:00
Bastien Montagne
84aa8b85a2 Merge branch 'blender-v3.3-release' 2022-08-02 15:07:54 +02:00
Bastien Montagne
e4dd644d6b LibOverride: Add 'editable/clear' toggle to ID template.
Now when an ID template is set to an override ID, `Shift-Click` on the
right button toggles between making it user-editable (if it's a system
override), or clearing any user edit and setting it back to system override.
2022-08-02 15:07:33 +02:00
Bastien Montagne
2a7e83ce18 LibOverride: Expose in public API the utils to get actual override data.
This is useful when input ID is a 'non-override' one (like embedded IDs
or shapekeys), to get override data and 'owner' ID pointer.
2022-08-02 15:07:33 +02:00
Sebastian Parborg
0830320a7c CMake: Check if freetype is compiled with brotli support
Because of the recent changes to our core fonts,
Freetype has to support Woff2 fonts or Blender will segfault on startup.

This adds an explicit check for this to inform people compiling Blender
about this requirement.
2022-08-02 14:50:38 +02:00
Sergey Sharybin
25a0124bc8 Fix T100119: Light object's parametric vector distorted in blender 3.4
Caused by 38af5b0501.

Adjust barycentric coordinates used for intersection result in the
ray-to-rectangle intersection check.

Differential Revision: https://developer.blender.org/D15592
2022-08-02 14:17:10 +02:00
Sergey Sharybin
588791df63 Fix compilation error after recent DNA changes
Apparently, Clang allows to specify underlying enum type in C
but onot GCC. The latter one is actually closer to the standard.
2022-08-02 14:15:53 +02:00
Jeroen Bakker
4e2af28bc7 Merge branch 'blender-v3.3-release' 2022-08-02 13:42:14 +02:00
Jeroen Bakker
78ad9ebed3 Fix T99715: Only force optimal display during on cage editing.
This loosens the current implementation a bit to only force optimal
display when editing on cage. It used to be any editing mode.

Brings GPU based subdivision closer to the CPU version.
2022-08-02 13:38:34 +02:00
Bastien Montagne
33e4ecc750 Merge branch 'blender-v3.3-release' 2022-08-02 12:55:29 +02:00
Bastien Montagne
33d0b7c5bd Fix T100133: Crash when linking an evaluated object to a collection.
Note that ideally, we should have a protection mechnism at global RNA
level, making e.g. any evaluated data read-only... But for now, give
better (and more consistent) protection for the collections' link/unlink
of children collections  and objects.
2022-08-02 12:54:08 +02:00
Amelie Fondevilla
fdf34666f0 Fix Unreported : add F-curves only filter to functions only appliable to F-curves channels.
The filter was missing in some places that are using channel data as if it was f-curve channel.
There seems to be no related issue or bug, but still it would be best to have them there.

Reviewed By: sybren

Differential Revision: http://developer.blender.org/D15505
2022-08-02 12:27:53 +02:00
Sergey Sharybin
bb7747e7ca Fix undefined behavior in dependency graph tagging
The tagging code was iterating over bits set in the ID_RECALC_ALL and
was casting the flag to IDRecalcFlag. This was triggering an undefined
behavior warning in Clang since the bit might not have a corresponding
value in the enumerator.

The solution is to pre-define all reacalc flags for all bits. While
this seems a bit annoying this seems to be the least fragile solution
from all suggested ones.

Differential Revision: https://developer.blender.org/D15602
2022-08-02 11:50:54 +02:00