Extract
- Cycles denoiser enum.
- Extensions user preferences UI.
- Node operator poll message from new node function.
Improve
- Split "(Enabled|Disabled) on startup, overriding the preference."
into two messages.
Disambiguate
- "Add" when describing the action of adding something should use the
Operator context.
- "Dimensions", in noise textures.
- "Transform" as a noun, the matrix transform type of Geometry Nodes,
as opposed to the verb to move things in space.
- "Parent" as a noun or verb (the parent of an object, to parent an
object to another).
Some issues reported by Satoshi Yamasaki, deathblood, and Gabriel Gazzán.
Pull Request: https://projects.blender.org/blender/blender/pulls/122969
This patch removes the Auto Render option from the compositor. This is
done for the following reason:
- The option didn't really work except in the case of transforming an
object. So it wasn't really reliable.
- It made little sense to use since the introduction of the Viewport
Compositor.
- It had a number of UX issues, including the fact that it can't be used
with animation playback, and the fact that rendering can get in the
way of the UI depending on the preferences for temporary editors.
Pull Request: https://projects.blender.org/blender/blender/pulls/123132
These messages are part of enum items not directly used by their
EnumProperty, because they are returned by a function. They cannot be
accessed in RNA at all times, and need to be extracted manually.
The UI has changed and fast GI options was moved to the raytracing
panel in the UI. When this was done they were not added to the
raytracing presets what adds confusion when adding the presets.
This PR adds the fast GI options to the presets.
Pull Request: https://projects.blender.org/blender/blender/pulls/123061
Add timeline version of tweak tool to timeline+preview mixed view.
This was removed in 8c53a18c48. Previously tools combined keymaps for
both preview and timeline, but in combined view preview operators were
disabled.
Pull Request: https://projects.blender.org/blender/blender/pulls/122992
All add-ons were being scanned at startup, while this didn't cause
errors it was noticeable with extensions where any errors in the
manifest were being reported at startup, even when running with
factory-startup (including blender's own tests).
Address two issues:
- The logic to "reset" add-ons, so as to match the preferences when
reverting or resetting preferences always ran on startup.
This occurred because a check for Python being initialized was
incorrectly used to detect that this wasn't the first time preferences
were being loaded (regression in [0]).
- Resetting add-ons scanned all add-ons (including disabled add-ons) to
ensure their module cache is up to date. Since this the cache is
lazily initialized, it's simpler to set it as uninitialized as
resetting the add-ons doesn't require the cached meta-data.
[0]: 497bc4d199
The following operations have been removed for system repositories:
- Installing from disk.
- Uninstall extensions.
- Delete files (when removing the repository).
Also change the operator to remove a repository so the option to
remove files is now a boolean instead of an enum. While a dynamic
enum can be made to work, this option is logically a boolean.
In Preferences / Themes you can add a new theme with a name that has
multiple words and the resulting file name will have spaces converted
to underscores. Unfortunately such multi-word themes will not pass the
poll function for saving and deletion. This PR just adds calls that
convert from the display name to file name in order for these to work.
Pull Request: https://projects.blender.org/blender/blender/pulls/122848
Using unified paint settings for the draw tools as multiple issues.
As an artist, it is expected that changing a draw brush will change
its settings. Sharing the radius between draw brushes only leads
to frustration of having to change the radius back and forth.
Instead, we don't use unified paint settings for the tools in draw
mode and always use the settings on the brush.
Resolves#122157.
Pull Request: https://projects.blender.org/blender/blender/pulls/122886
The buttons to upgrade or sync extensions called extension
operators via bpy.app.handlers, requiring awkward glue-code
which didn't show error reports in to the user.
Remove these operators and call the upgrade & sync operators directly.
Support for "System" extensions as an alternative to the current
"User" extensions repository.
The purpose of this change is to support bundling extensions for
offline work or in environments where users setting up thier own
extensions isn't desirable, see #122512.
Details:
The default "System" repository on Linux will for example use:
- `/usr/share/blender/4.2/extensions/{system}` For system installs.
- `./4.2/extensions/{system}` For portable installs.
- Blender's default startup now has a "System" repository
which users or administrators may populate.
- Repositories can select between User/System paths,
setting a custom path overrides overrides this setting.
- Add "BLENDER_SYSTEM_EXTENSIONS" (matching "BLENDER_LOCAL_EXTENSIONS").
Ref !122832
Changes in view3d_id_path_drop_copy from 8b6a21c122 assumed that
drag-drop filepaths was handled only with FileHandlers in View3d. This
adds the missing drop-box to FileHandler conversion for .vdb files.
Pull Request: https://projects.blender.org/blender/blender/pulls/122839
A few of the recently added submenus are not included in the list of builtin
menus, so node assets under those catalog names will generate redundant submenus.
Fixes same issue as b49c84276c for newly added nested menus.
Pull Request: https://projects.blender.org/blender/blender/pulls/122855
This PR changes the temporary viewers created in node groups by Connect to Output in two ways:
- Rename it, as it is currently called "tmp_viewer", which stands out
as strange and code-like. It is renamed to "(Viewer)", which can be
translated.
- Use the actual connected socket type.
Currently the viewer uses hardcoded socket types (Geometry for Geometry
Nodes, Shader for shader nodes). While in GN we can only connect
geometry to the output, in shader nodes other types can be inspected.
This change allows the tmp_viewer to use the type of the actual socket
being inspected, to have a better idea of what it contains from
outside the group.
It can be especially useful if a group is used in multiple materials
and different sockets are being previewed in each one.
It also does some cleanup, details in the commits.
Pull Request: https://projects.blender.org/blender/blender/pulls/122520
Since import images as mesh planes operator was added recently in core
Blender, it is now easy to also support converting image empties to mesh
planes by reusing the same code.
This results in a fast workflow where you can use Blender's drag & drop
& align feature for reference images, and quickly turn them into meshes
without registering second file handler and clicking anything before
import is finished.
Ref !122546
This is the first commit of the several required to support
subprocess-based parallel compilation on OpenGL.
This provides the base API and implementation, and exposes the max
subprocesses setting on the UI, but it's not used by any code yet.
More information and the rest of the code can be found in #121925.
This one includes:
- A new `GPU_shader_batch` API that allows requesting the compilation
of multiple shaders at once, allowing GPU backed to compile them in
parallel and asynchronously without blocking the Blender UI.
- A virtual `ShaderCompiler` class that backends can use to add their
own implementation.
- A `ShaderCompilerGeneric` class that implements synchronous/blocking
compilation of batches for backends that don't have their own
implementation yet.
- A `GLShaderCompiler` that supports parallel compilation using
subprocesses.
- A new `BLI_subprocess` API, including IPC (required for the
`GLShaderCompiler` implementation).
- The implementation of the subprocess program in
`GPU_compilation_subprocess`.
- A new `Max Shader Compilation Subprocesses` option in
`Preferences > System > Memory & Limits` to enable parallel shader
compilation and the max number of subprocesses to allocate (each
subprocess has a relatively high memory footprint).
Implementation Overview:
There's a single `GLShaderCompiler` shared by all OpenGL contexts.
This class stores a pool of up to `GCaps.max_parallel_compilations`
subprocesses that can be used for compilation.
Each subprocess has a shared memory pool used for sending the shader
source code from the main Blender process and for receiving the already
compiled shader binary from the subprocess. This is synchronized using
a series of shared semaphores.
The subprocesses maintain a shader cache on disk inside a
`BLENDER_SHADER_CACHE` folder at the OS temporary folder.
Shaders that fail to compile are tried to be compiled again locally for
proper error reports.
Hanged subprocesses are currently detected using a timeout of 30s.
Pull Request: https://projects.blender.org/blender/blender/pulls/122232