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-11Sequencer: Do not redraw during playback.Jeroen Bakker
When using large sequences including audio the drawing of the audio on top of the strip takes a lot of time. This effects the playback performance heavily. During the animation playback performance there was a solution for this by only drawing the playhead overlay. This was reverted for the sequence editor as it didn't update the color strips when they were animated. This patch checks if there are animated color strips if so the full screen is redrawn, otherwise only the playhead is redrawn. Reviewed By: ISS Differential Revision: https://developer.blender.org/D11580
2021-06-11Refactor: use 'BLI_task_parallel_range' in Draw CacheGermano Cavalcante
One drawback to trying to predict the number of threads that will be used in the `task_graph` is that we are only sure of the number when the threads are running. Using `BLI_task_parallel_range` allows the driver to choose the best thread distribution through `parallel_reduce`. The benefit is most evident on hardware with fewer cores. This is the result on an 4-core laptop: ||before:|after: |---|---|---| |large_mesh_editing:|Average: 5.203638 FPS|Average: 5.398925 FPS ||rdata 15ms iter 43ms (frame 193ms)|rdata 14ms iter 36ms (frame 187ms) Differential Revision: https://developer.blender.org/D11558
2021-06-11Refactor: Draw Cache: use 'BLI_task_parallel_range'Germano Cavalcante
This is an adaptation of {D11488}. A disadvantage of manually setting the iter ranges per thread is that we don't know how many threads are running in the background and so we don't know how to best distribute the ranges. To solve this limitation we can use `parallel_reduce` and thus let the driver choose the best distribution of ranges among the threads. This proved to be especially beneficial for computers with few cores. **Benchmarking:** Here's the result on an 4-core laptop: ||master:|PATCH: |---|---|---| |large_mesh_editing:|Average: 5.203638 FPS|Average: 5.398925 FPS ||rdata 15ms iter 43ms (frame 193ms)|rdata 14ms iter 36ms (frame 187ms) Here's the result on an 8-core PC: ||master:|PATCH: |---|---|---| |large_mesh_editing:|Average: 15.267482 FPS|Average: 15.906881 FPS ||rdata 9ms iter 28ms (frame 65ms)|rdata 9ms iter 25ms (frame 63ms) |large_mesh_editing_ledge: |Average: 15.145966 FPS|Average: 15.520474 FPS ||rdata 9ms iter 29ms (frame 65ms)|rdata 9ms iter 25ms (frame 64ms) |looptris_test:|Average: 4.001917 FPS|Average: 4.061105 FPS ||rdata 12ms iter 90ms (frame 236ms)|rdata 12ms iter 87ms (frame 230ms) |subdiv_mesh_cage_and_final:|Average: 1.917769 FPS|Average: 1.971790 FPS ||rdata 7ms iter 37ms (frame 261ms)|rdata 7ms iter 31ms (frame 258ms) ||rdata 7ms iter 38ms (frame 252ms)|rdata 7ms iter 33ms (frame 249ms) |subdiv_mesh_final_only:|Average: 6.387240 FPS|Average: 6.591251 FPS ||rdata 3ms iter 25ms (frame 151ms)|rdata 3ms iter 16ms (frame 145ms) |subdiv_mesh_final_only_ledge:|Average: 6.247393 FPS|Average: 6.596024 FPS ||rdata 3ms iter 26ms (frame 158ms)|rdata 3ms iter 16ms (frame 148ms) **Notes:** - The improvement can only be noticed if all extracts are multithreaded. - This patch touches different areas of the code, so it can be split into another patch if the idea is accepted. These screenshots show how threads behave in a quadcore: Master: {F10164664} Patch: {F10164666} Differential Revision: https://developer.blender.org/D11558
2021-06-11Nodes: add utilities to check if there are undefined nodes/socketsJacques Lucke
2021-06-11Fix: VSE search in mpegts files would failSebastian Parborg
ffmpeg_generic_seek_workaround did work properly and our start pts calculation was wrong. Reviewed By: Richard Antalik Differential Revision: http://developer.blender.org/D11562
2021-06-11Fix: VSE indexer seeking not working correctlySebastian Parborg
Because of the added sanity checks in rB14508ef100c9 (D11492), seeking in proxies would not work correctly any more. This is because it wasn't working as intended before, but in most cases this wouldn't be noticeable. However now when the sanity checks are tripped it is very noticeable that something is wrong The indexer tried to use dts values for time stamps when we used pts in our decode functions to get the time positions. This would make it start in the wrong GOP frames when searching. Now that we enforce no crossing of GOP frames when decoding after seek, this would lead to issues. Now we correctly use pts (or dts if pts is not available) and thus we don't have any seeking issues because of time stamp format missmatch. Reviewed By: Richard Antalik Differential Revision: http://developer.blender.org/D11561
2021-06-11Fix: VSE timecodes being used even when turned off.Sebastian Parborg
Reviewed By: Richard Antalik Differential Revision: http://developer.blender.org/D11567
2021-06-11LineArt: Fix crash due to empty duplicollection.YimingWu
2021-06-11Performance: Split ImBuf sampling.Jeroen Bakker
When sampling ImBuf can be a char or a float buffer. Current sampling functions added overhead by checking which kind of buffer was passed every pixel that was sampled. When performing image processing this check can be removed outside the inner loop adding 5% of performance increase in the `IMB_transform` operator.
2021-06-11Sequencer: Transform ImBuf Processor.Jeroen Bakker
Inside the sequencer the cropping and transform of images/buffers were implemented locally. This reduced the optimizations that a compiler could do and added confusing code styles. This patch adds `IMB_transform` to reduce the confusion and increases compiler optimizations as more code can be inlined and we can keep track of indices inside the inner loop. This increases end-user performance by 30% when playing back aa video in VSE. Reviewed By: ISS, zeddb Differential Revision: https://developer.blender.org/D11549
2021-06-11Cleanup: use sentences for pose slide commentsCampbell Barton
2021-06-11Cleanup: pose slider rename region to region_headerChristoph Lendenfeld
Reviewed By: sybren, campbellbarton Ref D11365
2021-06-11Cleanup: pose slider use enum typesChristoph Lendenfeld
use enum types in `tPoseSlideOp` instead of `short` Reviewed By: sybren, campbellbarton Ref D11364
2021-06-11Cleanup: pose slider use strncpyChristoph Lendenfeld
use `STRNCPY` instead of `BLI_strncpy` Reviewed By: sybren, campbellbarton Ref D11363
2021-06-11Cleanup: pose slider data typesChristoph Lendenfeld
- change vec2f to float[2] - pass rctf as pointer - change `const struct rctf` to `const rctf`
2021-06-11Cleanup: pose slider rename "percentage" to "factor"Christoph Lendenfeld
This patch changes occurrences of percentage to factor. There are some usages of percentage left in there on purpose. They are distinguished as follows: - factor is 0-1 float - percentage is 0-100 int Ref D11361 Reviewed by: sybren, campbellbarton
2021-06-11Nodes: move mix rgb node to C++Charlie Jolly
Prepare node for conversion to Geometry Nodes. There should be no functional changes. Reviewed By: HooglyBoogly Differential Revision: https://developer.blender.org/D11506
2021-06-11UI: Correct label naming mistake for VSE text strip box backgroundAaron Carlisle
Seems to be a copy/paste error from rB235c309e5f86e84fb08e1ff2c5c11eb0b775c388
2021-06-10Cleanup: BLI_path_slash_native: use separator defines instead of literal values.Bastien Montagne
Even though this function is alredy using system-specific code, it's still cleaner to use `SEP` and `ALTSEP` here.
2021-06-10Fix T88578: crash when loading value from group output nodeJacques Lucke
It remembered the wrong origin socket and couldn't find the value anymore later on.
2021-06-10Geometry Nodes: Add Texture and Material options to switch nodeEitan
These new socket types can be supported in the switch node along with the others. Differential Revision: https://developer.blender.org/D11560
2021-06-10BLI_mempool: split thread-safe iteration into the private APICampbell Barton
Splitting out thread safe iteration logic means regular iteration isn't checking for the thread-safe pointer each step. This gives a small but measurable overall performance gain of 2-3% when redrawing a high-poly mesh. Ref D11564 Reviewed By: mont29
2021-06-10Docs: remove deprecated parameter from bmesh docsCampbell Barton
The perimeter itself was removed but the documentation wasn't updated. Resolves T89013
2021-06-10Cleanup: move endian values from BKE_global into BLI_endian_definesCampbell Barton
This change was prompted by D6408 which moves thumbnail extraction into a shared function that happens use these endian defines but only links blenlib. There is no need for these defines to be associated with globals so move into their own header.
2021-06-10Cleanup: add commentJacques Lucke
2021-06-10Add unit for time stored in secondsSergey Sharybin
Allows to define properties which will have proper units displayed in the interface. The internal storage is expected to be seconds (which matches how other times are stored in Blender). Is not immediately used in Blender, but is required for the upcoming feature in Cycles X (D11526) The naming does not sound very exciting, but can't think of anything better either. For test it probably easiest to define FloatProperty with subdtype of TIME_ABSOLUTE. Differential Revision: https://developer.blender.org/D11532
2021-06-10DataTransfer: Fix vertices being wrongly added to vgroup.Bastien Montagne
Previously, a vertex from destination mesh would always be added to all transferred vgroup (with a 0.0 weight), even if none of its matching sources in source mesh belonged to the matching source vgroups. Now a destination vertex is only added to a given destination vgroup if at least one of its source vertices belong to the matching source vgroup. Issue found and initial investigation by @pls in D11524, thanks!
2021-06-10Cleanup: spelling in commentsCampbell Barton
2021-06-10Cleanup: quiet array-parameter warning from GCC11Campbell Barton
2021-06-10Fix: Point translate and point scale don't execute on curve dataHans Goudey
2021-06-10Fix T88546: Pose slider typed input not workingChristoph Lendenfeld
Remove an unnecessary call to pose_slide_mouse_update_percentage That call was overriding the typed value Reviewed By: #animation_rigging, Sybren A. Stüvel Differential Revision: https://developer.blender.org/D11395 Ref D11395
2021-06-09Geometry Nodes: Copy spline attributes in the curve resample nodeHans Goudey
Previously only point domain attributes were copied to the result curve.
2021-06-09Fix T88799: 3DViewport Stats Column MeasurementsHarley Acheson
To draw the overlay stats in columns the strings must be measured to find the longest one. In some circumstances this measurement can be incorrect. We draw the text with a specific size yet do not explicitly set the size before calling BLF_size. This patch properly sets the size so that the measurement will match what will be used for output. See T88799 for examples of measurement failure. Differential Revision: https://developer.blender.org/D11504 Reviewed by Hans Goudey
2021-06-09Splines: Add API functions for interpolating dataHans Goudey
First, expand on the interpolation to evaluated points with a templated helper function, and a function that takes a GSPan. Next, add a set of functions to `Spline` for interpolating at arbitrary intervals between the evaluated points. The code for doing that isn't that complicated anyway, but it's nice to avoid repeating, and it might make it easier to unroll the special cases for the first and last points if we require the index factors to be sorted.
2021-06-09Geometry Nodes: Add Convex Hull NodeHenrik Dick
This commit adds a node to output the convex hull of any input geometry as a mesh, which is an enclosing geometry around a set of points. All geometry types are supported, besides volumes. The code supports operating on instances to avoid copying all input geometry before the operation. The implementation uses the same backend as the operation in edit mode, but uses Mesh directly instead of BMesh. Attribute transfer is not supported currently, but would be a point of improvement for the future if it can work in a predictable way on different geometry input types. Differential Revision: https://developer.blender.org/D10925
2021-06-09Fix T88974: Add missing liboverrides to GP modifiers and shaderfx.Bastien Montagne
Proper RNA code was simply never added for those...
2021-06-09Cleanup: use doxy sections for task_iterator.cCampbell Barton
2021-06-09Cleanup: missing NULL check in assertCampbell Barton
2021-06-09Cleanup: redundant/unused assignmentsCampbell Barton
2021-06-09Cleanup: replace 'else if' with 'else'Campbell Barton
2021-06-09Cleanup: remove redundant checks which have already been testedCampbell Barton
Note that these changes are limited simple cases as these kinds of changes could allow for errors when refactoring code when the known state is not so obvious.
2021-06-09Cleanup: simplify grease pencil preset set logicCampbell Barton
2021-06-09Cleanup: simplify grease pencil type checksCampbell Barton
2021-06-09Cleanup: spelling in commentsCampbell Barton
2021-06-09Cleanup: quiet array-parameter warningCampbell Barton
2021-06-09Fix uninitialized variable in task.MempoolIterTLS testCampbell Barton
Error in 14f3b2cdad2d7b00ce3ea27bf8eb0087ac2a6cbd.
2021-06-09LineArt: Camera marker update fix.YimingWu
The original fix was probably flushed by some newer line art commits. Fixed. See https://developer.blender.org/T88464
2021-06-09Revert "GPencil: Add custom normal entry to bGPDspoint."YimingWu
This reverts commit f546b0800b9121b24b1292f1ec602ed9964d1848.
2021-06-09BMesh: multi-thread face tessellationCampbell Barton
Use BM_iter_parallel for face tessellation, this gives around 6.5x speedup for BM_mesh_calc_tessellation on high poly meshes in my tests, although exact speedup depends on available cores.
2021-06-09BLI_task: add TLS support to BLI_task_parallel_mempoolCampbell Barton
Support thread local storage for BLI_task_parallel_mempool, as well as support for the reduce and free callbacks. mempool_iter_threadsafe_* functions have been moved into a private header thats only shared between task_iterator.c and BLI_mempool.c so the TLS can be made part of the iterator array without having to rely on passing in struct offsets. Add test task.MempoolIterTLS that ensures reduce and free are working as expected. Reviewed By: mont29 Ref D11548