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
AgeCommit message (Collapse)Author
2021-06-16VSE: Improve animation evaluation performanceRichard Antalik
Use lookup string callback function for `sequences_all` RNA property `rna_SequenceEditor_sequences_all_lookup_string` using a GHash for faster lookups. When names are changed or strips are added/removed the lookup is tagged invalid. The next time the lookup is used it will rebuild it. Reviewed By: sergey, jbakker Differential Revision: https://developer.blender.org/D11544
2021-06-16Geometry Nodes: Allow int attribute input fields with single valueHans Goudey
Just like the way we often have a choice between an attribute input and a single float, this adds the ability to choose between attribute and integer input sockets, useful for D11421.
2021-06-16Cleanup: Expose function publicly, renameHans Goudey
There is no particular reason these two functions shouldn't be used outside of the bezier spline implementation since they don't do anything particularly controversial.
2021-06-16Splines: Add resize method to CurveEvalHans Goudey
This helps when adding splines to a new curve in parallel.
2021-06-15DRW: sanitize 'DRW_mesh_batch_cache_dirty_tag'Germano Cavalcante
Create maps that specify which batches have vbo or ibo as a reference and use these maps to discard batches along with buffers. Differential Revision: https://developer.blender.org/D11588
2021-06-15Cleanup: Add files for version independent versioning helpersJulian Eisel
Adds `source/blender/blendloader/intern/versioning_common.cc` and `versioning_common.h` for version independent versioning functions. I only placed `do_versions_add_region_if_not_found()` in there for now. `blo_do_version_old_trackto_to_constraints()` could also be added, but that's so old, I prefer keeping that in `versioning_legacy.c`.
2021-06-15UI: Support right aligned non-shortcut hints in widgetsJulian Eisel
Widget drawing code already supported drawing right-aligned, grayed out shortcut strings. This patch generalizes things a bit so this can also be used to draw other hints in the same way. There have been a few instances in the past where this would've been useful, D11046 being the latest one. Note that besides some manual regression testing, I didn't check if this works yet, as there is no code actually using it (other than the shortcuts). Can be checked as part of further development for D11046. A possible further improvement would be providing a way to define how clipping should be done. E.g. sometimes the right-aligned text should be clipped first (because it's just a hint), in other cases it should be left untouched (like current code explicitly does it for shortcuts). Removes the `UI_BUT_HAS_SHORTCUT` flag, which isn't needed anymore.
2021-06-15BLI: use explicit task isolation, no longer part of parallel operationsBrecht Van Lommel
After looking into task isolation issues with Sergey, we couldn't find the reason behind the deadlocks that we are getting in T87938 and a Sprite Fright file involving motion blur renders. There is no apparent place where we adding or waiting on tasks in a task group from different isolation regions, which is what is known to cause problems. Yet it still hangs. Either we do not understand some limitation of TBB isolation, or there is a bug in TBB, but we could not figure it out. Instead the idea is to use isolation only where we know we need it: when holding a mutex lock and then doing some multithreaded operation within that locked region. Three places where we do this now: * Generated images * Cached BVH tree building * OpenVDB lazy grid loading Compared to the more automatic approach previously used, there is the downside that it is easy to miss places where we need isolation. Yet doing it more automatically is also causing unexpected issue and bugs that we found no solution for, so this seems better. Patch implemented by Sergey and me. Differential Revision: https://developer.blender.org/D11603
2021-06-15Draw Cache: avoid recalculating 'poly_normals'Germano Cavalcante
Call `BKE_mesh_ensure_normals_for_display` to avoid recalculating poly_normals. **Benchmark** ||master:|PATCH: |---|---|---| |looptris_test:|Average: 3.995076 FPS|Average: 4.047470 FPS ||rdata 11ms iter 91ms (frame 235ms)|rdata 11ms iter 86ms (frame 233ms) |subdiv_mesh_cage_and_final:|Average: 1.884492 FPS|Average: 1.900114 FPS ||rdata 7ms iter 42ms (frame 268ms)|rdata 7ms iter 39ms (frame 265ms) ||rdata 7ms iter 44ms (frame 259ms)|rdata 7ms iter 42ms (frame 257ms) |subdiv_mesh_final_only:|Average: 6.245944 FPS|Average: 6.289000 FPS ||rdata 3ms iter 23ms (frame 153ms)|rdata 3ms iter 21ms (frame 154ms) |subdiv_mesh_final_only_ledge:|Average: 6.263482 FPS|Average: 6.187218 FPS ||rdata 3ms iter 23ms (frame 156ms)|rdata 3ms iter 22ms (frame 154ms) Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11527
2021-06-15Cleanup: use back-slash for doxygen commentsCampbell Barton
2021-06-15CMake: disable TBB when not foundCampbell Barton
2021-06-15DrawManager: Cache material offsets.Jeroen Bakker
When using multiple materials in a single mesh the most time is spend in counting the offsets of each material for the sorting. This patch moves the counting of the offsets to render mesh data and caches it as long as the geometry doesn't change. This patch doesn't include multithreading of this code. Reviewed By: mano-wii Differential Revision: https://developer.blender.org/D11612
2021-06-15Fix warning treated as an errorGermano Cavalcante
"void' function returning a value".
2021-06-15Cleanup: Added hierarchy in MeshBufferExtractionCache.Jeroen Bakker
2021-06-15Cleanup: Split mesh_render_data_loose_geom into multiple functions.Jeroen Bakker
2021-06-15Fix: wrong size checkJacques Lucke
This fixes a bad mistake by myself. Thanks Lukas Tönne for telling me.
2021-06-15Fix: Sequencer backdrop not updated during playback.Jeroen Bakker
Caused by recent optimization in {7b76a160a4}.
2021-06-15BMesh: assert that face normals have been updated for tessellationCampbell Barton
This catches missing normal updates that may cause invalid tessellation.
2021-06-15Cleanup: remove return value from face normal calculationCampbell Barton
This value is always 'sides - 2', no need to return this value.
2021-06-15Fix missing normal update in edit-mesh blend-from shape operatorCampbell Barton
2021-06-15BMesh: use faster normal update method for edit-mesh coordinatesCampbell Barton
This wasn't included in the previous fix so it'd be 2.93 compatible.
2021-06-15Fix outdated face tessellation use when editing edit-mesh coodinatesCampbell Barton
2021-06-15Screen: clear runtime structures on file-read & data-copyCampbell Barton
Clear the runtime data structs instead of individual members, this simplifies adding new runtime members as there are at least two places they would need to be cleared. Resolves error in D8883.
2021-06-15Cleanup: correct incomplete commentCampbell Barton
2021-06-15Fix image space missing mask display panelCampbell Barton
2021-06-15Cleanup: remove "_" prefix for used argumentsCampbell Barton
2021-06-15Cleanup: unused argument & variable warningsCampbell Barton
2021-06-15Cleanup: use private methods for internal operator utilitiesCampbell Barton
Also remove unused argument.
2021-06-15Cleanup: use doxygen comments for DNA_color_typesCampbell Barton
Also use enum instead of defines for Scopes.wavefrm_mode
2021-06-15Win8 cleanup, remove dead function pointer and macro.Nicholas Rishel
2021-06-14Geometry Nodes: Join dynamic curve attributes in the join geometry nodeHans Goudey
This commit lets the join geometry node transfer dynamic attributes to the result, the same way that point cloud and mesh attributes are joined. The implementation is different though, because of an optimization implemented for curves to avoid copying splines. The result attribute is added with the highest priority domain (points over splines), and the highest complexity data type. If one curve had the attribute on the spline domain but not others, the point domain values will be used. Generally this is a bit lower level than I would have liked this code to be, but should be efficient, and it's really not too complicated. Differential Revision: https://developer.blender.org/D11491
2021-06-14Geometry Nodes: Parallelize curve reverse nodeHans Goudey
Each spline can be handled separately here. This gives approximately a 2x speedup on my 8 core processor on an input of 80000 2 point splines.
2021-06-14Cleanup: Refactor join geometry node attribute gatheringHans Goudey
Instead of building a set and then determining the final domain and type for every attribute separately in the loop, construct a map with the necessary data in the first place. This is simpler and should be slightly more efficient. Split from D11491
2021-06-14Geometry Nodes: Curve Reverse NodeJohnny Matthews
This is an implementation of T88722. It accepts a curve object and for each spline, reverses the order of the points and all attributes. This is more of a foundational node to support other nodes in the future (like curve deform) Selection takes spline domain attributes to determine which splines are selected. If no selection is present all splines are reversed. Differential Revision: https://developer.blender.org/D11538
2021-06-14Geometry Nodes: Curve to Points Node for Evaluated DataHans Goudey
This node implements the second option of T87429, creating points along the input splines with the necessary evaluated information for instancing: `tangent`, `normal`, and `rotation` attributes. All generic curve point and spline attributes are copied to the result points as well. The "Count" and "Length" methods are just like the current options in the resample node, but the output is points instead of a curve. The "Evaluated" method uses the points you see on the curve directly, and therefore should be the fastest. The rotation data is retrieved from a transform matrix built with the same method that the curve to mesh node uses. The radius attribute is divided by 10 so the points don't look absurdly huge in the viewport. In the future that could be an option. For the implementation, one thing that could use an improvement is the amount of temporary allocations while resampling to evaluated points before the final points. I expect that reusing a buffer for each thread would give a nice improvement. Differential Revision: https://developer.blender.org/D11539
2021-06-14Fix Build WarningHarley Acheson
Marking unused function argument. Introduced in bcff0ef9cabc Differential Revision: https://developer.blender.org/D10887
2021-06-14UI: Windows Blend File AssociationHarley Acheson
This patch allows Windows users to specify that their current blender installation should be used to create thumbnails and be associated with ".blend" files. This is done from Preferences / System. The only way to do this currently is from the command-line and this is sometimes inconvenient. Differential Revision: https://developer.blender.org/D10887 Reviewed by Brecht Van Lommel
2021-06-14Fix: VSE seeking with proxy strips would fail on certain framesSebastian Parborg
If the last decoded frame had the same timestamp as the GOP current packet, then we would skip over this frame when fast forwarding and we would seek until the end of the file. This would could only be triggered reliably in single threaded mode. Reviewed By: Richard Antalik Differential Revision: http://developer.blender.org/D11601
2021-06-14Fix possible C-linkage warning on ClangJulian Eisel
The warning would appear when using the `ENUM_OPERATORS()` macro inside of an `extern "C"` block. Didn't cause a warning in master currently, but in the `asset-browser-poselib` branch. After macro expansion, there would be C++ code in code with C linkage (`extern "C"`). So make sure the expanded C++ code always uses C++ linkage. The syntax used is totally C++ compliant: the C++ standard requires that in such nested linkage specifications, the innermost one determines the linking language (e.g. see https://timsong-cpp.github.io/cppwp/n4659/dcl.link#4).
2021-06-14Error Messages Creating Thumbnail FoldersHarley Acheson
On the Windows platform there will be some errors printed to the console if the user's thumbnail cache folder doesn't already exist. While creating those folders there is an attempt to do so multiple times and so we get errors when trying to create when exists. This is caused by paths that have hard-coded forward slashes, which causes our path processing routines to not work correctly. This patch defines those paths using platform-varying separator characters. Differential Revision: https://developer.blender.org/D11505 Reviewed by Brecht Van Lommel
2021-06-14Cleanup: rename id to owner_id for python id propertiesJacques Lucke
This is consistent with the naming in `PointerRNA`.
2021-06-14PyAPI: remove deprecated bpy.app.binary_path_pythonCampbell Barton
2021-06-14BMesh: support face-normal calculation in normal & looptri functionsCampbell Barton
Support calculating face normals when tessellating. When this is done before updating vertex normals it gives ~20% performance improvement. Now vertex normal calculation only needs to perform a single pass on the mesh vertices when called after tessellation. Extended versions of normal & looptri update functions have been added: - BM_mesh_calc_tessellation_ex - BM_mesh_normals_update_ex Most callers don't need to be aware of this detail by using: - BKE_editmesh_looptri_and_normals_calc - BKE_editmesh_looptri_and_normals_calc_with_partial - EDBM_update also takes advantage of this, where calling EDBM_update with calc_looptri & calc_normals enabled uses the faster normal updating logic.
2021-06-14BMesh: remove unit-length edge-vector cache from normal calculationCampbell Barton
Bypass stored edge-vectors for ~16% performance gains. While this increases unit-length edge-vector calculations by around ~4x the overhead of a parallel loop over all edges makes it worthwhile. Note that caching edge-vectors per-vertex performs better and may be worth investigating further, although in my tests this increases code complexity with barley measurable benefits over not using cache at all. Details about performance and possible optimizations are noted in bm_vert_calc_normals_impl.
2021-06-14Edit Mesh: use params arg for update function, add calc_normals argCampbell Barton
Rename function EDBM_update_generic to EDBM_update, use a parameters argument for better readability. Also add calc_normals argument, which will have benefits when calculating normals and tessellation together is optimized.
2021-06-14Cleanup: clang-formatCampbell Barton
2021-06-14Python API: option for render engines to disable image file savingThomas Lachmann
For some custom rendering engines it's advantageous not to write the image files to disk. An example would be a network rendering engine which does it's own image writing. This feature is only supported when bl_use_postprocess is also disabled, since render engines can't influence the saving behavior of the sequencer or compositor. Differential Revision: https://developer.blender.org/D11512
2021-06-14Fix build error in release builds after recent changesBrecht Van Lommel
2021-06-14BLI_math: Cleanup: Use `mul_`/`madd_` functions.Bastien Montagne
Better to avoid explicit vectors components direct manipulation when a generic operation for whole vector exists, if nothing else it avoids potential mistakes in indices.
2021-06-14BLI_math: Fix several division-by-zero cases.Bastien Montagne
Those were caused by various tools used on degenerate geometry, see T79775. Note that fixes are as low-level as possible, to ensure they cover as much as possible of unreported issues too. We still probably have many more of those hidden in BLI_math though.