Commit Graph

137115 Commits

Author SHA1 Message Date
Jeroen Bakker
af34a8a952 GPU: Fix GLSL compilation error on legacy NVIDIA drivers
Somehow the 16K inside a string is parsed as being an integer, leading
to error messages about the `K` suffix.

```
ERROR (gpu.shader): gpu_shader_icon_multi VertShader:
      |
    1 | #version 430
      |
      | Error: C0159: invalid char 'K' in integer constant suffix
```

Fixed by changing the 16K to the actual number.

Related to #122977 With this PR blender will start, but EEVEE will render pink.

Pull Request: https://projects.blender.org/blender/blender/pulls/123071
2024-06-11 14:07:57 +02:00
Jeroen Bakker
e1ee3ed7df Fix #123045: Accumulate Samples When Navigating
When navigating the samples were always reset. This was introduced
by 7ec59b05ffb0143b7d7a68b7989a1b48fd6bd1b8 where samples needed
to be reset when painting.

This PR solves it by separating the navigation and the painting more
clearly in the API. Also cleans up some calls that are also encapsulated
via the EEVEE Instance class.

Validated that painting and navigating still worked with these changes
applied.

Pull Request: https://projects.blender.org/blender/blender/pulls/123064
2024-06-11 14:07:26 +02:00
Jeroen Bakker
bb9e3df6d2 Fix #122766: Add missing Fast GI options to raytracing presets
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
2024-06-11 14:07:03 +02:00
Christoph Lendenfeld
973d33a278 Fix: Wire Width for bones not copied
When copying a bone, the new
option for wire width was not copied over.

Pull Request: https://projects.blender.org/blender/blender/pulls/123062
2024-06-11 12:37:57 +02:00
Christoph Lendenfeld
9c77598905 Fix: Remove redundant wording in parameter label
The new option on bones to control the wire width had a redundant part
of `Custom Shape`. Since the property is already within a section for
Custom Shape we can shorten the label.

Pull Request: https://projects.blender.org/blender/blender/pulls/123063
2024-06-11 12:02:04 +02:00
Aras Pranckevicius
57f1d11163 Fix: VSE strip shape is not rounded when dragging file into timeline area
Strips still have sharp corners when you're dragging them from file browser and
switch to rounded when dropped. Fix by using the same drawing code (and shader)
as regular timeline drawing path.

Pull Request: https://projects.blender.org/blender/blender/pulls/123013
2024-06-11 11:55:49 +02:00
Campbell Barton
12ff1ffe5b Extensions: remove add-ons which don't have a built-in upgrade opton
Previously these were shown as missing add-ons, since they have been
intentionally removed, remove them as part of versioning instead
of showing them as "Missing Add-ons". This is especially important
for X3D & STL which were enabled by default which meant any user
loading 4.1 preferences would have them shown as missing add-ons.
2024-06-11 19:53:38 +10:00
Campbell Barton
2e00df3ee2 Cleanup: spelling in comments 2024-06-11 19:21:56 +10:00
83311ef96d Fix #122777: The keyframe_insert method throws python exceptions
Just for the `pyrna_struct_keyframe_insert()` function, reduce the
reporting level of keyframe insertion failures from `RPT_ERROR` to
`RPT_WARNING`. This prevents the conversion of these reports to a Python
exception.

`CombinedKeyingResult::generate_reports()` now accepts an option
argument `report_level`, so that the caller is in control over the type
of reports it generates.

Previously only errors were converted to exceptions; warnings were
implicitly cleared and never displayed. To avoid these 'keyframe
insertion failure' reports from becoming invisible, the
`pyrna_struct_keyframe_insert()` function now sends any warnings to
stdout (unless there were errors, in which case the old
error-to-exception behaviour is still there).

Pull Request: https://projects.blender.org/blender/blender/pulls/122827
2024-06-11 11:11:16 +02:00
Omar Emara
b2a58bbdb4 Fix #123007: VSE scene strip crash with GPU compositor
Blender crashes when rendering a scene strip that references a scene
with a GPU compositor active. This is because when rendering a scene
strip, a new render with a nullptr system GPU context is created for the
scene it references, which is then used for compositing.

Ideally, the strip scene would have its own context, but we can't ensure
its context because we are not in the main thread. The alternative is to
then identify scenes that will be rendered before hand and set their
renders before starting the job, which doesn't seem like a great
solution. So for now, we just use the DST context in those cases.

