Fix: Use ShaderCreateInfo for Cycles fallback display. #104981

Closed
Jason Fielder wants to merge 89 commits from Jason-Fielder:CyclesFallbackDisplayShader_CreateInfo into blender-v3.5-release

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

Cycles fallback display shader previously did not use viewport.
This would crash or cause the display not to show when using
GPU backends other than OpenGL, if another display shader
was unavailable.

Authored by Apple: Michael Parkin-White

Ref #96261

Cycles fallback display shader previously did not use viewport. This would crash or cause the display not to show when using GPU backends other than OpenGL, if another display shader was unavailable. Authored by Apple: Michael Parkin-White Ref #96261
Jason Fielder added 89 commits 2023-02-20 18:56:11 +01:00
buildbot/vdev-code-daily-coordinator Build done. Details
d5d48a986b
Release cycle: Bump version to 3.6.
buildbot/vdev-code-daily-coordinator Build done. Details
d8112ec1ea
Revert "Splash screen for Blender 3.5"
This reverts commit a0b4da2bd0.
a6ebe0ca62 Fix possible compiler warning and linker error
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.
buildbot/vdev-code-daily-coordinator Build done. Details
0b63136e63
Cleanup: delete .arcconfig
Now that https://developer.blender.org/ has been decommissioned, arcconfig is no longer needed.

Pull Request #104768
b9bf4700b0 Fix weird icon padding in asset library selector menu button
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.
58752ad93c UI: Ensure menus with icons align all menu item labels
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.
buildbot/vdev-code-daily-coordinator Build done. Details
05b177b0b3
Revert changes to align asset library labels in menus
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.
753eb9c20e Cycles: disable AMD GPU rendering binaries due to compiler bugs
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
buildbot/vdev-code-daily-coordinator Build done. Details
b07085fe3c
Fix #104690: Evaluated positions user-after-free for copied poly curves
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.
buildbot/vdev-code-daily-coordinator Build done. Details
1e6ed77896
Merge branch 'blender-v3.5-release'
buildbot/vdev-code-daily-coordinator Build done. Details
2cad80b0e5
Merge branch 'blender-v3.5-release'
7ad1d3156c Cleanup: Use simpler attribute transfer API in duplicate elements node
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.
b1abc23899 Fix: Skip anonymous CustomData layers for the python 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
buildbot/vdev-code-daily-coordinator Build done. Details
ab63fe9eab
Cleanup: format
10c0c2a156 Windows: allow windows to span multiple monitors
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
buildbot/vdev-code-daily-coordinator Build done. Details
6e7242f00c
Merge branch 'blender-v3.5-release'
buildbot/vdev-code-daily-coordinator Build done. Details
c39b81d832
UI: Improvement to screen_find_area_xy
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
buildbot/vdev-code-daily-coordinator Build done. Details
d705c8ed57
Merge branch 'blender-v3.5-release'
300c673a64 Geometry Nodes: Remove "normal" attribute
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
buildbot/vdev-code-daily-coordinator Build done. Details
be6847e773
Cleanup: Remove read-only attribute type
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
buildbot/vdev-code-daily-coordinator Build done. Details
2ccb820c7e
Merge branch 'blender-v3.5-release'
6da512f0bc UI: Refactor how draggable part of button is determined
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.
1e9564864c Cleanup: Refactor File/Asset Browser button dragging code
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.
buildbot/vdev-code-daily-coordinator Build done. Details
55843cd64b
Curves: Add select more/less
This adds the "Select More/Less" operators for Curves. Both operators use the `select_adjacent` function to (de)select adjacent points.

