Revision 429afe0 by Kévin Dietrich 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 |
Revision 1936388 by Howard Trickey 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. |
Revision 3fa1280 by Clément Foucault 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 |
Revision 19c9b27 by Howard Trickey 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. |
Revision ade8d84 by Clément Foucault August 30, 2020, 17:07 (GMT) |
GPUFrameBuffer: Fix build error on MSVC This also gets rid of the macro. |
Revision 0299817 by Clément Foucault 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. |
Revision 3699d6f by Howard Trickey 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. |
Revision dee665b by Clément Foucault 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. |
Revision ad5d5d3 by Clément Foucault 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. |
Revision d98c722 by Clément Foucault 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. |
Revision 8527d84 by Clément Foucault 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. |
Revision 4f395c8 by Clément Foucault August 30, 2020, 11:11 (GMT) |
BLI_math_vector: Add equals_v4v4_int |
Revision 0f372f3 by Clément Foucault 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. |
Revision bb530a7 by Clément Foucault 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. |
Revision 83f144b by Clément Foucault 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. |
Revision 832a975 by Clément Foucault August 30, 2020, 11:11 (GMT) |
GPUUniformBuf: Fix debug name being shorter than release name |
Revision f69c7a7 by Clément Foucault August 30, 2020, 11:11 (GMT) |
Cleanup: GPUContext: Remove default_framebuffer_ This is now handled by FrameBuffer wrapping. |
Revision 807817c by Clément Foucault August 30, 2020, 11:11 (GMT) |
GPUFrameBuffer: Use debug name support This is to make it easier to navigate captures in renderdoc. |
Revision f3a65a1 by Clément Foucault 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. |
Revision 0850afb by Clément Foucault August 30, 2020, 11:11 (GMT) |
Cleanup: GPU: Remove unused init/exit functions |
|
|
|


Master Commits
MiikaHweb | 2003-2021