Pull Request: https://projects.blender.org/blender/blender/pulls/123057
2024-06-11 11:02:15 +02:00
Clément Foucault
1882c2df94 EEVEE-Next: Add automatic convertion of Materials without Shadows
This add the cycles compatible way of disabling shadows
on materials using a node setup.

Pretty straight-forward and only done on EEVEE materials.
2024-06-11 10:33:55 +02:00
Clément Foucault
093997037f EEVEE-Next: Add forward compatibility for blend modes
This makes sure to set the legacy properties when setting
the render method and the use transparent flag.
EEVEE-legacy should be able to render these materials
without issues.
2024-06-11 10:33:55 +02:00
Campbell Barton
b46f6a4007 Extensions: add sub-modules that weren't being reloaded 2024-06-11 16:19:21 +10:00
Campbell Barton
a24add4a66 Extensions: support read-only system repositories
Local repositories no longer convert manifest files into a JSON file
(that matched the format of the remote repositories JSON data).
Instead the data is loaded directly from the manifest files.

This is necessary to support read-only "System" repositories.

Use a class to generalize loading from both data sources to simplify the
implementation which was previously inlined.

This fixes an error where stale data from the manifests was
sometimes used because the generated JSON was considered up to date.
2024-06-11 15:59:29 +10:00
Jeroen Bakker
7a8e04fcb1 Fix #122551: Metal displays black screen on ATI/Intel GPUs
When using Metal backend on ATI/Intel GPUs the stencil buffer doesn't
contain the correct information, skipping diffuse and glossy PBR components.

Failing behavior was introduced by e97e06ea2c298b4cf2fd906cf77d36d2da698cda
This PR works around this by reverting the code when using ATI/Intel GPUs.
The root cause is somewhere the combination of stencil export support, clear
operations and subpass.

**TODO**

- [ ] Validate that this fixes the ATI issue as well

Pull Request: https://projects.blender.org/blender/blender/pulls/122993
2024-06-11 07:58:03 +02:00
Aaron Carlisle
38df2148f5 Docs: Update rna manual references 2024-06-10 23:55:55 -04:00
Campbell Barton
714d5515a3 Unbreak extensions test 2024-06-11 13:38:04 +10:00
Hans Goudey
a0cf59c186 Fix #122770: Crash with "High Quality Normals" and loose edges/verts
Caused by a simple mistake in 84c4ddbbb9755cb0b3ce9acad384ac982b5f4fc3.
2024-06-10 22:33:15 -04:00
Damien Picard
739abf3031 Fix: UI: make statistics for Objects display 0 instead of (null)
Display "0" instead of "(null)" for object stats count when there are no objects.

Pull Request: https://projects.blender.org/blender/blender/pulls/123036
2024-06-10 23:38:35 +02:00
Clément Foucault
8a3979b034 EEVEE-Next: Display warning for world volume manual versioning
This adds a hint to what is the correct procedure.
2024-06-10 22:34:26 +02:00
Clément Foucault
3db4367374 EEVEE-Next: Disable shadows in legacy files
Having the sun extracted is mandatory to keep
the same look and avoid too much light
leaking compared to EEVEE-Legacy. But adding
shadows might create performance overhead and
change the result in a very different way.
So we disable shadows in older file.
2024-06-10 22:34:26 +02:00
Clément Foucault
e6ca5f00d5 EEVEE-Next: Rename lightprobe volume single sided to backface cull
This also modifies the RNA access path for consistency.
This was a long standing change that was oversighted.
2024-06-10 22:34:26 +02:00
Clément Foucault
d5ac372715 Fix: EEVEE-Next: Lightprobe display size unit
The unit was still a distance but it was changed to a factor.
2024-06-10 22:34:26 +02:00
Iliya Katueshenock
35ccb08590 Fix: Geometry Nodes: handle sheared matrices in mixing more gracefully
This fix of the assertion related with using `Combine Matrix` and `Sample UV` nodes in some simple cases.

Pull Request: https://projects.blender.org/blender/blender/pulls/122958
2024-06-10 21:26:47 +02:00
Brecht Van Lommel
27f467e028 Draw: Avoid hang when depsgraph update happens during draw
This should not happen and any failure here should be considered a bug.
But for end users better not to hang Blender, and to have a better
diagnostic for developers in bug reports.

Ref #82483

