June 14, 2021, 14:34 (GMT) |
Cleanup: rename 'unsigned int' -> 'uint' |
June 14, 2021, 14:34 (GMT) |
Cleanup: allocation size mismatch warning While harmless, use fixed size int type for pixel data. |
June 14, 2021, 14:34 (GMT) |
Fix libmv new[]/delete[] mismatch |
June 14, 2021, 14:34 (GMT) |
Cleanup: Order return argument last |
June 14, 2021, 14:34 (GMT) |
Cleanup: Reduce indentation from redundant check |
June 14, 2021, 14:34 (GMT) |
Fix T88807: crash when there are multiple links between the same sockets This commit does two things: * Disallows creating more than one link from one socket to a multi socket input. * Properly count links if there happen to be more than one link between the same sockets. The new link counting should also be more efficient asymptotically. Differential Revision: https://developer.blender.org/D11570 |
June 14, 2021, 14:34 (GMT) |
Nodes: remove redundant increment node tree current socket index `ntree->cur_index` was being incremented twice in make_socket_interface. Reviewed By: JacquesLucke Ref D11590 |
June 14, 2021, 14:34 (GMT) |
Fix T88947: invalid normals when converting point cloud to mesh |
June 14, 2021, 14:34 (GMT) |
Fix T88494: add missing depsgraph relation update tags Adding e.g. a Collection Info node creates a new depsgraph relation. Therefore the relations should be updated. |
June 14, 2021, 14:34 (GMT) |
Fix T87867: file open dialog triggers OneDrive file downloads on macOS Until OneDrive supports macOS's native placeholder file implementation, detect the com.microsoft.OneDrive.RecallOnOpen extended file attribute. Differential Revision: https://developer.blender.org/D11466 |
June 14, 2021, 14:34 (GMT) |
BLI_math: Fix several division-by-zero cases. 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. |
June 14, 2021, 14:34 (GMT) |
BLI_math: Cleanup: Use `mul_`/`madd_` functions. 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. |
June 14, 2021, 14:34 (GMT) |
Fix build error in release builds after recent changes |
June 14, 2021, 14:34 (GMT) |
Python API: option for render engines to disable image file saving 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 |
June 14, 2021, 14:34 (GMT) |
tweak messages further. |
June 14, 2021, 14:34 (GMT) |
Refactor: Draw Cache: use 'BLI_task_parallel_range' 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 |
June 14, 2021, 14:34 (GMT) |
Refactor: use 'BLI_task_parallel_range' in Draw Cache 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 |
June 14, 2021, 14:34 (GMT) |
Sequencer: Do not redraw during playback. 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 |
June 14, 2021, 14:34 (GMT) |
Performance: Use parallel range for ImBuf scanline processor. Scanline processor did its own heurestic what didn't scale well when having a multiple cores. In stead of using our own code this patch will leave it to TBB to determine how to split the scanlines over the available threads. Performance of the IMB_transform before this change was 0.002123s, with this change 0.001601s. This change increases performance in other areas as well including color management conversions. Reviewed By: zeddb Differential Revision: https://developer.blender.org/D11578 |
June 14, 2021, 14:34 (GMT) |
Nodes: cache socket identifier to index mapping While this preprocessing does take some time upfront, it avoids longer lookup later on, especially as nodes get more sockets. It's probably possible to make this more efficient in some cases but this is good enough for now. |
|