WIP: Fix #103978 Python: Add deprecation warnings to GPUBatch program usage #105174

Closed
Prakhar-Singh-Chouhan wants to merge 184 commits from (deleted):main into blender-v3.5-release

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
Contributor

Tried to Fix Error #103978

  1. Raised a deprecation warning if "gpu.types.GPUBatch.draw#program" is called without any parameters.
  2. Raised a deprecation warning whenever "gpu.types.GPUBatch.program_set" is called.

If someone could verify that the suggested modifications are implemented properly

Tried to Fix Error #103978 1. Raised a deprecation warning if "gpu.types.GPUBatch.draw#program" is called without any parameters. 2. Raised a deprecation warning whenever "gpu.types.GPUBatch.program_set" is called. If someone could verify that the suggested modifications are implemented properly
Prakhar-Singh-Chouhan added 183 commits 2023-02-24 15:29:52 +01:00
Release cycle: Bump version to 3.6.
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
d5d48a986b
This reverts commit 904b7e4e41.
Revert "Splash screen for Blender 3.5"
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
d8112ec1ea
This reverts commit a0b4da2bd0.
Type was forward declared as class, but is a struct. GCC is quiet about this
Clang gives a warning about potential linker errors on MSVC.
Cleanup: delete .arcconfig
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
0b63136e63
Now that https://developer.blender.org/ has been decommissioned, arcconfig is no longer needed.

Pull Request #104768
Since the menu doesn't automatically align the labels like other menus
and pulldowns in Blender, I manually made them align using the blank
icon. However the menu button would also include this blank icon now.

This is a specific fix for the 3.5 release. In the main branch I will
replace it with proper support for automatically aligning labels in such
menus.
Usually in Blender, we try to align the labels of items within a menu,
if necessary by adding a blank icon for padding. This wasn't done for
menus generated from enum properties (RNA or custom property enums). Now
we do it whenever there is at least one item with an icon.
Revert changes to align asset library labels in menus
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
05b177b0b3
This reverts 1116d821dc and part of 5bac672e1a.

The solution was made specifically for the 3.5 release, to avoid
breaking other cases. The previous commit addressed the problem properly
by letting the general menu code align labels where needed.
There are known bugs in HIP compiler that are causing random build failures
when making changes to the Cycles kernel. This is preventing developers from
efficiently making improvements to Cycles.

For now Cycles AMD GPU rendering is disabled in Blender 3.6 until a good
solution is found, so that ongoing work like Principled v2 is not blocked.
We hope this can be resolved later on in the 3.6 release cycle.

Ref #104786
Fix #104690: Evaluated positions user-after-free for copied poly curves
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
b07085fe3c
The evaluated positions cache can live longer than a specific
`CurvesGeometry`, but for only-poly curves, it pointed to the positions,
which are freed when the curves are. Instead, use the same pattern
as the evaluated offsets and don't store the positions span, just return
it when retrieving evaluated positions.
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
1e6ed77896
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
2cad80b0e5
Instead of retrieving which attributes to transfer from the geometry set
which exists at a different abstraction level, get them from accessors
directly with a newer utility function. This removes boilerplate code
and makes the logic clearer for a future even more generic attribute
propagation API.
Now that the UV map names are read from the evaluated mesh the names of
the anonymous layers would show up in the UV Map node and be accessible
via the python interface.

This changes the collection definition to skip anonymous layers.

Pull Request #104783
Cleanup: format
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
ab63fe9eab
On the Windows platform allow Blender windows to be created that are
spread over multiple adjacent monitors.

---

On Windows we are quite feature-complete and stable for the creation and placement of multiple (non-temp) Blender windows. We correctly do so across multiple monitors no matter their arrangement, resolution, and scale.

However, there is another way that Blender could use multiple monitors - suggested by a core dev - which is to size a window so that it comprises multiple monitors. There are some advantages to this way of working because the one window remains constantly active and in focus. It also allows a single region (like a node editor) to be as large as possible.

