Revision 12a0629 by Kévin Dietrich May 26, 2021, 10:18 (GMT) |
Cycles: optimize attributes device updates When an `AttributeSet` is tagged as modified, which happens after the addition or removal of an `Attribute` from the set, during the following GeometryManager device update, we update and repack the kernel data for all attribute types. However, if we only add or remove a `float` attribute, `float2` or `float3` attributes should not be repacked for efficiency. This patch adds some mechanisms to detect which attribute types are modified from the AttributeSet. Firstly, this adds an `AttrKernelDataType` to map the data type of the Attribute to the one used in the kernel as there is no one to one match between the two since e.g. `Transform` or `float4` data are stored as `float3s` in the kernel. Then, this replaces the `AttributeSet.modified` boolean with a set of flags to detect which types have been modified. There is no specific flag type (e.g. `enum ModifiedType`), rather the flags used derive simply from the `AttrKernelDataType` enumeration, to keep things synchronized. The logic to remove an `Attribute` from the `AttributeSet` and tag the latter as modified is centralized in a new `AttributeSet.remove` method taking an iterator as input. Lastly, as some attributes like standard normals are not stored in the various kernel attribute arrays (`DeviceScene::attribute_*`), the modified flags are only set if the associated standard corresponds to an attribute which will be stored in the kernel's attribute arrays. This makes it so adding or removing such attributes does not trigger an unnecessary update of other type-related attributes. Reviewed By: brecht Differential Revision: https://developer.blender.org/D11373 |
Revision 2a09634 by Bastien Montagne May 26, 2021, 09:25 (GMT) |
Fix particlesystem not duplicating their pointcache in NO_MAIN case. Sharing data between duplicated IDs should be restricted to depsgraph (CoW) cases, not all NO_MAIN ones... While this was probably not an issue currently, we aim at using more and more out-of-main IDs for temp data processing. NOTE: Somewhat related to T88555, and similar issue as the one fixed in rBdfb963c70df5. |
Revision 534fcab by Sergey Sharybin May 26, 2021, 09:16 (GMT) |
Fix T88552: Cycles changing Render Passes in viewport does not work |
Revision a72a580 by Sergey Sharybin May 26, 2021, 09:10 (GMT) |
Cleanup: Simplify Cycles viewport parameters Use early output and access shading RNA object only once. |
Revision e6c0e6c by Jeroen Bakker May 26, 2021, 08:46 (GMT) |
Compositor: Use BLI_color in convert alpha node. Recently the CPP colors module landed in master. This patch will use the new module in the convert alpha node. |
Revision 1e6b028 by Sergey Sharybin May 26, 2021, 08:45 (GMT) |
Cleanup: Remove unused argument in Cycles sync Makes it easier to see where exactly the viewport is used. |
Revision 09e77f9 by Philipp Oeser May 26, 2021, 08:28 (GMT) |
Fix T88534: Unable to add a Geometry Node Tree on Volume object Volumes are supported, poll corrected. Maniphest Tasks: T88534 Differential Revision: https://developer.blender.org/D11378 |
Revision 03c0fa1 by Philipp Oeser May 26, 2021, 08:21 (GMT) |
Fix T88531: Mantaflow problem with geometry nodes Objects modified by geometry nodes modifiers were not caught as being "dynamic". Now add this modifier type to the list of modifiers making them "dynamic" in the eyes of mantaflow. (noticed by @sebbas in chat) Maniphest Tasks: T88531 Differential Revision: https://developer.blender.org/D11389 |
Revision b813007 by Philipp Oeser May 26, 2021, 08:17 (GMT) |
Fix T88566: Mantaflow inflow with shapekeys is not working anymore (regression) Code was actually checking for shapekeys, but these were not detected properly (some effects like shape keys are added as virtual modifiers before the user created modifiers) Now go over virtual modifiers as well. Maniphest Tasks: T88566 Differential Revision: https://developer.blender.org/D11388 |
Revision ff35332 by Philipp Oeser May 26, 2021, 07:55 (GMT) |
Merge branch 'blender-v2.93-release' |
Revision ebde6e1 by Philipp Oeser May 26, 2021, 07:51 (GMT) |
Fix T88251: "Operator Cheat Sheet" Crash Caused by {rB919558854d62}. Same fix as in {rBdc8a43c8755a} -- let RNA enum item callbacks check for NULL context. The NULL context is used to extract items for document generation. Maniphest Tasks: T88251 Differential Revision: https://developer.blender.org/D11391 |
Revision c0bb7d9 by Hans Goudey May 25, 2021, 18:37 (GMT) |
Cleanup: Fix short comparison with bool warning For some reason the hide status is stored in a short and a char (we cannot have bools in DNA). |
Revision 95690dd by Sybren A. Stüvel May 25, 2021, 16:58 (GMT) |
Bump FFmpeg version from 4.2.3 to 4.4 Bump FFmpeg version to 4.4 to fix a problem where it would write the wrong frame rate. Their old API was deprecated and Blender moved to the new one in rB8d6264ea12bfac0912c7249f00af2ac8e3409ed1. The new one produced files with the wrong frame rate, which was fixed in FFmpeg 4.4. Manifest Task: T88568 Reviewed By: LazyDodo, zeddb Differential Revision: https://developer.blender.org/D11392 |
Revision 490dd27 by Ray molenkamp May 25, 2021, 16:27 (GMT) |
deps: Fix broken boost link |
May 25, 2021, 15:45 (GMT) |
GPencil: Add a use_light option when creating object. This option is default off when creating line art objects because line art seldom use lighting and the normal data would be all over the place anyway. Reviewed By: Antonio Vazquez (antoniov) Differential Revision: https://developer.blender.org/D11372 |
May 25, 2021, 15:32 (GMT) |
Cleanup: Use ListBase in various places in line art. This clarifies the data structures for storing edges for different calculation stages. Reviewed By: Sebastian Parborg (zeddb) Differential Revision: https://developer.blender.org/D11386 |
Revision cb8a681 by Jeroen Bakker May 25, 2021, 15:16 (GMT) |
Blenlib: Explicit Colors. Colors are often thought of as being 4 values that make up that can make any color. But that is of course too limited. In C we didn?t spend time to annotate what we meant when using colors. Recently `BLI_color.hh` was made to facilitate color structures in CPP. CPP has possibilities to enforce annotating structures during compilation and can adds conversions between them using function overloading and explicit constructors. The storage structs can hold 4 channels (r, g, b and a). Usage: Convert a theme byte color to a linearrgb premultiplied. ``` ColorTheme4b theme_color; ColorSceneLinear4f<eAlpha::Premultiplied> linearrgb_color = BLI_color_convert_to_scene_linear(theme_color).premultiply_alpha(); ``` The API is structured to make most use of inlining. Most notable are space conversions done via `BLI_color_convert_to*` functions. - Conversions between spaces (theme <=> scene linear) should always be done by invoking the `BLI_color_convert_to*` methods. - Encoding colors (compressing to store colors inside a less precision storage) should be done by invoking the `encode` and `decode` methods. - Changing alpha association should be done by invoking `premultiply_alpha` or `unpremultiply_alpha` methods. # Encoding. Color encoding is used to store colors with less precision as in using `uint8_t` in stead of `float`. This encoding is supported for `eSpace::SceneLinear`. To make this clear to the developer the `eSpace::SceneLinearByteEncoded` space is added. # Precision Colors can be stored using `uint8_t` or `float` colors. The conversion between the two precisions are available as methods. (`to_4b` and `to_4f`). # Alpha conversion Alpha conversion is only supported in SceneLinear space. Extending: - This file can be extended with `ColorHex/Hsl/Hsv` for different representations of rgb based colors. `ColorHsl4f<eSpace::SceneLinear, eAlpha::Premultiplied>` - Add non RGB spaces/storages ColorXyz. Reviewed By: JacquesLucke, brecht Differential Revision: https://developer.blender.org/D10978 |
Revision 00955cd by Jeroen Bakker May 25, 2021, 15:03 (GMT) |
Revert "Blenlib: Explicit Colors." This reverts commit fd94e033446c72fb92048a9864c1d539fccde59a. does not compile against latest master. |
Revision fd94e03 by Jeroen Bakker May 25, 2021, 15:01 (GMT) |
Blenlib: Explicit Colors. Colors are often thought of as being 4 values that make up that can make any color. But that is of course too limited. In C we didn?t spend time to annotate what we meant when using colors. Recently `BLI_color.hh` was made to facilitate color structures in CPP. CPP has possibilities to enforce annotating structures during compilation and can adds conversions between them using function overloading and explicit constructors. The storage structs can hold 4 channels (r, g, b and a). Usage: Convert a theme byte color to a linearrgb premultiplied. ``` ColorTheme4b theme_color; ColorSceneLinear4f<eAlpha::Premultiplied> linearrgb_color = BLI_color_convert_to_scene_linear(theme_color).premultiply_alpha(); ``` The API is structured to make most use of inlining. Most notable are space conversions done via `BLI_color_convert_to*` functions. - Conversions between spaces (theme <=> scene linear) should always be done by invoking the `BLI_color_convert_to*` methods. - Encoding colors (compressing to store colors inside a less precision storage) should be done by invoking the `encode` and `decode` methods. - Changing alpha association should be done by invoking `premultiply_alpha` or `unpremultiply_alpha` methods. # Encoding. Color encoding is used to store colors with less precision as in using `uint8_t` in stead of `float`. This encoding is supported for `eSpace::SceneLinear`. To make this clear to the developer the `eSpace::SceneLinearByteEncoded` space is added. # Precision Colors can be stored using `uint8_t` or `float` colors. The conversion between the two precisions are available as methods. (`to_4b` and `to_4f`). # Alpha conversion Alpha conversion is only supported in SceneLinear space. Extending: - This file can be extended with `ColorHex/Hsl/Hsv` for different representations of rgb based colors. `ColorHsl4f<eSpace::SceneLinear, eAlpha::Premultiplied>` - Add non RGB spaces/storages ColorXyz. Reviewed By: JacquesLucke, brecht Differential Revision: https://developer.blender.org/D10978 |
Revision b046bc5 by Patrick Mours May 25, 2021, 14:56 (GMT) |
Fix T88096: Baking with OptiX and displacement fails Using displacement runs the shader eval kernel, but since OptiX modules are not loaded when baking is active, those were not available and therefore failed to launch. This fixes that by falling back to the CUDA kernels. |
|
|
|


Master Commits
MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021