Pull Request: https://projects.blender.org/blender/blender/pulls/123023
2024-06-10 18:11:41 +02:00
Brecht Van Lommel
4f593b5710 Fix: Incorrect layout in vertex color shader node 2024-06-10 17:33:28 +02:00
Brecht Van Lommel
6cccbc8df9 Fix #82483: Random Cycles baking hangs with node editor open
CTX_data_ensure_evaluated_depsgraph should not be used in drawing code.
This triggered a depsgraph updated which in turn called
DRW_notify_view_update. This would bind the GPU context a second time
and hang due to recursive mutex calls.
2024-06-10 17:24:49 +02:00
Ray Molenkamp
28f7a467fa cmake: windows: only install fftw's dlls when available
These are no longer used in 4.2 and need not to be installed.
2024-06-10 09:17:11 -06:00
Julian Eisel
83edd748a2 Fix #120466: Crash when opening file with inactive asset browser
Issue wasn't directly related to material assets or the shader editor.

Simpler steps to reproduce:
- Open Asset Browser
- Change Asset Browser to different editor type
- Open new file (Ctrl+N)

The asset browser would remain in storage as inactive editor, including
pointers to the asset system. When opening a new file, the asset system
would get freed before the asset browser, which would then access
dangling pointers as part of its own freeing process.

Part of the issue is that `SpaceType.exit()` doesn't get called in this
case, which would remove the asset system references before the asset
system is freed. Will address this in a follow up in main, but best to
not depend on the `exit()` callback too much. Easy to do here.
2024-06-10 16:54:03 +02:00
Ray Molenkamp
a309b4c8d1 deps/win: Fix failing script_bundled_modules test in debug build
The resulting .pyd files for a debug build had wrong filenames.
MaterialX and OpenImageio used incorrect soabi tags, while usd
had a double _d_d postfix.

These changes should not affect linux+mac
2024-06-10 08:38:50 -06:00
Weizhen Huang
f9a75d1e40 Fix #122976: Cycles light linking broken for volumes with light tree
Light linking was never working correctly in volume segment with light
tree, because `sd->object` was not assigned, thus
`light_link_receiver_nee(kg, sd)` always returned `OBJECT_NONE`, causing
the light tree sample to fail. This problem was revealed by fdc2962beb
since now the same light is used for volume segment and volume.

Also ensure we don't sample position on the light if sampling from
volume segment is failed, by setting `emitter_id` to `EMITTER_NONE` in
such cases.

Pull Request: https://projects.blender.org/blender/blender/pulls/122999
2024-06-10 16:11:12 +02:00
Bastien Montagne
65f68fe7fe BPY IDProp tests: Add basic tests for 'UI data' system.
This are not complete by far, mainly here to illustrate the issue
reported in #122843 (mismatch returned value for 'enum' idprops).
2024-06-10 15:54:29 +02:00
3089ac97b1 Anim: add new keytype 'generated' styling to the Sequencer theme
Add the color for the new keytype 'generated' to the VSE theme settings
as well.

This includes the versioning code that loads the default from the scene.
Without this, the preference would be initialised to black.

Note that the 'Blender Light' theme does not have any colors for any of
the key types, so I also didn't add the 'generated' type there.

Pull Request: https://projects.blender.org/blender/blender/pulls/123005
2024-06-10 15:28:05 +02:00
Miguel Pozo
1ed2779abc Fix #122973: Subprocesses aren't closed if Blender crashes
Assigns all subprocesses to a job owned by the main Blender instance,
so they're closed when it ends.

Pull Request: https://projects.blender.org/blender/blender/pulls/123001
2024-06-10 15:27:14 +02:00
Campbell Barton
c3067dd62d Extensions: group refresh actions in the menu
- Rename "Check for Updates" to "Refresh Remote"
- Rename "Refresh All" to "Refresh Local"
2024-06-10 23:14:53 +10:00
Campbell Barton
c0754209ef Extensions: suppress warnings when repository directories don't exist
Re-calculating statistics for outdated packages printed exceptions
whenever the repository directory didn't exist.
2024-06-10 22:46:20 +10:00
Bastien Montagne
a799c84946 BPY IDProp tests: test matching results from subscription and path_resolve.
Add (partially disabled) systematic tests that for all IDProp types, the
returned value from direct idprop subscription and RNA-based
`path_resolve` return the same data.

NOTE: This does not work currently for 'composite' types (`IDP_ARRAY` and
`IDP_GROUP`).
2024-06-10 14:27:16 +02:00
Bastien Montagne
17332da834 Fix (unreported) path_resolve returns string instead of bytes for bytes idprops.
The following code in py console would return a python string object,
instead of the expected bytes one.

