June 21, 2021, 14:31 (GMT) |
Cleanup: remove redundant NULL check, reduce scope |
June 21, 2021, 14:31 (GMT) |
Add option to link assets on drag & drop Note: Linking in this case as in link vs. append. Easily confused with linking a data-block to multiple usages (e.g. single material used by multiple objects). Adds a drop-down to the Asset Browser header to choose between Link and Append. This is probably gonna be a temporary place, T54642 shows where this could be placed eventually. Linking support is crucial for usage of the asset browser in production environments. It just wasn't enabled yet because a) the asset project currently focuses on single user, not production assets, and b) because there were many unkowns still for the workflow that have big impact on production use as well. With the recently held asset workshop I'm more confident with enabling linking, as design ideas relevant to production use were confirmed. Differential Revision: https://developer.blender.org/D11536 Reviewed by: Bastien Montagne |
June 21, 2021, 14:31 (GMT) |
Render Window as Non-Child on Win32 platform This patch makes the "Render" window a top-level window, not a child of the main window, which was the case in blender versions prior to 2.93. This means it is no longer "on top", nor is the icon grouped on the taskbar in the same way, but you can Alt-Tab between it and the main window. This change only affects the Windows platform as the other platforms behave this way. See D11576 for links to negative feedback that prompts this change. Differential Revision: https://developer.blender.org/D11576 Reviewed by Brecht Van Lommel |
June 21, 2021, 14:31 (GMT) |
Fix modifier deform by armature check ignoring virtual modifiers Regression in f00cb93dbec7bf5dc05302c868f20fcd5aed7db7 (fix for T63125) |
June 21, 2021, 14:31 (GMT) |
Fix T89001: node search not working anymore |
June 21, 2021, 14:31 (GMT) |
Fix object assets getting duplicated after dropping The operator run when dropping objects would duplicate the dropped object and place that in the scene, even though that was just appended. Addressed by making the duplication optional for the operator. If the duplication is not requested, the object is just added to the scene (if needed), repositioned based on the drop location and selected (deselecting other objects). This makes the operator work as expected when using it to drop assets. Reviewed as part of https://developer.blender.org/D11536. Reviewed by: Bastien Montagne |
June 21, 2021, 14:31 (GMT) |
Fix T88812: Child Windows on Vertical Monitors This patch improves the positioning of child windows when on monitors that are arranged vertically (any above any other). When calculating a window position in Ghost coordinates from GL coordinates we were using monitor height, which can give incorrect values when desktop is taller than any single monitor. So use desktop height instead. See D10637 for more details and examples. Differential Revision: https://developer.blender.org/D10637 Reviewed by Brecht Van Lommel |
June 21, 2021, 14:31 (GMT) |
Overlays: Make flash on mode transfer an operator property This moves the flash on mode transfer effect option from the overlays to an operator property of the mode transfer operator. - This effect is intended to show the target object when no overlays or a minimal set of overlays is enabled. Making it part of the whole set of overlays invalidates this use case. - The effect is not intended to be configurable per viewport, it should be a global option. The effect is still implemented using the overlay engine (instead of a draw modal callback) due to performance and drawing artifacts. Having it implemented as an overlay with runtime timer data in the objects makes also possible to run multiple animations at the same time without any visual glitches. Reviewed By: campbellbarton, JulienKaspar Differential Revision: https://developer.blender.org/D11519 |
June 21, 2021, 14:31 (GMT) |
Cleanup: misleading return argument for hair_create_input_mesh - The argument with named with an `r_` prefix when it was in fact also read from. - The argument passed in had to be 'psys->clmd->hairdata', if it was not - the function would not worked. |
June 21, 2021, 14:31 (GMT) |
Fix missing directory in CMakeLists.txt |
June 21, 2021, 14:31 (GMT) |
Fix: VSE search in mpegts files would fail ffmpeg_generic_seek_workaround did work properly and our start pts calculation was wrong. Reviewed By: Richard Antalik Differential Revision: https://developer.blender.org/D11562 |
June 21, 2021, 14:31 (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 21, 2021, 14:31 (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 21, 2021, 14:31 (GMT) |
Nodes: add utilities to check if there are undefined nodes/sockets |
June 21, 2021, 14:31 (GMT) |
Fix: VSE indexer seeking not working correctly 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: https://developer.blender.org/D11561 |
June 21, 2021, 14:31 (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 21, 2021, 14:31 (GMT) |
Fix: VSE timecodes being used even when turned off. Reviewed By: Richard Antalik Differential Revision: https://developer.blender.org/D11567 |
June 21, 2021, 14:31 (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 21, 2021, 14:31 (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. |
June 21, 2021, 14:31 (GMT) |
Fix T89033: segfault reordering animation channels Fix segmentation fault that can occur when reordering animation channels. Under some specific conditions, the list "act->curves" is empty in the "join_groups_action_temp" function. In particular, this happens when a scene contains an action that has not been pushed down, and with no keyframe in it. Reviewed By: sybren Differential Revision: https://developer.blender.org/D11569 |
|