Blender Git Commits

Blender Git "master" branch commits.

Page: 601 / 5574

August 30, 2020, 21:49 (GMT)
Cycles: introduce an ownership system to protect nodes from unwanted deletions.

Problem: the Blender synchronization process creates and tags nodes for usage. It does
this by directly adding and removing nodes from the scene data. If some node is not tagged
as used at the end of a synchronization, it then deletes the node from the scene. This poses
a problem when it comes to supporting procedural nodes who can create other nodes not known
by the Blender synchonization system, which will remove them.

Nodes now have a NodeOwner, which is set after creation. Those owners for now are the Scene
for scene level nodes and ShaderGraph for shader nodes. Instead of creating and deleting
nodes using `new` and `delete` explicitely, we now use `create_node` and `delete_node` methods
found on the owners. `delete_node`�will assert that the owner is the right one.

Whenever a scene level node is created or deleted, the appropriate node manager is tagged for
an update, freeing this responsability from BlenderSync or other software exporters.

Concerning BlenderSync, the `id_maps` do not explicitely manipulate scene data anymore, they
only keep track of which nodes are used, employing the scene to create and delete them. To
achieve this, the ParticleSystem is now a Node, although it does not have any sockets.

This is part of T79131.

Reviewed By: #cycles, brecht

Maniphest Tasks: T79131

Differential Revision: https://developer.blender.org/D8540
August 30, 2020, 18:11 (GMT)
New boolean: silence an "unused" warning.

Previous commit stopped using some functions. Since I may need
them again for future performance tuning, these are just ifdef'd out
for now.
August 30, 2020, 17:58 (GMT)
Fix T79940 VSE Editor crash when opening a different scene as a strip

This was caused by a double lock of the DRW context mutex.

This changes the logic a bit by releasing the DRW context before rendering
with BKE_sequencer_give_ibuf and restoring it after.

Critical fix for 2.91

Reviewed By: dfelinto
Differential Revision: https://developer.blender.org/D8657
August 30, 2020, 17:47 (GMT)
New boolean: another performance improvement.

Instead of calculating exact normals for all faces, just do it
for those that potentially intersect. A big improvement for dense
meshes that only intersect in relatively few places.
August 30, 2020, 17:07 (GMT)
GPUFrameBuffer: Fix build error on MSVC

This also gets rid of the macro.
August 30, 2020, 16:24 (GMT)
Fix T80138 Node Editor: Add Frame turns background gray

The removed `UI_ThemeClearColor` made no sense in this context. It must
have been a leftover from previous refactor.
August 30, 2020, 12:31 (GMT)
Re-enable modifer and bmesh_boolean tests.

These were disabled in the newboolean merge commit.
This commit renables them, using the original 'FAST' solver
so that the result objects need not change.
A TODO to add more tests using the 'EXACT' solver,
though most functionality there is now covered by unit gtests.
August 30, 2020, 11:35 (GMT)
GPUShader: Improve shader compilation log

- Print shader type (fragment, vertex, geom)
- Support for Apple + intel error format.
- Handle formatting a bit more gracefully.
August 30, 2020, 11:11 (GMT)
EEVEE: Fix broken rendering caused by SSR + Alpha blended material

This was affecting Mesa drivers as well as AMD pro driver. But it
might have been noticeable on other config too.

This was introduced by rBa9f2ebb21508.
August 30, 2020, 11:11 (GMT)
GPUFramebuffer: Tag dirty after recursing downsample

Also do not bind automatically. This is fine since the framebuffer will
update next time it's bound.
August 30, 2020, 11:11 (GMT)
GPUState: Move Scissor and Viewport state to framebuffer

This way it is way clearer what each viewport state is. There is
no more save and reset. The scissor test is also saved per
framebuffer.

The only rule to remember is that the viewport state (size and
origin) is reset for both the viewport and scissor when a texture
is attached or detached from an attachment slot.
August 30, 2020, 11:11 (GMT)
BLI_math_vector: Add equals_v4v4_int
August 30, 2020, 11:11 (GMT)
GPUContext: Update internal framebuffer size when activating context

This is to ensure the FrameBuffer extents are always up to date.
August 30, 2020, 11:11 (GMT)
BLI_utildefines: Fix assignment in binary ops for ENUM_OPERATORS

That was an overlook from the review when we introduced it.
August 30, 2020, 11:11 (GMT)
WM: Remove 10year old workaround for buggy drivers

This should have no consequence nowadays.
Can be reverted if needed.
August 30, 2020, 11:11 (GMT)
GPUUniformBuf: Fix debug name being shorter than release name
August 30, 2020, 11:11 (GMT)
Cleanup: GPUContext: Remove default_framebuffer_

This is now handled by FrameBuffer wrapping.
August 30, 2020, 11:11 (GMT)
GPUFrameBuffer: Use debug name support

This is to make it easier to navigate captures in renderdoc.
August 30, 2020, 11:11 (GMT)
GPUFrameBuffer: GL backend isolation

This is related to the Vulkan port T68990.

This is a full cleanup of the Framebuffer module and a separation
of OpenGL related functions.

There is some changes with how the default framebuffers are handled.
Now the default framebuffers are individually wrapped inside special
GLFrameBuffers. This make it easier to keep track of the currently bound
framebuffer state and have some specificity for operations on these
framebuffers.

Another change is dropping the optimisation of only configuring the
changed attachements during framebuffers update. This does not give
any benefits and add some complexity to the code. This might be brought
back if it has a performance impact on some systems.

This also adds support for naming framebuffers but it is currently not
used.
August 30, 2020, 11:11 (GMT)
Cleanup: GPU: Remove unused init/exit functions
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021