```python
value = b"Hello World"
key = "a"
C.object[key] = value
C.object[key]
>>> b"Hello World"
C.object.path_resolve('["%s"]' % key)
>>> "Hello World"
```

Now it will return a byte object as it should.

Found while investigating #122843 .
2024-06-10 14:27:04 +02:00
Campbell Barton
554b3c5bd9 Extensions: support custom-directory for system repositories
While this is reasonably obscure, not supporting this caused the UI
to be confusing and there is no strong reason not to support this.
2024-06-10 22:22:07 +10:00
Campbell Barton
0838e99979 Extensions: only show "use_cache" for remote repos
This option only makes sense for remote repos.
2024-06-10 22:22:05 +10:00
Campbell Barton
26bddd6c66 Fix error adding a repository when offline
Workaround the exception although other methods of syncing that
don't call the operator are worth investigating.
2024-06-10 21:39:19 +10:00
Campbell Barton
e0612b3c03 Fix undefined variable use when an extension repo has no remote data 2024-06-10 21:26:45 +10:00
Damien Picard
de139dd7e4 UI: Fix and improve a few messages
- "Show the result of running commands in the main interface...": add
  punctuation.
- "Re-Installed" -> "Reinstalled" seems more common.
- "increase_" and "decrease_subdivision" in the Grease Pencil
  modal...: use title case instead of snake case for label.
- "Use a automatic number..." -> "an", typo.
- "... points,{} splines": missing space.
- "End Frame is larger than Start Frame": wrong order in error message.
- "Approximate the object as sphere, which diameter is equal to
  thickness the defined...": grammar.
- "Show Seconds" -> "Use Timecode": this option is not necessarily about
  seconds. Suggested by Pablo Vasquez.
- Brightness and contrast node input descriptions: add missing spaces.
- "Gamma controls the relative intensity... full white.": remove
  trailing ".".

Pull Request: https://projects.blender.org/blender/blender/pulls/122972
2024-06-10 13:26:05 +02:00
Richard Antalik
6dfed3a021 Fix #122895: Frame change does not work in VSE mixed view
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
2024-06-10 13:20:03 +02:00
Bastien Montagne
a7f2bf4e7c I18N: Updated UI translations from git/weblate repository (94353db5576c7428b). 2024-06-10 12:24:07 +02:00
Sergey Sharybin
a2795852cd Fix ##122962: Regression: Backdrop update triggers crash
Pull Request: https://projects.blender.org/blender/blender/pulls/122991
2024-06-10 11:45:01 +02:00
Damien Picard
a5df83167e I18n: Fix add-on extraction
- The "location" and "warning" fields in bl_info are no longer exposed
  in the interface, so there is no need to extract them any more.

- Some add-ons do not define a description (Copy Global Transform for
  example), so they should be skipped.

- Some third-party legacy add-ons do not use the 'support' field, and
  that can cause an error in extraction. Since this won't happen
  for built-in add-ons, checking that an add-on is built-in is enough.

Pull Request: https://projects.blender.org/blender/blender/pulls/122970
2024-06-10 11:13:10 +02:00
Nathan Vegdahl
119f764eb9 Fix: Child Of constraint broken after removing target
Fixes #116567

The issue was with a flag that skips a particular post-evaluation step
specially for the Child Of constraint.  The flag wasn't getting properly
unset when the constraint target was removed, and therefore that
post-evaluation step was getting erroneously skipped in some cases.

This commit fixes the issue by always setting the flag appropriately in
the Child Of evaluation function itself.  This is admittedly rather
hacky, but no more hacky than the existence of the flag in the first
place.

Pull Request: https://projects.blender.org/blender/blender/pulls/122881
2024-06-10 10:32:40 +02:00
John Swenson
44641ac5c7 Fix: VSE snapping when both strip handles selected
This patch makes sure that when both left/right handles on a strip are
selected, they are given individal snap points in TransSeqSnapData.

Prior to this change, when both handles were selected, snapping only
worked on the left handle.

Pull Request: https://projects.blender.org/blender/blender/pulls/122931
2024-06-10 11:17:48 +03:00
John Swenson
b469dc04f9 Fix: VSE snap to hold offset is broken
Snapping to hold offsets was broken by 76043bc, this patch restores the
functionality by simply calculating the image data start/end points and
letting existing clamping code take over to make sure this snap target
does not exist outside of the bounds of the strip.

Pull Request: https://projects.blender.org/blender/blender/pulls/122934
2024-06-10 10:15:15 +02:00