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
2022-05-17Cleanup: use term 'filepath' for full file pathsCampbell Barton
2022-03-25Cleanup: use count or num instead of nbrCampbell Barton
Follow conventions from T85728.
2022-02-11File headers: SPDX License migrationCampbell Barton
Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
2021-12-22Fix: Large stack allocation in compositorMichael
When COM_EXPORT_GRAPHVIZ is enabled, DebugInfo::graphviz uses a char[1000000] as local variable. When this function is called this is allocated on the stack, which has a size of just 1MB on mac and may cause a stack overflow. This patch allocates the memory on the heap and frees the memory at the end of the function. Reviewed By: LazyDodo Differential Revision: https://developer.blender.org/D13628
2021-10-14Cleanup: convert camelCase naming to snake_case in CompositorManuel Castilla
To convert old code to the current convention and use a single code style.
2021-10-14Cleanup: replace members `m_` prefix by `_` suffix in CompositorManuel Castilla
To convert old code to the current convention and use a single code style.
2021-10-14Cleanup: remove unused includes in CompositorManuel Castilla
And move unneeded includes in frequently used headers to source files. Slightly reduces compile time.
2021-09-28Compositor: Replace resolution concept by canvasManuel Castilla
This is a code refactor in preparation of supporting canvas compositing. See {D12466}. No functional changes, all canvases are at (0,0) position matching tiled implementation. Differential Revision: https://developer.blender.org/D12465
2021-09-19Compositor: Fix crash exporting buffers on debugManuel Castilla
ImBuf allocates 4 channels, use copying to support buffers with 1 and 3 channels.
2021-09-04Compositor: Merge equal operationsManuel Castilla
Some operations can take a lot of time to execute and any duplication should be avoided. This patch implements a compile step that detects operations with the same type, inputs and parameters that produce the same result and merge them. Now operations can generate a hash that represents their output result. They only need to implement `hash_output_params` and hash any parameter that affects the output result. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D12341
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-07-26Compositor: Fix memory leak when exporting operations on debugManuel Castilla
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-07Cleanup: spelling in commentsCampbell Barton
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-06-01Compositor: Full-frame base systemManuel Castilla
This patch adds the base code needed to make the full-frame system work for both current tiled/per-pixel implementation of operations and full-frame. Two execution models: - Tiled: Current implementation. Renders execution groups in tiles from outputs to input. Not all operations are buffered. Runs the tiled/per-pixel implementation. - FullFrame: All operations are buffered. Fully renders operations from inputs to outputs. Runs full-frame implementation of operations if available otherwise the current tiled/per-pixel. Creates output buffers on first read and free them as soon as all its readers have finished, reducing peak memory usage of complex/long trees. Operations are multi-threaded but do not run in parallel as Tiled (will be done in another patch). This should allow us to convert operations to full-frame in small steps with the system already working and solve the problem of high memory usage. FullFrame breaking changes respect Tiled system, mainly: - Translate, Rotate, Scale, and Transform take effect immediately instead of next buffered operation. - Any sampling is always done over inputs instead of last buffered operation. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11113
2021-04-28Replace COM_DEBUG #define with constexpr. Fixes T87035Tyler
Reviewed By: jbakker Maniphest Tasks: T87035 Differential Revision: https://developer.blender.org/D11068
2021-04-09Compositor: Output where debug is stored.Jeroen Bakker
2021-03-30Fix: Compile Error COM_Debug.Jeroen Bakker
We should replace `ifdef COM_Debug` with a constexpr function.
2021-03-29Cleanup: Replace `is...Operation()` methods with a flag.Jeroen Bakker
2021-03-29Cleanup: Add namespace to compositor.Jeroen Bakker
2021-03-19Cleanup: Use enum class for DataType.Jeroen Bakker
2021-03-16Cleanup: Modernize iter.Jeroen Bakker
2021-03-16Cleanup: Removed commented out code.Jeroen Bakker
2021-03-12Cleanup: fix clang-tidy errors when COM_debug is active.Jeroen Bakker
2021-03-08Cleanup: Change extension .cpp to .ccJeroen Bakker