Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
AgeCommit message (Collapse)Author
2022-09-23Cleanup: use depsgraph iterator settings in rnaJacques Lucke
This was missing in rBe5d4afd5bac71e29ba71ecf091feaa0d70b70260.
2022-09-23Mesh: Use cached looptris in draw cache extractionHans Goudey
The mesh's triangulation cache is often created for other operations besides the drawing code, but during the mesh draw cache extraction it is recalculated on every single time. It is simpler and faster to use the existing MLoopTri array. It can also save memory if the cache already exists by avoiding allocating a duplicate array. For a 4 million face quad mesh, that is already 128 MB. Also use face normals for mesh triangulation if they aren't dirty, which should provide a general speedup when they're both necessary. Recently 54182e4925de made this more reliable, since the triangulation cache is invalidated properly when the mesh is deformed. Fixes T98073 Differential Revision: https://developer.blender.org/D15550
2022-09-23Mesh: Move sculpt face sets to a generic attributeHans Goudey
Similar to the other refactors from T95965, this commit moves sculpt face sets to use a generic integer attribute named `".sculpt_face_set"`. This makes face sets accessible in the Python API. The attribute is not visible in the attributes list or the spreadsheet because it is meant for internal use, though that could be an option in the future along with other similar attributes. Currently the change is small, but in the future this could simplify code by allowing use of more generic attribute APIs. Differential Revision: https://developer.blender.org/D16045
2022-09-23Cleanup: Grammar fix in lazy functionHans Goudey
2022-09-23Cleanup: fix compiler errorsJacques Lucke
2022-09-23Cleanup: give anonymous enum a nameJacques Lucke
2022-09-23Depsgraph: generalize passing parameters to depsgraph object iteratorJacques Lucke
This makes it easier to pass more parameters to the iterator in the future. Differential Revision: https://developer.blender.org/D16047
2022-09-23Fix T101109: Animation on nodes problems when dealing with Node GroupsPhilipp Oeser
Whenever animation on nodes was transfered to/from nodegroups (grouping/ ungrouping/separating) via BKE_animdata_transfer_by_basepath, it was possible to create new nodes with the same name (in the formerly same path -- see report for an example of this) and animation from the original node was still performed on them. Issue went away after save/ reload. In order to fully update the action, a depsgraph is now performed on the action (similar to what is done when renaming for example). Maniphest Tasks: T101109 Differential Revision: https://developer.blender.org/D15987
2022-09-23Fix T101046: missing DEG update changing bone layers in editmodePhilipp Oeser
Following {T54811} (and {rBbb92edd1c802}), DEG updates have been added to the various operators. This has also been done for the layers operators (see {rBf998bad211ae}, `ARMATURE_OT_bone_layers` has been marked done in T54811). However, instead of `ARMATURE_OT_bone_layers`, the update tagging actually happened for `POSE_OT_bone_layers`. Now do this for `ARMATURE_OT_bone_layers` as well (keep it for `POSE_OT_bone_layers`, dont think this is wrong there either). Maniphest Tasks: T101046 Differential Revision: https://developer.blender.org/D15969
2022-09-23Cleanup: use ELEM macroCampbell Barton
2022-09-23Cleanup: float literalsCampbell Barton
2022-09-23Fix T100141: Header Alignment of New EditorsCampbell Barton
Revert part of [0] which changed logic for scaling 2D regions when the window resize. This re-introduces T72392 which can be fixed separately. [0]: 6243972319289d86c70ce9946d10909e7eddfdaf
2022-09-23Cleanup: replace int return value with boolCampbell Barton
2022-09-23Cleanup: use lowercase function calls & macros in for CMakeCampbell Barton
This is already the case for most CMake usage. Although some find modules are an exception to this, as they were originally maintained externally they use some different conventions. Also corrected bad indentation in: intern/cycles/CMakeLists.txt
2022-09-23Cleanup: spelling in commentsCampbell Barton
2022-09-23Cleanup: formatCampbell Barton
2022-09-23Cleanup: compiler warningsCampbell Barton
2022-09-23Fix: Add missing drag link search item for store named attribute nodeHans Goudey
The search didn't add an item for the geometry output socket.
2022-09-22Curves editmode: show point selectionPhilipp Oeser
Points cannot be selected atm in editmode, this patch just shows the selection from sculptmode in editmode. Since the selection in sculptmode is a float, a point is considered selected as soon as the float selection is above 0.0f. Implementation: this piggy-back on the existing drawing via overlay_edit_curve_point.glsl which requires a "data" VBO which holds flags for selection (next to others such as "active" - which we also have to take care of later). Differential Revision: https://developer.blender.org/D16021
2022-09-22Fix T100846: Bump blender file min version for forward compatibility warningCharlie Jolly
Also reported in blender.chat. Corrupted files were reported after opening files with the new Mix node (rBbfa0ee13d539). Files saved in 3.4 will not be compatible with older versions of Blender. Opening these files in previous versions will exhibit a red undefined node. Reviewed By: HooglyBoogly, brecht Differential Revision: https://developer.blender.org/D16025
2022-09-22GPU: Ensure rendering operations occur within GPU render boundaries.Jason Fielder
This is required by the Metal backend to perform flushing of temporary objective-C resources. This is implemented as a global autoreleasepool, and is to ensure consistency such that all rendering operations, whether called via events, or via main loop will be within an autoreleasepool. Authored by Apple: Michael Parkin-White Ref T96261 Reviewed By: fclem Differential Revision: https://developer.blender.org/D15900
2022-09-22Metal: GLSL shader compatibility changes for global uniform and interface ↵Jason Fielder
name collision. For the Metal shader translation support for shader-global uniforms are remapped via macro's, and in such cases where a uniform name matches a vertex attribute name, compilation errors will occur due to this injected syntax being incompatible with the immediate code. Also adding source-level function interface alternatives where sized arrays are passed in. These are not supported directly in Metal shading language and are instead handled as pointers. These pointers require explicit address-space qualifiers in some cases, if device/constant address space memory is passed into the function. Ref T96261 Reviewed By: fclem Differential Revision: https://developer.blender.org/D15898
2022-09-22Metal: First set of Geometry Shader alternative implementations using SSBO ↵Jason Fielder
vertex shader fetch. These implementations remove dependency on the Geometry pass by instead invoking one vertex shader instance for each expected output vertex, matching what a geometry shader would emit. Each vertex shader instance is then responsible for calculating the same output position based on its vertex_id as the logic would in the geometry shader version. SSBO Vertex fetch enables full random-access into a vertex buffer by binding it as a read-only SSBO. This enables each instance to read neighbouring vertex data to perform contextual calculations as a geometry shader would, for cases where attribute Multiload is not supported. Authored by Apple: Michael Parkin-White Ref T96261 Reviewed By: fclem Differential Revision: https://developer.blender.org/D15901
2022-09-22Metal: MTLContext implementation and immediate mode rendering support.Thomas Dinges
MTLContext provides functionality for command encoding, binding management and graphics device management. MTLImmediate provides simple draw enablement with dynamically encoded data. These draws utilise temporary scratch buffer memory to provide minimal bandwidth overhead during workload submission. This patch also contains empty placeholders for MTLBatch and MTLDrawList to enable testing of first pixels on-screen without failure. The Metal API also requires access to the GHOST_Context to ensure the same pre-initialized Metal GPU device is used by the viewport. Given the explicit nature of Metal, explicit control is also needed over presentation, to ensure correct work scheduling and rendering pipeline state. Authored by Apple: Michael Parkin-White Ref T96261 (The diff is based on 043f59cb3b5835ba1a0bbf6f1cbad080b527f7f6) Reviewed By: fclem Differential Revision: https://developer.blender.org/D15953
2022-09-22Metal: MTLVertBuf implementation and support for texture creation from ↵Thomas Dinges
vertex buffers. Metal: MTLVertBuf implementation and support for texture creation from vertex buffers. Authored by Apple: Michael Parkin-White Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D15452
2022-09-22Geometry Nodes: Add Self Object NodeHans Goudey
From the nodes' description: "Retrieve the object that contains the geometry nodes modifier currently being executed". This was discussed in the most recent geometry nodes module meeting. Because the node allows you to retrieve the position of the modifier object, it has to add a depsgraph relation to object transform. Expect that modifiers will be reevaluated when moving the object. In the future, better static analysis of node trees could make this check smarter. Differential Revision: https://developer.blender.org/D16037
2022-09-22Fix crash loading fonts that fail to be readCampbell Barton
Null pointer dereference since [0] when font's can't be read. [0]: d39abb74a0a99fde2c9d845821d52c198ae4da24
2022-09-22Refactor: const-correctness in bmesh conversion assertSergey Sharybin
2022-09-22UV: add toggle to show the grid over the imageChris Blackbourn
In UV editor, previously unable to see grid and image at same time. Maniphest Tasks: T78391 Differential Revision: https://developer.blender.org/D16038
2022-09-22PyGPU: Allow single bool in 'GPUShader.uniform_bool' methodGermano Cavalcante
As with the other uniform methods, a single value is expected.
2022-09-22Fix T101262: Crash in spreadsheet selection filter with empty domainHans Goudey
The BMesh selection virtual array was empty. There are a few different places we could add an "empty" check here, but at the top of the function is the simplest for now.
2022-09-22Fix: Use correct node group for add node searchHans Goudey
Similar to e5a7470638803fd, the tree currently being edited should be used for polling and other tests, rather than the node tree at the root of the node editor's path.
2022-09-22Cleanup: Use const arguments for node group poll functionHans Goudey
Also make the disabled hint argument optional.
2022-09-21Fix EEVEE: Screen Space Refraction Artefacts caused by viewport aspect ratioClément Foucault
This was caused by the vertical/horizontal clasification being done in NDC space which wasn't respecting the Aspect ratio. Multiplying the test vector by the target size fixes the issue.
2022-09-21Attributes: Allow calling "finish" on empty accessorsHans Goudey
This removes some boilerplate when creating many optional attributes.
2022-09-21Attributes: Correct implementation of typed "write_only" methodHans Goudey
The typed "lookup_or_add_for_write_only" function is meant to do the same thing as the non-typed version of the function. Instead, it still initialized values of new attribute arrays, which isn't meant to happen. Missed in 4c91c24bc7cbe2c4f97be373. I also had to correct one place that used the "write_only" function but didn't intialize all values.
2022-09-21Mesh: Avoid uninitialized values when converting BMesh to MeshHans Goudey
I didn't observe this issue in practice, but since the write_only version of the attribute API isn't meant to initialize trivial types, theoretically this could be a problem if the attribute is created halfway through converting the BMesh to a Mesh.
2022-09-21Cleanup: Miscellaneous cleanup in distribute points in volume nodeHans Goudey
- Fix unused variable warning - Change whitespace - Use standard variable names - Use standard method to remove non-pointcloud components
2022-09-21Fix race condition in memory freeing in edit mesh wrapper to meshSergey Sharybin
The BM_mesh_bm_to_me_for_eval() cal be called on the same BMesh from multiple threads. This adds a restriction that this function should not modify the BMesh. This started to be violated quite madly during the generic attributes changes. This change makes it so that the BMesh is not modified. The code looks less functional-like, but it solves the threading conflict. Ideally the BMesh will be const in the function but doing it now is a bit tricky due to the other APIs. The repro case for the crash is a bit tricky to reproduce from scratch. For those who has access to the Heis production repo /pro/lib/char/pack_bot/pack_bot.blend file can be used. Simply add loop to "GEO-leg.R" object and use bevel operator on the new loop. There is still some write of the element indices happening in this function. In theory those could be removed (together with the dirty index tag clear) but it leads to obscure crashes in area far away from this one. I've left it unchanged for now as on 64bit platforms those assignments should not be causing real issues. Differential Revision: https://developer.blender.org/D16023
2022-09-21Refactor: Simplify transfer of tags in the depsgraph builderSergey Sharybin
Base it in an existing building blocks rather than having dedicated structure for it. No functional changes is expected, just preparing to make the code more reusable.
2022-09-21Fix inconsistent node name handling in dependency graphSergey Sharybin
The ID nodes will use the provided component name to maintain the map-based storage, while the component node itself could override the empty name with a type name. This lead to situations when it is not possible to lookup the operation from its owner parameters.
2022-09-21Refactor: More const-correctness in node builderSergey Sharybin
Make it so find type of methods receive const pointers and do not modify graph topology. The latter was violated in the find_operation() which could have created an empty component. This is not intended behavior. No functional changes is expected.
2022-09-21Refactor: Move depsgraph node keys to own fileSergey Sharybin
They are not specific to the relations builder and could be used outside of it.
2022-09-21PyAPI: disable IMB color management methods for stand-alone mathutilsCampbell Barton
Allow building a standalone mathutils without including imbuf.
2022-09-21Fix compile error on (designated initializers in C++)Julian Eisel
2022-09-21Cleanup: Move file browser history handing to own fileJulian Eisel
Was placed in filelist.cc, which didn't make much sense since they deal with quite different things.
2022-09-21Refactor: Move file browser filelist.c to C++Julian Eisel
I'm adding some asset APIs/types in C++ that the file-listing code would use. I prefer porting this code to C++ over adding a C-API for the asset code. Includes some minor cleanups that shouldn't change behavior, like using `MEM_new()`/`MEM_cnew()`, C++ style C-library includes, `LISTBASE_FOREACH()`, removing unnecessary typedefs, etc.
2022-09-21File Browser: Manual auto-increase name support for output filepathsDalai Felinto
This functionality was present until Blender 2.80. Basically it adds back the "+" and "-" buttons in the file browser when it stores an output filepath. This is useful for someone rendering multiple versions of an animation (or a composition) to compare. At the moment this is used for the render output, and the File Output node in the compositor. Differential Revision: https://developer.blender.org/D15968
2022-09-21Revert "Cleanup: Fix warning unused variable 'mode' when doing make lite"Dalai Felinto
Sorry, this was working before I rebased. I believe the warning was fixed and the rebase still applied. The commit as it was introduced building problems This reverts commit ae21319d7f7d3e779c25b08d07a1458d6c054560.
2022-09-21Cleanup: Fix warning unused variable 'mode' when doing make liteDalai Felinto