But this way of working is not currently possible. That is because during window creation we constrain them to fit within the confines of the nearest single monitor. This has mostly been done for simplicity and safety. We don't want to restore a saved window to a position where it cannot be seen or used.

This patch addresses that. It allows windows to span multiple monitors, and does so safely by constraining the four corners of the window to be within the working area of any active monitor.  This means it allows the creation of single windows as shown below in blue (left two), but does not allow the one in orange (right):

![image.png](/attachments/b2a9dfca-d54c-467a-ab95-717df3b25051)

Note this has been previously (before gitea) reviewed and approved by Brecht.

Co-authored-by: Harley Acheson <harley.acheson@gmail.com>
Pull Request #104438
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
6e7242f00c
UI: Improvement to screen_find_area_xy
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
c39b81d832
In BKE_screen_area_map_find_area_xy (find a ScrArea by 2D location),
ignore edges by using screen verts instead of totrct

Differential Revision: #104680

Reviewed by Brecht Van Lommel
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
d705c8ed57
The "normal" was added before fields existed because we needed a
way to expose the data to geometry nodes. It isn't really an attribute,
because it's read-only and it's derived rather than original data.

No features have relied on the "normal" attribute existing, except
for the corresponding column in the spreadsheet. However, the
column in the spreadsheet is also inconsistent, since it isn't an
attribute but looks just like the other columns. The normal is
always visible in the spreadsheet.

Pull Request #104795
Cleanup: Remove read-only attribute type
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
be6847e773
After the removal of the "normal" attribute providers, we no longer
use the concept of read-only attributes. Removing this status simplifies
code, clarifies the design, and removes potentially buggy corner cases.

Pull Request #104795
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
2ccb820c7e
No longer use the existance of an image pointer inside the button, or
the the type of a button to decide if the entire button should be
draggable, or only its icon. This was rather sneaky, undocumented
behavior. Instead make this a proper option in the public UI API, and
enable it by default in specific cases to match the previous behavior.

This at least makes the behavior known and controllable in the API, and
not something that's just "secretly" done deep down in the button
handling code. I'd argue we should just use the entire button width by
default for dragging, but that would be a bigger change.
Code to set the dragging data for a button was mostly duplicated, they
share it now. The followup commit also needs an easy way to reuse the
logic, which is possible now.
Curves: Add select more/less
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
55843cd64b
This adds the "Select More/Less" operators for Curves. Both operators use the `select_adjacent` function to (de)select adjacent points.

Pull Request #104626
Cleanup: Adding in NLA Track Remove / Remove and free BKE methods
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
bf5a89f4e0
This PR adds 2 new methods:
* BKE_nlatrack_remove
* BKE_nlatrack_remove_and_free

and modifies the existing `BKE_nlatrack_free` to remove the track list parameter.

This refactor splits out the removal / freeing into it's own methods, and provides a higher order method (BKE_nlatrack_remove_and_free) to conveniently call both.

