Commit Graph

121930 Commits

Author SHA1 Message Date
Bastien Montagne
ec6e7d97ca Fix OSX implementation of BLI_current_working_dir and improve tests.
While some implementations of `getcwd` may return an allocated string
instead of the given char buffer in some cases, this is not the expected
behavior of the BLI wrapper. Not to mention the danger of returning a
pointer to a static char buffer...

Improve `ChangeWorkingDirectoryTest` to be more 'full check' regarding
behavior of both `BLI_current_working_dir` and `BLI_change_working_dir`.
Also move call to `BLI_threadapi_init` into proper `SetUp` method (to
have correct symmetry with the call to `BLI_threadapi_exit` in the
`TearDown` one).

Based on investigation by Charles Wardlaw (@CharlesWardlaw).

Pull Request #105220
2023-02-26 15:52:19 +01:00
Chris Blackbourn
86ceb6722f Cleanup: format 2023-02-26 11:55:22 +13:00
Clément Foucault
52ded6ab56 GPUTexture: Make sure all available texture format are supported
This remove default casses from the `switch` statements to catch where
the missing cases are.

Uncomment unimplemented cases for the sake of completeness. Improving the
overall API.

This make the format conversion lists exhaustive and documented.

This replace `validate_data_format_mtl` by the common version as they
don't differ at all now.
2023-02-25 21:47:00 +01:00
Jesse Yurkovich
5b2b114a2a Fix #105198: Ensure Frame and Reroute nodes are searchable
Set the new `gather_add_node_search_ops` member for these two special
node types.

Pull Request #105201
2023-02-25 21:32:23 +01:00
Pratik Borhade
7eef746270 Merge branch 'blender-v3.5-release' 2023-02-25 23:13:05 +05:30
Pratik Borhade
f9bcd8c7e8 Fix #104992: Crash on calling operation search in outliner
After 7eda9d8dda, crash occurs when operation search is called and no
active tree element is present. Add missing null check in new poll
function to fix the crash.

Pull Request #105004
2023-02-25 18:36:24 +01:00
Clément Foucault
afb6336857 Workbench: Remove unecessary GPU_TEXTURE_USAGE_ATTACHMENT flag
The dummy 3D textures are read only and never used as framebuffer targets.
2023-02-25 13:13:21 +01:00
Clément Foucault
9fb1f32f06 Cleanup: GPUTexture: Remove _ex suffix from texture creation
It isn't relevant anymore now that usage flags are mandatory.

Pull Request #105197
2023-02-25 11:39:54 +01:00
Clément Foucault
3d6578b33e GPUTexture: Add texture usage flag to all texture creation
All usages are currently placeholder GPU_TEXTURE_USAGE_GENERAL.
2023-02-25 11:39:53 +01:00
Clément Foucault
e01b140fb2 GPUTexture: Remove data_format from 3D texture creation function
For every other texture types this is expected to be implicitly
`GPU_DATA_FLOAT`. There is only one case where this is not the case.

I believe this was previously needed because the data type was
conditionning the texture creation. This is not the case anymore.
2023-02-25 11:39:53 +01:00
Clément Foucault
75e3371aef GPUTexture: Remove obsolete GPU_texture_bind_ex argument set_number
This was previously used when the binding number wasn't always stored
inside the texture itself.
2023-02-25 11:39:53 +01:00
Clément Foucault
73da5ee90d Cleanup: GPUTexture: Rename some functions with more descriptive names
List of renames:
GPU_texture_generate_mipmap > GPU_texture_update_mipmap_chain
GPU_texture_orig_width > GPU_texture_original_width
GPU_texture_orig_height > GPU_texture_original_height
GPU_texture_orig_size_set > GPU_texture_original_size_set
GPU_texture_format_description > GPU_texture_format_name
GPU_texture_array > GPU_texture_is_array
GPU_texture_cube > GPU_texture_is_cube
GPU_texture_depth > GPU_texture_has_depth_format
GPU_texture_stencil > GPU_texture_has_stencil_format
GPU_texture_integer > GPU_texture_has_integer_format
2023-02-25 11:39:53 +01:00
Clément Foucault
584e514561 Cleanup: GPUTexture: Improve function parameters name 2023-02-25 11:39:53 +01:00
Clément Foucault
7974557f0b GPUTexture: Add header documentation and reorganize sections 2023-02-25 11:39:53 +01:00
Weizhen Huang
6166dac3ee Gizmo: support scaling of light gizmos with zero size
Zero-sized gizmos were not shown because GPU does not draw filled
triangles with zero area. This problem is resolved by drawing lines or
points in these degenerated cases.
Scaling is supported via computing the original and the new size, then
treat the case with zero original size separately, instead of only
computing the scale itself.
Actually applies to all `cage2d` gizmos, but not compatible when
translate flag is set.
2023-02-24 22:54:24 +01:00
Joseph Eagar
0f09678036 Merge branch 'blender-v3.5-release' 2023-02-24 11:47:39 -08:00
Joseph Eagar
01d4c8462d Fix #104006 Sculpt box/lasso trim projection errors 2023-02-24 11:46:29 -08:00
Joseph Eagar
a843a9c9bb Sculpt: Add trim orientation to sculpt box trim UI 2023-02-24 11:28:23 -08:00
Joseph Eagar
6cd9604a91 Merge branch 'blender-v3.5-release' 2023-02-24 11:10:56 -08:00
Joseph Eagar
c517e4a501 Fix #104803: Fix broken deprecated vertex color RNA APIs
Fixed:
* mesh.vertex_colors.active
* mesh.vertex_colors.active_index
* MeshLoopColorLayer.active
* MeshLoopColorLayer.active_render
* MeshVertColorLayer.active
* MeshVertColorLayer.active_render
2023-02-24 11:07:53 -08:00
Pratik Borhade
e3538546f2 Merge branch 'blender-v3.5-release' 2023-02-24 22:36:18 +05:30
Pratik Borhade
b789980e27 Fix #105009: Restore GPencil layer drawing in dopesheet
After 49ad91b5ab, an extra visibility
toggle is being drawn for grease pencil layer in dopesheet. In this PR,
a condition is added to skip drawing of visibility toggle for GPencil
layer. Also, Grease pencil does not support pinning so restore the offset
added to channel for drawing the pin icon.

