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-07-20Cleanup: Clang formatAaron Carlisle
2021-07-19Compositor: Export operation results as debug optionManuel Castilla
When fixing issues, seeing operation results can be helpful for detecting which operation went wrong. This commit adds an option for exporting all operations results to image files. Exceptions are: - Output operations: They are already exported or can be seen in UI. - Constant operations: There are too many and is rarely useful. They are exported to "<temp session folder>/COM_operations/" with filenames "<operation class name>_<operation id>.png". Only works on full frame execution mode. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11722
2021-07-19Compositor: Full frame Brightness nodeManuel Castilla
Adds full frame implementation to this node operation. No functional changes. 2.4x faster than tiled fallback. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11677
2021-07-19Compositor: Full frame Mix nodeManuel Castilla
Adds full frame implementation to this node operations. No functional changes. 2.3x faster than tiled fallback on average. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11686
2021-07-19Compositor: Full frame Viewer nodeManuel Castilla
Adds full frame implementation to this node operation. No functional changes. No performance changes. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11698
2021-07-19Compositor: Full frame Double Edge Mask nodeManuel Castilla
Adds full frame implementation to this node operation. No functional changes. No performances changes. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11750
2021-07-19Compositor: Full frame Ellipse Mask nodeManuel Castilla
Adds full frame implementation to this node operation. No functional changes. 3x times faster than tiled fallback. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11635
2021-07-19Compositor: Buffer iteratorsManuel Castilla
Currently we mostly iterate buffer areas using x/y loops or through utility methods extending from base classes. To simplify code in simple operations this commit adds wrappers for specifying buffer areas and their iterators for raw buffers with any element stride: - BufferRange: Specifies a range of contiguous buffer elements from a given element index. - BufferRangeIterator: Iterates elements in a BufferRange. - BufferArea: Specifies a rectangle area of elements in a 2D buffer. - BufferAreaIterator: Iterates elements in a BufferArea. - BuffersIterator: Simultaneously iterates an area of elements in an output buffer and any number of input buffers. - BuffersIteratorBuilder: Helper for building BuffersIterator adding buffers one by one. For iterating areas coordinates it adds `XRange` and `YRange` methods that return `IndexRange`. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11882
2021-07-15Fix T49944: Compositor ID Mask Anti-Aliasing not workingAidan Haile
Replaces current ID Mask node Anti-Aliasing operation by SMAA operations with default settings as proposed by Jeroen Bakker. SMAA produces smoother edges. Reviewed By: manzanilla Differential Revision: https://developer.blender.org/D11881
2021-07-15Cleanup: replace BLI_assert(!"text") with BLI_assert_msg(0, "text")Campbell Barton
This shows the text as part of the assertion message.
2021-07-13Compositor: Full frame Render Layers nodeManuel Castilla
Adds full frame implementation to this node operations. No functional changes. 2.5x faster than tiled fallback on average. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11690
2021-07-13Compositor: Full frame Translate nodeManuel Castilla
Adds full frame implementation to this node operation. No functional changes.
2021-07-13Compositor: Fix pixels being wrapped outside buffer areaManuel Castilla
Not causing issues in current master because all buffer areas are at (0, 0) position and `Extend` is not used. But areas may be at any position in future developments and it will crash. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11784
2021-07-13Compositor: Fix convert resolutions linking different socket datatypesManuel Castilla
Link sockets are always connected to inserted translate or scale operation `Color` sockets even when they have different data type. This causes crashes on full frame mode when operations read inputs with non expected datatypes. Because data type conversions need to be executed before, convert resolutions must ensure same datatypes are linked.
2021-07-11Cleanup: correct spelling in comments, remove profanityCampbell Barton
2021-07-08CMake: add missing headers, sort file listsCampbell Barton
2021-07-07Cleanup: spelling in commentsCampbell Barton
2021-07-07Compositor: Fix constant folded operations not being renderedManuel Castilla
Many operations do not expect single element buffers as output. Use full buffers with a single pixel instead.
2021-07-07Compositor: Fix crash when executing works in constant foldingManuel Castilla
Work scheduler needed initialization and execution models are not created during constant folding. This moves work execution method to execution system.
2021-07-06Compositor: Fix execution system unset during constant foldingManuel Castilla
2021-07-06Compositor: Graphviz improvementsManuel Castilla
Graphs are usually large, needing a lot of horizontal scrolling and they can include more information for debugging. This patch makes graph more compact horizontally by splitting labels in lines and removing namespaces. Furthermore it adds following information: - Operation ID. - SetValueOperation float value. - Optionally, operation node name. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11720
2021-07-06Compositor: Enable constant folding on operationsManuel Castilla
Only on current full frame operations that can be constant.
2021-07-06Compositor: Constant foldingManuel Castilla
Currently there is no clear way to know if an operation is constant (i.e. when all rendered pixels have same values). Operations may need to get constant input values before rendering to determine their resolution or areas of interest. This is the case of scale, rotate and translate operations. Only "set operations" are known as constant but many more are constant when all their inputs are so. Such cases can be optimized by only rendering one pixel. Current solution for tiled implementation is to get first pixel from input. This works for root execution groups, others need previous groups to be rendered. On full frame implementation this is not possible, because buffers are created on rendering to reduce peak memory and there is no per pixel calls. This patch evaluates all operations that are constant into primitive operations (Value/Vector/Color) before determining resolutions. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11490
2021-07-06Cleanup: Set execution system as operations member in CompositorManuel Castilla
2021-07-06Fix T89671: Crash when using Denoise node on Full Frame modeManuel Castilla
Tiled fallback doesn't support single element buffers. Ensure tiles are initialized as full buffers.
2021-07-06Compositor: Full frame Color Balance nodeManuel Castilla
Adds full frame implementation to this node operations. No functional changes. 1.3x faster than tiled fallback. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11764
2021-07-06Compositor: Full frame Color Correction nodeManuel Castilla
Adds full frame implementation to this node operation. No functional changes. 1.4x faster than tiled fallback. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11765
2021-07-06Compositor: Full frame Exposure nodeManuel Castilla
Adds full frame implementation to this node operation. No functional changes. 1.7x faster than tiled fallback. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11766
2021-07-06Compositor: Full frame Gamma nodeManuel Castilla
Adds full frame implementation to this node operation. No functional changes. 1.5x faster than tiled fallback. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11767
2021-07-06Compositor: Add base operation for updating buffer rowsManuel Castilla
Simplifies code for operations with correlated coordinates between inputs and output.
2021-07-03Cleanup: consistent use of tags: NOTE/TODO/FIXME/XXXCampbell Barton
Also use doxy style function reference `#` prefix chars when referencing identifiers.
2021-06-28Cleanup: repeated terms in code comments & error messagesCampbell Barton
2021-06-26Cleanup: full sentences in comments, improve comment formattingCampbell Barton
2021-06-24Cleanup: comment blocks, trailing space in commentsCampbell Barton
2021-06-23Compositor: Full frame ID Mask nodeManuel Castilla
Adds full frame implementation to this node operations. No functional changes. 1.2x faster than tiled fallback. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11638
2021-06-23Compositor: Full frame Image nodeManuel Castilla
Adds full frame implementation to Image node operations. Mostly refactored into buffer utility methods for reuse in other operations. No functional changes. 1.8x faster than tiled fallback. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11559
2021-06-23Cleanup: remove unused parameterManuel Castilla
2021-06-22Cleanup: Spelling MistakesLeon Zandman
This patch fixes many minor spelling mistakes, all in comments or console output. Mostly contractions like can't, won't, don't, its/it's, etc. Differential Revision: https://developer.blender.org/D11663 Reviewed by Harley Acheson
2021-06-21Cleanup: improve naming in CompositorManuel Castilla
2021-06-21Cleanup: move function parameter to memberManuel Castilla
Get current pass only when needed.
2021-06-16Fix: Image node alpha socket converted to operations twiceManuel Castilla
On selecting a multi-layer image with a combined pass, a "Combined" socket is created and default combined pass socket "Image" is disabled by setting `SOCK_UNAVAIL` flag. When converting into operations, `ImageNode` converts alpha socket on finding any socket with a combined pass without checking the flag. Since commit rB93e2491ee724 an assertion fails when mapping sockets twice because now map `add_new` is used. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11566
2021-06-16Compositor: Full frame Value nodeManuel Castilla
Adds full frame implementation to Value node operation. No functional changes. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11594
2021-06-16Compositor: Full frame RGB nodeManuel Castilla
Adds full frame implementation to RGB node operation. No functional changes. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11593
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-15Cleanup: use back-slash for doxygen commentsCampbell Barton
2021-06-09Fix: Compositor test desintegrate failing on arm64Manuel Castilla
Changes introduced in commit rBe9f2f17e8518 can create different render results when there is a Math or Mix operation after TextureOperation on tiled execution model. This is due to WriteBufferOperation forcing a single pixel resolution when these operations use a preferred resolution of 0 to check if their inputs have resolution. Fixing this behaviour creates different renders too. This patch keeps previous tiled implementation and adds the new implementation only for full frame execution. Reviewed By: Jeroen Bakker (jbakker) Differential Revision: https://developer.blender.org/D11546
2021-06-09Compositor: Refactor recursive methods to iterativeManuel Castilla
In order to reduce stack size this patch converts full frame recursive methods into iterative. - No functional changes. - No performance changes. - Memory peak may slightly vary depending on the tree because now breadth-first traversal is used instead of depth-first. Tests in D11113 have same results except for test1 memory peak: 360MBs instead of 329.50MBs. Reviewed By: Jeroen Bakker (jbakker) Differential Revision: https://developer.blender.org/D11515
2021-06-08Fix compile error with 'WITH_CXX_GUARDEDALLOC'Germano Cavalcante
Seen with msvc
2021-06-08BLI: support disabling task isolation in task poolJacques Lucke
Under some circumstances using task isolation can cause deadlocks. Previously, our task pool implementation would run all tasks in an isolated region. Now using task isolation is optional and can be turned on/off for individual task pools. Task pools that spawn new tasks recursively should never enable task isolation. There is a new check that finds these cases at runtime. Right now this check is disabled, so that this commit is a pure refactor. It will be enabled in an upcoming commit. This fixes T88598. Differential Revision: https://developer.blender.org/D11415
2021-06-02Fix T88567: Cryptomatte only works for the first View Layer.Jeroen Bakker
The view layer was always set to 0. This patch increments it.