Co-authored-by: Nate Rupsis <nrupsis@gmail.com>
Pull Request #104752
Cleanup: Fix operator description
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
4e7a7e613a
Cleanup: Use Span to iterate over nodes instead of ListBase
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
c2a0decbf3
Similar to 5b8e2ebd97.
Fix unused variable in release builds
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
77c273ee37
Assert is not needed in this case.
Fix: Remove the rest of the tracks in the BKE_nlatrack_remove_and_free to free up the memory
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
b2a536e9d7
Fix: The BKE_nlatrack_remove_and_free (#104752) unit test leaks a little memory. Cleaning up the rest of the track list to ensure everything is freed.
Co-authored-by: Nate Rupsis <nrupsis@gmail.com>
Pull Request #104839
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
8a51d61b44
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
09d3ebfd72
Cleanup: format
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
8094d389f7
This adds `BitSpan` and `MutableBitSpan`. They work essentially the same as
the normal `Span` and `MutableSpan`, but work on individual bits instead
(the smallest type `Span` can handle is one byte large).

This also splits up `BLI_bit_vector.hh` and introduces two new headers:
`BLI_bit_ref.hh` and `BLI_bit_span.hh`.

The goal here is to make working with dynamically sized bit masks more
convenient. I'm mainly working on this because I might want to use this
in #104629. It can also be used to cleanup function signatures that
currently take a reference to a `BitVector`. Like with `Span` vs. `Vector`,
it is better to pass a `BitSpan` to function than a `const BitVector &`.

Unit tests for the new code are included.

Pull Request #104671
Cleanup: use BitSpan instead of BitVector where possible
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
9c79875f65
Passing a `BitSpan` is generally better because then the caller is not
forced to allocate the bits with a `BitVector`. Also, the `BitSpan` can
be stored in the stack, which removes one pointer indirection compared
to accessing bits through a `BitVector &`.
Deps: Optimize meson based deps
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
ef60b13c1f
meson defaults to debug builds [0] unless you tell it differently, this
diff changes the options for

- epoxy
- fribidi
- harfbuzz
- wayland
- wayland_protocols

to be optimized, mesa was already optimized

[0] https://mesonbuild.com/Builtin-options.html#core-options

Pull Request #104802
Sculpt: Add support for last operator panel to mesh filter operator
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
c352eeb213
* Repeat last operator now works for mesh filters.
* Added an iteration_count property to repeat the filter.
  This is especially useful when compounded with the repeat
  last operator tool.
* The mouse event history is stored for mesh filters
  with more advanced user input (mostly Smooth and Relax
  filters).
Cleanup: loop over axes in compatible_eul
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
9808d6abd8
There is no need to inline the loop.
Sculpt: Fix 104618: Topology automasking errors
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
5de9a5dea5
Sculpt island tags are now invalidated whenever the PBVH
is rebuilt.
Having a threshold well above PI would result in discontinuity in some
cases.

The discontinuity can be measured by generating euler values (both
random and interpolated rotations), then comparing the accumulated
difference.
Changing the threshold for wrapping rotations produces at least as good
or more compatible results.

This was reported as #17297 and fixed in [0], however the change was
only applied for the game-engine.

Ref !104856

[0]: ab44742cf3
Cleanup: Silence compiler warning in VKShader.
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
0250b40750
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
932148ec54
Fix a crash when using the Euler Filter from the Graph Editor on baked curves.

The crash happened because baked curves have no bezt array.
Skipping any curves where that was missing fixes the issue.

Co-authored-by: Christoph Lendenfeld <chris.lenden@gmail.com>
Pull Request #104858
Cleanup: use PI and PI/2 in compatible_eul
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
bf7ccd43ca
3.2 and 1.6 where used as rough equivalents to M_PI & M_PI_2, however
this raised questions about the significance of these values.

Running thousands of tests with generated euler inputs I wasn't able to
detect a difference so use M_PI & M_PI_2 instead.
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
d4480fdfa3
Animation: Clamp V2D so keyframes cannot go offscreen
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
cb95f8aea7
In the Dope Sheet and the Timeline, it was possible to drag the view until the keyframes were completely out of view.
(Important to drag in the region with the keyframes, dragging in the channel box already did clamping)

This patch adds a clamping mechanism matching that of the channel box. That means the last channel will stick to the bottom of the view.

Co-authored-by: Christoph Lendenfeld <chris.lenden@gmail.com>
Pull Request #104516
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
42f636f7e8
When updating a mesh, the GPU Subdivision code makes calls to
`GPU_indexbuf_bind_as_ssbo()`.

This may cause the current VAO index buffer to change due to calls from
`glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo_id_)` in
`GPU_indexbuf_bind_as_ssbo()`.

The solution is to unbind the VAO (by calling `glBindVertexArray(0)`)
before creating the index buffer IBO.

Co-authored-by: Germano Cavalcante <grmncv@gmail.com>
Pull Request #104873
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
7838eb12c6
Cleanup: Remove accidentally merged TODO comment
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
08f24553dc
Nodes: Add 'Online Manual' to context menu
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
e95ba8a70e
Finding the documentation for nodes can be time consuming.
By adding the online manual to the right click context menu in the node
editor the user gets easier access to the documentation.

Can also be used by custom nodes add-ons by registering a manual-map.

Pull Request #104833
Animation: Add "Frame Channel" operators
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
d7dd7ee24c
When animating it is often useful to frame the Graph Editor/Dope Sheet to whatever frames are in a given channel.
This patch adds the option to frame on selected channels OR frame on whatever channel is under the cursor.

If a preview range is set it will only focus on keys in that range.

Supports FCurve and keyframe data

Frame to selected is called with
* Right click in the channel section -> Frame Selected Channels
* or in Channel → Frame Selected Channels
* or hitting . on the numpad

Frame to channel under cursor is done with

ALT + Middle Mouse Button

Co-authored-by: Christoph Lendenfeld <chris.lenden@gmail.com>
Pull Request #104523
Merge remote-tracking branch 'origin/blender-v3.5-release'
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
4b6ce4512c
Fix compile error due to previous changes
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
d6774174e9
Merge branch 'blender-v3.5-release'
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
8806d7551d
Fix 104816: Ensure Win32 visible title bar
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
dd2ab55507
When creating Win32 windows, ensure that the caption bar is visible.

Differential Revision: #104848

Reviewed by Ray Molenkamp
Add the `CD_ORIGINDEX` layer to the columns potentially displayed
with the Blender debug value of 4001 from the debug menu. Also
separate the debug columns to separate functions.
Fix #104188: Screw modifier edges invisible in edit mode wireframe view
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
d9398bb53f
Caused by 25237d2625, when the new "template" mesh created
in the modifier started to use the proper default value for CD_ORIGINDEX
layers rather than just zero. Zero isn't correct because it refers to
the first element, not "no element". For that we need to remove the
original index mapping arrays completely. There is some gray area
about whether that is allowed too, but it's best here to just keep the
old behavior working for now.
The file renaming seems only to be needed on Windows,
so don't attempt it on other platforms.
The warning referenced an undeclared variable.
Cleanup: spelling, capitalize tags, use C-style comments & clarification
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
be9104f7aa
Merge branch 'blender-v3.5-release'
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
cc4587a9b4
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
e61566137b
Revert 104438: Windows Spanning Multiple Monitors
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
e1e2dae317
Revert of commits that allowed non-temp Blender windows to be saved
and restored that spanned multiple monitors on the Windows platform.
This causes problems with temp windows (like Preferences & Render) that
cannot currently be fixed.

See 104956 for much more detail

Differential Revision: #104956

Reviewed by Ray Molenkamp
No design or functional changes. Just rename the layers for the last
two icons that were added so that they follow the naming pattern.
Also, update the layer order for another icon (was not alphabetic).

Pull Request #104954
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
c25c46b77b
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
74be1acc7a
Revert release branch only commit after merge
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
c437a8aea8
This is a revert of a revert, because the initial revert is only
supposed to be in the release branch.

This reverts commit 3eed00dc54.
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
dfbbf411d9
Merge branch 'blender-v3.5-release'
Some checks are pending
buildbot/vdev-code-daily-coordinator Build started.
82ab491ab5
That way the `matrix_base` doesn't need to depend on the axis
simplifying the code.

This also fixes an issue in plane scaling gizmos with non-orthogonal
matrix.
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
8abef86217
BLI: add function for changing working directory
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
ceba1854f9
Add `BLI_change_working_dir(path)` to change the current working directory.

This change is required for adding USDZ support to Blender. When exporting to that format, we are required to do a weird change of directory because of a quirk with the USD library's USDZ functionality. If an absolute filepath is passed into the `UsdUtilsCreateNewUsdzPackage` function, the USDZ archive will store that full path.

macOS uses `NSFileManager` through some new Mac-only wrapper functions.

Ref #99807

Pull Request #104525
Nodes: Allow adding multiple search items per type in add menu
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
cc925b9282
Add a per node type callback for creating node add search operations,
similar to the way link drag search is implemented (11be151d58).

Currently the searchable strings have to be separate items in the list.
In a separate step, we can look into adding invisible searchable text
to search items if that's still necessary.

Resolves #102118

Pull Request #104794
Merge branch 'blender-v3.5-release'
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
7c1e26dd64
No functional changes.
Fix test
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
07ae1feed2
Pull Request #104934
BMesh: fix invalid existence check in BM_mesh_bm_to_me
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
3e049973ee
Remember that the null customdata layer index is -1,
not 0.
Sculpt: Implement mesh filter cancel
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
ff3fd5f1ce
Added new function sculpt_mesh_filter_cancel in sculpt_filter_mesh.cc
for cancelling mesh filters. It currently is unused pending a
revamped modal map for mesh filter (see pull req 104718).
Tests: Add tests for image format saving and loading
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
7699c7407d
This adds saving and loading tests for our supported image formats.

**Saving - bf_imbuf_save.py**
There are 2 template images which are loaded anew for each file save
attempt.  One is an 8-bit RGBA image and the other 32-bit. This is
required as many formats use a variety of factors to determine which of
`ibuf->rect` or `ibuf->rectfloat` to use for processing.  The templates
are constructed to have alpha transparency as well as values > 1 (or
clamped to 1 for the case of the 8-bit template).

Test flow:
 - Load in an appropriate template image
 - Save it to the desired format with the desired set of options
 - Compare against the reference image

Notes:
 - 98 references are used totaling ~3.6MB
 - 10-12 second test runtime
 - Templates can be reconstructed with the create-templates.blend file

**Loading - bf_imbuf_load.py**
Test flow:
 - Load in each of the reference images
 - Save them back out as .exr
 - Save additional metadata to a secondary file (alpha mode, colorspace etc)
 - Compare the saved out .exr with another set of reference .exrs
 - Compare the saved out file metadata with set of reference metadata

Notes:
 - 98 exr references are used totaling ~10MB
 - 10-12 second test runtime as well

A HTML report is not implemented. The diff output organization is very
similar to the other tests so it should be somewhat easy to do in the
future if we want.

The standard set of environment variables are implemented for both:
BLENDER_TEST_UPDATE, BLENDER_VERBOSE, and BLENDER_TEST_COLOR

Pull Request #104442
Cleanup: format
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
ece43dd716
Tests: Address imbuf_save failures on ARM64 builds
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
2d34a09043
This does 2 things to address the ARM64 failures:
- Increases the threshold to be inline with what Cycles uses
- Disables the 2 problematic WebP variations (#105006 will track)
Fix: Channel clamping when markers are used
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
4ab91dc0c9
Previously when markers were used, the newly introduced clamping code (#104516) would stop the last channel from being shown.

This patch fixes that by modifying the `v2d->tot.ymin` calculation.

This is a bit counterintuitive since the `v2d->tot` height is calculated in `action_draw.c`. But the advantage of doing it there is that it also works for the channels region.

Pull Request #104892
Merge branch 'blender-v3.5-release'
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
e1b58be9e2
This adds support for cursor snapping for the new curves object.

It implements a function `transverts_from_curves_positions_create` (to separate the logic from the `Curves` object type). That function is then C wrapped by `ED_curves_transverts_create` and finally used in `ED_transverts_create_from_obedit`.

Pull Request #104967
Gitea: more updates for new scoped label syntax
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
6eccea7a6f
Mandatory change for the Brush Assets project, from quick test does not
seem to break anything (more) in existing 'old' brushes...

Re. #101908.

Pull Request #105016
Fix new essentials asset library not being covered in library path query
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
a280554b75
Merge branch 'blender-v3.5-release'
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
68a8f96cca
Merge branch 'blender-v3.5-release'
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
8b8d8acc84
Contributed by Yulia Kuznetcova at Apple.

NanoVDB is patched to give add address spaces required by Metal. We hope that
in the future Metal will support the generic address space.

For AMD and Intel this is currently not available since it causes a performance
regression also on scenes without volumes.

Pull Request #104837
Vulkan: Initial Compute Shaders support
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
7fb1f060ff
This patch adds initial support for compute shaders to
the vulkan backend. As the development is oriented to the test-
cases we have the implementation is limited to what is used there.

It has been validated that with this patch that the following test
cases are running as expected
- `GPUVulkanTest.gpu_shader_compute_vbo`
- `GPUVulkanTest.gpu_shader_compute_ibo`
- `GPUVulkanTest.gpu_shader_compute_ssbo`
- `GPUVulkanTest.gpu_storage_buffer_create_update_read`
- `GPUVulkanTest.gpu_shader_compute_2d`

This patch includes:
- Allocating VkBuffer on device.
- Uploading data from CPU to VkBuffer.
- Binding VkBuffer as SSBO to a compute shader.
- Execute compute shader and altering VkBuffer.
- Download the VkBuffer to CPU ram.
- Validate that it worked.
- Use device only vertex buffer as SSBO
- Use device only index buffer as SSBO
- Use device only image buffers

GHOST API has been changed as the original design was created before
we even had support for compute shaders in blender. The function
`GHOST_getVulkanBackbuffer` has been separated to retrieve the command
buffer without a backbuffer (`GHOST_getVulkanCommandBuffer`). In order
to do correct command buffer processing we needed access to the queue
owned by GHOST. This is returned as part of the `GHOST_getVulkanHandles`
function.

Open topics (not considered part of this patch)
- Memory barriers & command buffer encoding
- Indirect compute dispatching
- Rest of the test cases
- Data conversions when requested data format is different than on device.
- GPUVulkanTest.gpu_shader_compute_1d is supported on AMD devices.
  NVIDIA doesn't seem to support 1d textures.

Pull-request: #104518
a280554b75 was committed to fix this in main, b5fa180d5d for the release
branch. Only one is needed though :)
Vulkan: Fix mismatch in shader and resource types.
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
6a5caf9d88
Fix tests for macOS storage_apple.mm functions.
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
92dc89e28a
Pull Request #105000
Cleanup: Remove unused UV map deletion functions
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
996eb1bd5f
The attribute API is now used instead.
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
1b96dd535a
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
e82d4f1f93
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
ac160a270f
UI: UIList Hover Highlighting
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
7216eb8879
Add mouse hover highlighting for items in UILists, in both list mode
and preview tile mode.

See 104677 for more details

Differential Revision: #104677

Reviewed by Brecht Van Lommel
msgfmt: fix runtime requirements
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
b874a0ead8
msgfmt has a TBB dependency though bf_blenlib, now for a release build
The MSVC linker is smart enough to realize none of the TBB code is
actually used and discards it. In debug mode the linker is a bit more
conservative and doesn't, leaving msgfmt with a runtime dependency
on TBB. The problem here is, we only copy the runtime dlls during
the install phase, and msgfmt runs long long before that.

For this reason when we run msgfmt we should make sure any runtime
needs it could have are met in the path, there already is a handy
variable for that since oslc has similar requirements.

Pull Request #105048
Revert 104438: Windows Spanning Multiple Monitors
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
8b63966236
Revert of commits that allowed non-temp Blender windows to be saved
and restored that spanned multiple monitors on the Windows platform.
This causes problems with temp windows (like Preferences & Render) that
cannot currently be fixed.

See 104956 for much more details.

This change is being redone after it was accidentally reverted.

Differential Revision: #104956

Reviewed by Ray Molenkamp
Cleanup: Use simpler syntax to return panel open status
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
05637254da
Curves: Avoid unnecessary allocation when calculating offsets
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
612965497e
Arrays for curve handle types were allocated even when there were no
Bezier curves. This saves 0.5ms of the total 0.9ms spent creating the
evaluated curve offsets, which happens every time the topology
of non-poly curves change.
Merge remote-tracking branch 'upstream/blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
ad124d15e2
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
50ebe21dd3
VSE: Add retiming tool
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
e1f6587f12
This tools allows to change strip playback speed by manipulating
retiming handles. More handles can be added to single strip to create
variable playback speed.

This tool replaces Speed Factor property in time panel, with exception
of sound strips. Support for sound strips is still in review.

Pull Request #104523
See #103343

Pull Request #105061
Cleanup: Move rna_access.c to C++
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
709013dca4
See #103343

Pull Request #105060
Vulkan: Refactor shader interface.
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
8c03410ebd
Descriptor set locations are now determined in the
VKShaderInterface. Issues with the previous solution:

- Due to legacy code in GPU module the locations/bindings
  must be the same. Using one for something else might
  result in undesired lookups, incorrect resource
  bindings.
- Images/Textures reuses the same namespace, that didn't
  work as expected when looking up the resources via
  its binding.

This refactoring is required for adding support for
push constants.

Pull Request #105073
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
d6a61bc864
UI: Properly cancel dragging on escape or right-click
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
d58e422ac3
This is refering to drag & drop within Blender which is using the
drop-box system.

Previously Escape would cancel the dragging, but still pass on the event
to other event handlers, which could trigger other behavior. For example
cancelling dragging a file in a file browser dialog would also cancel
the file browser operation and close the window. Right-click didn't
cancel anything even though we usually use both Escape and right-click
as a way to cancel the operation.

Now both escape and right-click both cancel the dragging and the event
is not passed on further.

Pull Request: #104838
This is a small initial refactor to extract the
USDGeomReader::read_mesh parameters into a separate struct.
This will allow for adding extra parameters to handle importing
velocities for #104462 which was brought over from

https://archive.blender.org/developer/D15430

Original patch was being reviewed here:

https://archive.blender.org/developer/D15435

Pull Request 104459
Expose the color selector on each item in the list, so it's easier to see
at a glance the Bone Groups color theme and change it.

Also avoids having color widgets grayed out when not in Custom Colors mode.

Pull Request #105036
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
775b51a847
BLF: Glyph Clipping Corrections
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
54fa3b124f
Improvements to how glyphs are tested against the font clipping rect.

Pull Request #104679
On the Windows platform, raise windows and give them focus as the mouse
hovers over them. This allows keyboard shortcuts for the area under the
mouse without having to click the window caption to make them active.

Pull Request #104681
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
8693f1fdd2
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
e497a50aa2
Sculpt: fix 104174, clicking over empty space always pushes undo.
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
7f256e0d33
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.
Sculpt: Fix #104618 (again).
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
4eb90fc15c
SculptAttributeParams.stroke_only wasn't being
applied to existing attributes properly.
When implementing the operator to select linked vertices in weight paint mode, the new `AtomicDisjointSet` was used.
In order to keep the code consistent, and also prepare it to add things like Extending/Shrinking selection, the select linked faces logic was also updated.

It now also makes use of the `AtomicDisjointSet` by connecting all edges of each poly. In order to find connecting Faces you then have to check if edges of that poly share a connection.

Pull Request #104577
Sculpt: Fix #104475, data transfer not respecting vgroup for float colors
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
ddcf718640
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.
Animation: Add Slider operators to hotkey menu
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
8756671084
Before that patch, the slider operators for the Graph Editor are not easily accessible since they don't have a hotkey.
This adds the "d" hotkey for the already existing slider operator menu.

Using the popup menu means that your last used operator will always be under the cursor, so it's quick to access.

Pull Request #104530
Animation: Paste Keys in Graph Editor with value offset
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
7267682017
Extend the `GRAPH_OT_paste` operator with an enum to define the value offset.

Options are:

| Option              | Effect                                                                        |
| ------------------- | ----------------------------------------------------------------------------- |
| No Offset           | use the same key values as the copied keys                                    |
| Cursor Value        | align the leftmost key with the cursor value                                  |
| Current Frame Value | Evaluate the curve under the cursor align the leftmost key with it            |
| Right Key           | Align the rightmost key with the first key that is to the right of the cursor |
| Left Key            | Align the leftmost key with the first key that is to the left of the cursor   |

Pull Request #104512
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
4cd00b1a71
Merge remote-tracking branch 'origin/blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
c8ed48d5ca
Fix #105043: Add shortcut for proportional editing
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
f93f743ffc
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
e2ba7f902d
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
78a54f23db
Vulkan: Get access to physical device limits.
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
90f5b2f0ce
This patch will give access to the physical device limits
of the device associated with the context. In vulkan each
device has different limits and the application is
responsible to match these limits as the vulkan driver
just ignores calls that don't match these limits.

Those limits are GPUBackend specific and therefore are not
added to GPU_capabilities.

Pull Request #105125
Resolving builtin uniforms and uniform blocks when creating
shader interface. This maps builtin uniforms to uniforms
defined by the shader. Works the same as the OpenGL
builtin uniforms.

Pull Request #105128
Only supports uploading data to a uniform buffer.
Requirement for push constants #104880.

Pull Request #105129
Merge branch 'blender-v3.5-release' into main
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
25a5ff7670
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
6403bc28cd
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
1851a69014
This code seems to be left over from before edges, polys, and loops were
stored in CustomData. They are already copied by the CustomData copy
calls directly above, which already deal with every other layer.
Using spans instead of raw pointers helps to differentiate ararys from
pointers to single elements, gives bounds checking in debug builds, and
conveniently stores the number of elements in the same variable.

Also make variable naming consistent. For example, use `loops` instead
of `mloop`. The plural helps to clarify that the variable is an array.

I didn't change positions because there is a type mismatch between
C and C++ code that is ugly to manage. All remaining code can be
converted to C++, then that change will be simpler.

Pull Request #105138
When using the "Frame Channel" operator in the Dope Sheet
the view would always go back to the top.

Fix it by copying the y bounds when in the Dope Sheet.

Pull Request #105123
When using the frame channel operators from #104523
the framing would fail under the following circumstance.
* In the graph editor
* Using normalized view
* with a curve that has a y-extent of less than the focus threshold of 0.01

The issue was the the clamping code was
before the normalization multiplication.

Pull Request #105121
Merge branch 'blender-v3.5-release' into main
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
8e50539f1b
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
Fix: Debug build failure and warnings after recent cleanup commit
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
2bd097a58d
Merge branch 'blender-v3.5-release'
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
c065e8dd7f
Fix: Global buffer overflow of enum property items on startup
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
1b72712283
RNA enum items arrays need to end with a null entry.
BLF: Revert Glyph Clipping Changes
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
470e8ce1f4
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.
UI: Widen Search Boxes When Necessary
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
cfb112edcb
Make floating search boxes wider when there is a linked scene or are
otherwise showing more information than a simple list.

Pull Request #104603
Cleanup: Move two subdiv headers to C++
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
2491cd5e16
Prakhar-Singh-Chouhan added 1 commit 2023-02-26 06:48:03 +01:00
Prakhar-Singh-Chouhan changed title from Fix #103978 Python: Add deprecation warnings to GPUBatch program usage to WIP: Fix #103978 Python: Add deprecation warnings to GPUBatch program usage 2023-02-26 19:04:47 +01:00
Prakhar-Singh-Chouhan requested review from Jeroen Bakker 2023-02-26 19:05:16 +01:00

Pull request closed

Sign in to join this conversation.
No reviewers
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset System
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Asset Browser Project
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#105174
No description provided.