Pull Request #105080
2023-02-24 18:02:35 +01:00
Michael Jones
82ff277528 Fix #100066: Cycles hangs when MSL->AIR compilation fails
This fixes [#100066](https://projects.blender.org/blender/blender/issues/100066) by failing hard when front-end MSL->AIR compilation errors are encountered.

Pull Request #105122
2023-02-24 17:55:27 +01:00
Michael Jones
626c233dd2 Fix #104087: Cycles crashes (Metal / AMD)
This is a workaround for [issue #104087](https://projects.blender.org/blender/blender/issues/104087). We encounter crashes when using shader binary archives on AMD, so this disables them while we investigate a proper fix. Kernels will still be cached automatically by the OS file system cache. This cache may occasionally be purged due to external factors, in which case kernels will get compiled again.

Pull Request #105186
2023-02-24 17:52:35 +01:00
Sergey Sharybin
12cc3ccd72 Merge branch 'blender-v3.5-release' 2023-02-24 17:09:29 +01:00
Sergey Sharybin
f30c395a7c Fix make_update switching branches with multiple upstreams
If repository has multiple remotes with the same name of branch
checking out to the branch using simple `git checkout branch` exists
with an error: this is because there is ambiguity w.r.t which remote
to track.

Now the code explicitly provides remote to track, preferring to use
"origin" first (which is to be used for Blender style of workflow,
and Github style workflow when there is a fork available), and use
"upstream" if there is no origin.

Pull Request #105176
2023-02-24 17:08:46 +01:00
Jacques Lucke
be94fefeb1 Merge branch 'blender-v3.5-release' 2023-02-24 16:43:17 +01:00
Jacques Lucke
2c5434c3f5 Fix: crash in Spline Parameter node with single-point-curves
This was caught by our tests when they are run in a debug build with asserts.
2023-02-24 16:42:02 +01:00
Miguel Pozo
45bbee340e Cleanup: Draw Manager: Update outdated comment 2023-02-24 16:30:10 +01:00
Jacques Lucke
30efdbfc62 Merge branch 'blender-v3.5-release' 2023-02-24 16:27:26 +01:00
Jacques Lucke
3d10dfb0a3 Fix #105166: Sample UV Surface node does not take index mask into account
The `call` method was reading from and writing to memory that it was
not supposed to access based on the passed in `mask`.
2023-02-24 16:26:07 +01:00
Sergey Sharybin
3e0a1cafa7 Merge branch 'blender-v3.5-release' 2023-02-24 15:53:18 +01:00
Sergey Sharybin
9b70039014 Fix paths in the auto-formatting tools
Those got missed in the submodule change commit.

Pull Request #105178
2023-02-24 15:52:34 +01:00
Philipp Oeser
d5e45c8b92 Merge branch 'blender-v3.5-release' 2023-02-24 13:20:39 +01:00
Philipp Oeser
b8359ede7d Fix #105168: Entering vertexpaint creates a non-default color attribute
Caused by 6514bb05ea

The new attribute was set active, but not default (camera icon).
Now set it default as well.

Pull Request #105169
2023-02-24 13:19:10 +01:00
Damien Picard
ac93598dd1 Fix #105011: Cannot remove user preset when its name is translated
The preset names were translated before building the UI. This meant
that the translated name was passed to the operator responsible for
deleting the preset file, instead of the original name.

Pull Request #105155
2023-02-24 03:39:08 -08:00
Damien Picard
47d4ec5aef Fix #105011: Cannot remove user preset when its name is translated
The preset names were translated before building the UI. This meant
that the translated name was passed to the operator responsible for
deleting the preset file, instead of the original name.

Pull Request #105155
2023-02-24 12:00:19 +01:00
Joseph Eagar
718f78cfca Sculpt: Fix #104618 (again).
SculptAttributeParams.stroke_only wasn't being
    applied to existing attributes properly.
2023-02-24 00:04:50 -08:00
Joseph Eagar
cb7d450de6 Sculpt: Fix 104618: Topology automasking errors
Sculpt island tags are now invalidated whenever the PBVH
    is rebuilt.
2023-02-24 00:04:03 -08:00
Joseph Eagar
0534fff5ab Sculpt: fix 104174, clicking over empty space always pushes undo.
This was actually caused by two problems.  The first is that the
    code actually deliberately detects if nothing happened and pushed
    an undo step, a bugfix for a problem that no longer exists.

    The second was that SCULPT_test_location sometimes does a closest
    point search instead of ray casting and didn't check the result
    against the brush radius.
2023-02-24 00:01:41 -08:00
Joseph Eagar
e9bb3510a1 Sculpt: Fix #104475, data transfer not respecting vgroup for float colors
This might've been a merge error, the result of color mixing
    was being overwritten by a simple copy of source to destination
    inside of layerCopyValue_propcol.
2023-02-24 00:00:22 -08:00
Hans Goudey
2491cd5e16 Cleanup: Move two subdiv headers to C++ 2023-02-23 18:30:47 -05:00
Harley Acheson
cfb112edcb UI: Widen Search Boxes When Necessary
Make floating search boxes wider when there is a linked scene or are
otherwise showing more information than a simple list.

Pull Request #104603
2023-02-24 00:07:16 +01:00
Harley Acheson
470e8ce1f4 BLF: Revert Glyph Clipping Changes
Revert #104679. We are just too used to the old behavior, especially
the incorrect vertical clipping. Some uses rely on setting the min and
max of the clipping rect the same. Will have to revisit this later
to only correct for horizontal positioning for full hinting.

Pull Request #105157

Own Code.
2023-02-23 23:44:17 +01:00
Hans Goudey
1b72712283 Fix: Global buffer overflow of enum property items on startup
RNA enum items arrays need to end with a null entry.
2023-02-23 15:53:10 -05:00
Hans Goudey
5b1f94f05a Fix: Use of uninitialized mesh size variables after recent cleanup 2023-02-23 15:52:42 -05:00
Hans Goudey
c065e8dd7f Merge branch 'blender-v3.5-release' 2023-02-23 15:31:29 -05:00
Hans Goudey
f9f29eefc7 Fix #105150: Mesh.vertex_colors.new() returns existing active layer
In 6514bb05ea I misinterpreted the function's intended
behavior when there was already an existing active layer. The data from
the active layer is just meat to be copied, the function should always
add a new attribute.
2023-02-23 15:30:27 -05:00
Hans Goudey
2bd097a58d Fix: Debug build failure and warnings after recent cleanup commit 2023-02-23 13:21:24 -05:00
Germano Cavalcante
4369627e71 Mesh: replace 'BKE_mesh_merge_verts' algorithm
Blender currently has 2 algorithms for merging vertices:
- `BKE_mesh_merge_verts`;
- `blender::geometry::create_merged_mesh`

`BKE_mesh_merge_verts` has a simplified algorithm to work with Array,
Mirror and Screw modifiers. It doesn't support merge results that would
create new faces. However it has shortcuts to be more efficient in
these modifiers.

`blender::geometry::create_merged_mesh` tries to predict all possible
outcomes. So it's a more complex. But it loses in performance to
`BKE_mesh_merge_verts` in some cases.

The performance comparison between these two depends on many factors.
`blender::geometry::create_merged_mesh` works with a context that has
only the affected geometry. Thus a smaller region of the mesh is read
for duplicate checking. Therefore, the smaller the affected geometry,
the more efficient the operation.

By my tests `blender::geometry::create_merged_mesh` beats
`BKE_mesh_merge_verts` when less than 20% of the geometry is affected
in worst case `MESH_MERGE_VERTS_DUMP_IF_EQUAL` or 17% in case of
`MESH_MERGE_VERTS_DUMP_IF_MAPPED` .

For cases where the entire geometry is affected, a 30% loss was noticed,
largely due to the creation of a context that represents the entire mesh.

Co-authored-by: Germano Cavalcante <germano.costa@ig.com.br>
Pull Request #105136
2023-02-23 19:10:01 +01:00