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-06-02Cleanup: spelling in commentsCampbell Barton
2021-06-01Cleanup: clang-tidyJacques Lucke
* `readability-redundant-member-init` * `readability-inconsistent-declaration-parameter-name` * Remove constructor that can be defaulted.
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-05-14Cleanup: clang-formatCampbell Barton
2021-05-10Compositor: Add vars and methods for easier image loopingManuel Castilla
These variables and methods should make it easier to loop through buffers elements/pixels. They take into account single element buffers. Single element buffers can be used for set operations to reduce memory usage. Usage example: P2078 Reviewed By: #compositing, jbakker Differential Revision: https://developer.blender.org/D11015
2021-05-03Merge branch 'blender-v2.93-release'Sergey Sharybin
2021-05-03Fix T87989: Crash using OpenCL in compositorSergey Sharybin
Initial report was mentioning the Classroom demo scene, but this is probably because the scene was pre-configured to be used with OpenCL. Would expect any OpenCL compositing to be failing prior to this fix. The reason why crash was happening is due to OpenCL queue being released from OpenCLDevice destructor. Is not that obvious, but when Vector (including std::vector) is holding elements by value a destructor will be called on "old" memory when vector capacitance changes. Solved by making forbidding copy semantic for compositor devices and forcing move semantic to be used. Also use emplace semantic in the devices vector initialization.
2021-04-28Fix Compositor: WorkScheduler task model deletes worksManuel Castilla
WorkScheduler task model deletes work packages after executing them. The other models don't do so. All models should handle packages the same way. Reviewed By: #compositing, jbakker Differential Revision: https://developer.blender.org/D11102
2021-04-28Fix Compositor: WorkScheduler task model deletes worksManuel Castilla
WorkScheduler task model deletes work packages after executing them. The other models don't do so. All models should handle packages the same way. Reviewed By: #compositing, jbakker Differential Revision: https://developer.blender.org/D11102
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-14Fix (unreported) compositor resolution propagation broken by some nodesManuel Castilla
Some operations may use no preferredResolution ({0, 0}) when calling determineResolution on inputs to check if they have resolution on their own. See MixOperation or MathOperation determineResolution implementation. In such cases {0, 0} resolution ends up being set when an input doesn't have own resolution, breaking propagation of the original preferredResolution. They don't mean to set it as resolution, it's just a check. This patch only allows to set valid resolutions (>0). When it's 0 it may be understood as "No preferred or determined resolution" so it should not be set to give output operations another chance of finding a proper resolution by calling determineResolution again with a different preferredResolution. Test file: {F9932526} Reviewed By: #compositing, jbakker Differential Revision: https://developer.blender.org/D10972
2021-04-12Fix: File output uses incorrect resolution when first socket unused.Jeroen Bakker
File output node always received the resolution from the first socket. When that socket didn't had a link it would use a resolution of 0,0. What lead to not saving the file at all. This only effected Multi layer OpenEXR files. This change would go over all the links to find the first valid resolution.
2021-04-09Compositor: Output where debug is stored.Jeroen Bakker
2021-04-08Cleanup: enable modernize-use-equals-default checkJacques Lucke
This removes a lot of unnecessary code that is generated by the compiler automatically. In very few cases, a defaulted destructor in a .cc file is still necessary, because of forward declarations in the header. I removed some defaulted virtual destructors, because they are not necessary, when the parent class has a virtual destructor already. Defaulted constructors are only necessary when there is another constructor, but the class should still be default constructible. Differential Revision: https://developer.blender.org/D10911
2021-04-06Compositor: Add Streaming Operator for NodeOperationBuilder.Jeroen Bakker
For debugging purposes to convert the internal state of the NodeOperationBuilder to a graphviz. Usage: std::cout << *this << "\n"; Inside any method of the NodeOperationBuilder.
2021-04-06Suppress compiler warning.Jeroen Bakker
2021-04-02Cleanup: Remove blender namespace from Map.Jeroen Bakker
2021-04-02Cleanup: remove loading blender namespace from Vector.Jeroen Bakker
2021-04-02Cleanup: Added leading `e` to enum types.Jeroen Bakker
2021-04-02Cleanup: rename eChunkExecutionState to eWorkPackageState.Jeroen Bakker
2021-04-02Compositor: stream operators for WorkPackages.Jeroen Bakker
Helps developers during debugging.
2021-04-02Compositor: Debug stream operator.Jeroen Bakker
Stream operators for NodeOperator and ExecutionGroup to help during debugging.
2021-04-01Cleanup: spellingCampbell Barton
2021-04-01Cleanup: method naming.Jeroen Bakker
2021-04-01Cleanup: Split up methods.Jeroen Bakker
2021-03-31Fix compiler error in Windows Antonio Vazquez
C7555 use of designated initializers requires at least '/std:c++latest' This is not supported by the current Windows compiler version.
2021-03-31Cleanup: Removed Unused Definition.Jeroen Bakker
2021-03-31Compositor: Keep WorkPackages and Data Around.Jeroen Bakker
WorkPackages struct was created when scheduled. This patch keeps the WorkPackages around and stores additional data with the workpackages. The speedup is to small to notice, but it is needed as preparation to introduce a faster scheduling method.
2021-03-30Cleanup: remove unneeded method.Jeroen Bakker
size can be accessed via instance attribute.
2021-03-30Cleanup: clang-format.Jeroen Bakker
2021-03-30Cleanup: Use constexpr.Jeroen Bakker
2021-03-30Cleanup: Replace std::vector with blender::Vector.Jeroen Bakker
2021-03-30Fix: Compile Error COM_Debug.Jeroen Bakker
We should replace `ifdef COM_Debug` with a constexpr function.
2021-03-30Cleanup: Replace virtual methods with bitflags.Jeroen Bakker
2021-03-29Cleanup: Replace `is...Operation()` methods with a flag.Jeroen Bakker
2021-03-29Cleanup: Use Bitflags For Booleans.Jeroen Bakker
2021-03-29Cleanup: Add namespace to compositor.Jeroen Bakker
2021-03-29Compositor: Add Anti-Aliasing nodeHabib Gahbiche
This is an implementation of Enhanced Subpixel Morphological Antialiasing (SMAA) The algorithm was proposed by: Jorge Jimenez, Jose I. Echevarria, Tiago Sousa, Diego Gutierrez This node provides only SMAA 1x mode, so the operation will be done with no spatial multisampling nor temporal supersampling. See Patch for comparisons. The existing AA operation seems to be used only for binary images by some other nodes. Using SMAA for binary images needs no important parameter such as "threshold", so we perhaps can switch the operation to SMAA, though that changes existing behavior. Notes: 1. The program code assumes the screen coordinates are DirectX style that the vertical direction is upside-down, so "top" and "bottom" actually represent bottom and top, respectively. Thanks for Habib Gahbiche (zazizizou) to polish and finalize this patch. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D2411
2021-03-26Compositor: Fix array out of bounds.Jeroen Bakker
2021-03-26Cleanup: Replace Methode Overloading With Default Value.Jeroen Bakker
2021-03-26Cleanup: Remove ptr For Owned Children.Jeroen Bakker
2021-03-26Cleanup: Replace std::vector With blender::Vector.Jeroen Bakker
2021-03-26Cleanup: Replaced Typedef Enum With Enum Class.Jeroen Bakker
2021-03-26Cleanup: Remove SocketReader.Jeroen Bakker
SocketReader was added as an easier to understand interface on top of the NodeOperation. It was implemented as a base class of the NodeOperation and adds an additional hierarchy level. Ths change replaces the abstract class with a typedef. In the end we want to remove the typedef but will wait for some new nodes before doing so.
2021-03-26Cleanup: Use Enum Class For PixelSampler.Jeroen Bakker
2021-03-26Cleanup: Replace std::vector with blender::Vector.Jeroen Bakker
2021-03-26Cleanup: Replaced unneeded branch with assert.Jeroen Bakker
2021-03-24Cleanup: Add override keyword.Jeroen Bakker
2021-03-24Spelling: getRenderPriotrity -> getRenderPriorityJeroen Bakker
2021-03-24Cleanup: Removed commented out code.Jeroen Bakker