Enable VK loader debug messages when running blender_debug_gpu_*
scripts.
Allows easier debugging for users not familiar with using terminal.
It won't log anything when using OpenGL.
Vulkan loading logging can be big (1000 lines) but gives a lot of insight
how vulkan and related applications are configured on the user system
Sadly it does contains actual paths but think it is OK as the user is still
responsible for uploading it in the tracker.
An example of a log has been attached.
See #135327.
Pull Request: https://projects.blender.org/blender/blender/pulls/135399
Add this operator to the dropdown menu to the right of the attribute list
for curves and point cloud geometries. For these geometry types the
operator can run in edit mode too, unlike meshes.
This commits fixes a type error issue when reporting that a addon was
designed for a version of Blender newer than the current one.
Thanks to @Rakete for the fix.
Ref: !135392
This was caused by the normals not being available (default to
`vec3(0)`) which produced `NaN`s down the line after the
unsafe normalize. Changing to `safe_normalize` fixes the issue.
Now ccl_device sets inlining and ccl_device_inline forces inlining.
This matches more closely with what is currently done for cuda and metal
backends.
I've measured from 1% to 6% overall performance improvement in rendering
benchmark scenes on Arc B580, as well as a small decrease in compile
time.
- Avoid redundant computaiton of curve type index masks
- Parallelize index buffer build (always add space for a cyclic segment)
- Avoid overhead of GPU index buffer "add vert" utilities
- Add utility for consistent order of point and handle data
- Make some variable names more consistent
- Avoid mixing multiple abstraction levels in the same function
Added entries for operators missing in the Curves edit mode context and
topbar menus as mentioned in #105253.
Ordered menu entries based on legacy and mesh menus but it's not
identical as the operator set is reduced. Prioritized keeping group
classification consistent between the menus when deriving the layout.
Pull Request: https://projects.blender.org/blender/blender/pulls/134935
threading::parallel_for implements its own check to avoid
threading when the data length is below the grain size, and
its overhead is lower anyway, since it doesn't use a function
call for every element.
Pull Request: https://projects.blender.org/blender/blender/pulls/135316
Part of #134755 / #134766.
Previously operators to create or remove previews would only work on the
active asset/data-block. From feedback this can be quite an
inconvenience, e.g. when curating asset libraries for sharing or
production environments.
This change makes it so the following operators (all available in the
asset browser side-bar) create or remove the preview on the whole
selection:
- Generate Preview (refresh icon)
- Generate Preview from Object
- Remove Preview
Loading preview images from disk doesn't support this yet.
Pull Request: https://projects.blender.org/blender/blender/pulls/135267
Add a new function `bke::animdata::prop_is_animated()` that returns
whether an RNA path + array index is animated by anything. This covers
the assigned Action, NLA Action strips, and drivers.
This function is now used in the determination whether the visibility
of a GreasePencil layer is animated.
The easiest way to implement this with the existing F-Curve-visiting
logic was to call `adt_apply_all_fcurves_cb()`. However, that function
did not allow the callback function to signal "stop looping, I found
what was I was looking for", so I extended it to do just that. I don't
expect the extra conditions to significantly slow down the other uses,
as the branch predictor will very likely optimise for the "returning
true" case for those calls that simply visit everything.
Pull Request: https://projects.blender.org/blender/blender/pulls/135317
The issue was that during playback, the evaluated Grease Pencil ID
is not being copied again for re-evaluation. This meant that the
adjustments get re-applied over and over again.
Ideally, we would restore the drawing pointers before modifiying them
again, but this is a bit trickier to implement.
To fix this issue for now, we do the layer adjustments during object
data evaluation. Using the geometry set for modifier evaluation
means that we copy the data and apply the adjustments for every
object.
In the future this can be optimized to only happen once per
Grease Pencil ID (in `BKE_grease_pencil_eval_geometry`).
Pull Request: https://projects.blender.org/blender/blender/pulls/135387
Replace `bNodeInstanceHash` with a `Map`. Move it to the node tree
runtime data. Simplify some code by removing the tag from the hash
value and collecting unused previews directly. Then just remove a
bunch of code that's now unused.
Note that texture node previews haven't been working for a while
anyway, and the experimental shader node previews seem to use
a different system (this one is a remnant of Blender Internal).
Pull Request: https://projects.blender.org/blender/blender/pulls/135310
If a user wants to expand the "bug fixes per release" script with
new classifications, it requires them searching for and expanding a few
lists spread through out the code.
This annoying for anyone not familiar with the code, so refactor these
lists out to the "Constants" section to make it easier to see and
expands.