Pull Request #104626
buildbot/vdev-code-daily-coordinator Build done. Details
bf5a89f4e0
Cleanup: Adding in NLA Track Remove / Remove and free BKE methods
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
buildbot/vdev-code-daily-coordinator Build done. Details
4e7a7e613a
Cleanup: Fix operator description
buildbot/vdev-code-daily-coordinator Build done. Details
c2a0decbf3
Cleanup: Use Span to iterate over nodes instead of ListBase
Similar to 5b8e2ebd97.
buildbot/vdev-code-daily-coordinator Build done. Details
77c273ee37
Fix unused variable in release builds
Assert is not needed in this case.
buildbot/vdev-code-daily-coordinator Build done. Details
b2a536e9d7
Fix: Remove the rest of the tracks in the BKE_nlatrack_remove_and_free to free up the memory
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
buildbot/vdev-code-daily-coordinator Build done. Details
8a51d61b44
Merge branch 'blender-v3.5-release'
buildbot/vdev-code-daily-coordinator Build done. Details
09d3ebfd72
Merge branch 'blender-v3.5-release'
buildbot/vdev-code-daily-coordinator Build done. Details
8094d389f7
Cleanup: format
891f47b801 BLI: new bit span data structure
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
buildbot/vdev-code-daily-coordinator Build done. Details
9c79875f65
Cleanup: use BitSpan instead of BitVector where possible
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 &`.
buildbot/vdev-code-daily-coordinator Build done. Details
ef60b13c1f
Deps: Optimize meson based deps
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
buildbot/vdev-code-daily-coordinator Build done. Details
c352eeb213
Sculpt: Add support for last operator panel to mesh filter operator
* 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).
buildbot/vdev-code-daily-coordinator Build done. Details
9808d6abd8
Cleanup: loop over axes in compatible_eul
There is no need to inline the loop.
buildbot/vdev-code-daily-coordinator Build done. Details
5de9a5dea5
Sculpt: Fix 104618: Topology automasking errors
Sculpt island tags are now invalidated whenever the PBVH
is rebuilt.
c6ea00de3c BLI_math: correct the threshold for wrapping rotation in compatible_eul
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
buildbot/vdev-code-daily-coordinator Build done. Details
0250b40750
Cleanup: Silence compiler warning in VKShader.
buildbot/vdev-code-daily-coordinator Build done. Details
932148ec54
Merge branch 'blender-v3.5-release'
9b3ce950e6 Fix #95400: Crash when running Euler Filter on baked Curves
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
buildbot/vdev-code-daily-coordinator Build done. Details
bf7ccd43ca
Cleanup: use PI and PI/2 in compatible_eul
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.
buildbot/vdev-code-daily-coordinator Build done. Details
d4480fdfa3
Merge branch 'blender-v3.5-release'
buildbot/vdev-code-daily-coordinator Build done. Details
cb95f8aea7
Animation: Clamp V2D so keyframes cannot go offscreen
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
buildbot/vdev-code-daily-coordinator Build done. Details
42f636f7e8
Merge branch 'blender-v3.5-release'
69677827ff Fix #104347: Loop Cut Tool becomes impressive with GPU Subdivision
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
buildbot/vdev-code-daily-coordinator Build done. Details
7838eb12c6
Merge branch 'blender-v3.5-release'
buildbot/vdev-code-daily-coordinator Build done. Details
08f24553dc
Cleanup: Remove accidentally merged TODO comment
buildbot/vdev-code-daily-coordinator Build done. Details
e95ba8a70e
Nodes: Add 'Online Manual' to context menu
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
buildbot/vdev-code-daily-coordinator Build done. Details
d7dd7ee24c
Animation: Add "Frame Channel" operators
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
buildbot/vdev-code-daily-coordinator Build done. Details
d6774174e9
Fix compile error due to previous changes
buildbot/vdev-code-daily-coordinator Build done. Details
8806d7551d
Merge branch 'blender-v3.5-release'
buildbot/vdev-code-daily-coordinator Build done. Details
dd2ab55507
Fix 104816: Ensure Win32 visible title bar
When creating Win32 windows, ensure that the caption bar is visible.

Differential Revision: #104848

Reviewed by Ray Molenkamp
2ee5560b3f Spreadsheet: Add original indices to mesh debug information
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.
buildbot/vdev-code-daily-coordinator Build done. Details
d9398bb53f
Fix #104188: Screw modifier edges invisible in edit mode wireframe view
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.
da9dff053e Build: fix error building xvidcore on Linux
The file renaming seems only to be needed on Windows,
so don't attempt it on other platforms.
162e6c7951 Fix error in project_info when make wasn't found
The warning referenced an undeclared variable.
buildbot/vdev-code-daily-coordinator Build done. Details
cc4587a9b4
Merge branch 'blender-v3.5-release'
buildbot/vdev-code-daily-coordinator Build done. Details
e61566137b
Merge branch 'blender-v3.5-release'
buildbot/vdev-code-daily-coordinator Build done. Details
e1e2dae317
Revert 104438: Windows Spanning Multiple Monitors
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
488a757c83 Icons: Minor maintenance for the icons source SVG
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
buildbot/vdev-code-daily-coordinator Build done. Details
c25c46b77b
Merge branch 'blender-v3.5-release'
buildbot/vdev-code-daily-coordinator Build done. Details
74be1acc7a
Merge branch 'blender-v3.5-release'
buildbot/vdev-code-daily-coordinator Build done. Details
c437a8aea8
Revert release branch only commit after merge
This is a revert of a revert, because the initial revert is only
supposed to be in the release branch.

This reverts commit 3eed00dc54.
buildbot/vdev-code-daily-coordinator Build done. Details
dfbbf411d9
Merge branch 'blender-v3.5-release'
buildbot/vdev-code-daily-coordinator Build started. Details
82ab491ab5
Merge branch 'blender-v3.5-release'
771f945441 Fix: Use ShaderCreateInfo for Cycles fallback display.
Cycles fallback display shader previously did not use viewport.
This would crash or cause the display not to show when using
GPU backends other than OpenGL, if another display shader
was unavailable.

Authored by Apple: Michael Parkin-White

Ref #96261
Jason Fielder changed title from CyclesFallbackDisplayShader_CreateInfo to Fix: Use ShaderCreateInfo for Cycles fallback display. 2023-02-20 18:57:07 +01:00
Jason Fielder requested review from Clément Foucault 2023-02-20 18:57:18 +01:00

You need to rebase the change on the 3.5 branch so it doesn't include all the changes from main. Something like this:

git checkout CyclesFallbackDisplayShader_CreateInfo
git rebase --onto blender-v3.5-release main CyclesFallbackDisplayShader_CreateInfo

Then check it builds and works, the git log looks right and force push.

You need to rebase the change on the 3.5 branch so it doesn't include all the changes from main. Something like this: ``` git checkout CyclesFallbackDisplayShader_CreateInfo git rebase --onto blender-v3.5-release main CyclesFallbackDisplayShader_CreateInfo ``` Then check it builds and works, the git log looks right and force push.
Jason Fielder closed this pull request 2023-02-20 19:19:19 +01:00
Jason Fielder deleted branch CyclesFallbackDisplayShader_CreateInfo 2023-02-20 19:19:51 +01:00

Pull request closed

Sign in to join this conversation.
No reviewers
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
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
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
2 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#104981
No description provided.