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-08-26Compositor: Initial support for canvas compositingcompositor-full-frameManuel Castilla
2021-08-26Compositor: Replace resolution concept by canvasManuel Castilla
This is a code refactor in preparation of supporting canvas compositing and fix all cropping issues on full frame implementation. No functional changes, all canvases are at (0, 0) position matching tiled implementation.
2021-08-21Compositor: Fix crash enabling buffer groups on full frameManuel Castilla
Full frame doesn't support this option as all operations are already buffered. UI option will be removed in the future.
2021-08-20Compositor: Do not register constant input areas for renderingManuel Castilla
If an input is only used as a constant it doesn't rendering because its already calculated after constant folding.
2021-08-20Compositor: Fix incorrect copying of uchar buffersManuel Castilla
Row stride and the area x coordinate offset were not taken into account.
2021-08-13Compositor: Full frame Inpaint nodeManuel Castilla
2021-08-10Merge branch 'master' into compositor-full-frameManuel Castilla
2021-08-10Fix T90572: "Render Region" is broken due to compositingManuel Castilla
It was using viewer instead of render border. A copy-paste error.
2021-08-10Compositor: Fix memory leaks when initializing tiles multi-threadedManuel Castilla
It was only affecting tiled fallback on full frame mode. If tiles from a constant operation were multi-thread initialized, its buffer was inflated multiple times.
2021-08-10Compositor: Full frame input nodesManuel Castilla
Adds full frame implementation to "Bokeh Image" node, "Track Position" node, `SetVectorOperation` and `MovieClipAttribute`. The other nodes in "Input" submenu are implemented separately. `MovieClipAttribute` needs resolution to calculate its constant value, it can't be constant folded, which requires it to be a `ConstantOperation`. Now `ConstantOperation` contemplate this case and any operation that is always constant without depending on inputs should implement it. If in the future an operation needs to get an input constant element during `determineResolution` it must first determine its input resolution. The nodes have no functional changes. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D12090
2021-08-08Compositor: Full frame Bokeh Blur and Blur nodesManuel Castilla
2021-08-08Avoid using `floor` functionManuel Castilla
It has an impact in performance when used in deep loops. If area have negative coordinates it will round toward zero but buffers should be displaced later on to always work with positive coordinates.
2021-08-03Compositor: Sample single elem buffers at bordersManuel Castilla
2021-08-02Compositor: Fix memory leaks when initializing tiles multi-threadedManuel Castilla
2021-08-02Merge branch 'cmp-nodes-input' into compositor-full-frameManuel Castilla
2021-08-02Add `MovieClipAttribute` as a constant operationManuel Castilla
2021-08-02Merge branch 'master' into compositor-full-frameManuel Castilla
2021-07-30Compositor: Fix wrong number of threads during constant foldingManuel Castilla
The variable was uninitialized at that point of execution.
2021-07-29Fix missing constManuel Castilla
2021-07-28Cleanup: Unused variablesManuel Castilla
2021-07-27Merge branch 'master' into compositor-full-frameManuel Castilla
2021-07-27Compositor: Add sampling methods for full frameManuel Castilla
Current sampling methods do not take into account area offsets and have some off by 1 issues on full frame. For example on bilinear bottom and left image border pixel is not fully sampled and creates edges. Other issue is they use `wrap_pixel` when most of the time is not needed. In order to not affect tiled implementation, this commit creates specific sampling methods for full frame needs.
2021-07-27Compositor: Full frame Scale nodeManuel Castilla
Adds full frame implementation to this node operations. No functional changes. Includes a new operation method `init_data` used to initialize any data needed after operations are linked and resolutions determined. Once tiled implementation is removed `initExecution` may be renamed to `init_rendering` and `init_data` to `init_execution`. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11944
2021-07-27Cleanup: comment spelling & punctuationYimingWu
2021-07-26Compositor: Full frame Levels nodeManuel Castilla
Adds full frame implementation to this node operations. No functional changes. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11749
2021-07-26Compositor: Fix memory leak when exporting operations on debugManuel Castilla
2021-07-26Compositor: Full frame Scale nodeManuel Castilla
Adds full frame implementation to this node operations. No functional changes. Includes a new operation method `init_data` used to initialize any data needed after operations are linked and resolutions determined. Once tiled implementation is removed `initExecution` may be renamed to `init_rendering` and `init_data` to `init_execution`. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11944
2021-07-23After merge fixesManuel Castilla
2021-07-22Merge branch 'master' into compositor-full-frameManuel Castilla
2021-07-22Compositor: Fix crash when using empty input sourcesManuel Castilla
It's the case of Image or Movie Clip node when not selecting any source or an empty one. Render methods expect an output buffer with size, only render operations with resolution.
2021-07-22Compositor: Fix buffer area iterating past the endManuel Castilla
2021-07-22Compositor: Add coordinates to BuffersIteratorManuel Castilla
Allows to cover many use cases where iterating both buffers and coordinates is needed.
2021-07-20Compositor: Fix crash when connecting multiple constant inputsManuel Castilla
Operation receiving inputs was being folded more than once when it was constant foldable.
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: 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-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: 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-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: 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: 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