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-01Cleanup: spelling in commentsKévin Dietrich
2021-05-20Merge remote-tracking branch 'origin/blender-v2.93-release'Sybren A. Stüvel
2021-05-19Fix T87793: Cycles OptiX crash hiding objects in viewport renderBrecht Van Lommel
2021-05-06Cleanup: spellingCampbell Barton
2021-04-29Merge branch 'blender-v2.93-release'Campbell Barton
2021-04-29Fix build error after recent changes to CPU name detectionBrecht Van Lommel
2021-04-29Merge branch 'blender-v2.93-release'Brecht Van Lommel
2021-04-29Fix missing Cycles CPU name on macOS ArmChristian Baars
Differential Revision: https://developer.blender.org/D11061
2021-04-29Fix missing Cycles CPU name for Arm processorsPatrick Mours
2021-04-27Cycles: Removed unused macros.Stefan Werner
These were leftovers from an earlier way of indexing textures.
2021-04-23Cleanup: clang-formatCampbell Barton
2021-04-20Add support for building on Linux aarch64Patrick Mours
Differential Revision: https://developer.blender.org/D10958
2021-04-08Cleanup: spellingCampbell Barton
2021-03-23Nodes: Add Refract and Faceforward functions to Vector Maths nodesCharlie Jolly
Cycles, Eevee, OSL, Geo, Attribute Based on outdated refract patch D6619 by @cubic_sloth `refract` and `faceforward` are standard functions in GLSL, OSL and Godot shader languages. Adding these functions provides Blender shader artists access to these standard functions. Reviewed By: brecht Differential Revision: https://developer.blender.org/D10622
2021-03-01GLog: Lower default logging severity to INFOSergey Sharybin
Before this change messages of ERROR and above were printed. This change makes it so LOG(INFO), LOG(WARNING), LOG(ERROR) and LOG(FATAL) will be printed to the console by default (without --debug-libmv and --debug-cycles). On a user level nothing is changed because neither INFO nor WARNING severity are used in our codebase. For developers this change allows to use LOG(INFO) to print relevant for debugging information. Bering able to see WARNING messages is also nice, since those are not related to debugging, but are about some detected "bad" state. After this change the LOG(INFO) is really treated as a printf. Why not to use printf to begin with? Because it is often more annoying to print non-scalar types. Why not to use cout? Just a convenience, so that all type of logging is handled in the same way. When one is familiar with Glog used in the area, it is easy to use same utilities during development. Also, it is easy to change LOG(INFO) to VLOG(2) when development is done and one wants to keep the log print but make it only appear when using special verbosity flags. The initial reason why default severity was set to maximum possible value is because of misuse of VLOG with verbosity level 0, which is the same as LOG(INFO). This is also why back in the days --debug-libmv was introduced. Now there is some redundancy between --debug-libmv, --debug-cyles and --verbose, but changes in their meaning will cause user level side effects. Differential Revision: https://developer.blender.org/D10513
2021-02-18Cleanup: spelling, correct doc-string argumentsCampbell Barton
2021-02-17Cycles: Fix build error on windowsRay Molenkamp
Function __bsf was in util/util_simd.h twice problem located by @EAW on chat.
2021-02-17Cycles: add support for Arm Neon instructions using sse2neonBrecht Van Lommel
Based on patch contributed by Apple and Stefan Werner. Ref D8237, T78710
2021-02-17Cycles: add utility functions for zero float2/float3/float4/transformBrecht Van Lommel
Ref D8237, T78710
2021-02-17Cycles: refactor intrinsic functions implementationBrecht Van Lommel
* Add processor independent fallbacks * Use uint32_t and uint64_t types * Remove unused functions * Better comments and less indentation Ref D8237, T78710
2021-02-16Cleanup: spellingCampbell Barton
2021-02-15macOS: add Embree, OpenImageDenoise and sse2neon libraries for ARMBrecht Van Lommel
This required using a fork of Embree, newer LLVM version, unreleased ISPC version and sse2neon directly from Git. Hopefully over time all the required changes end up in official releases. For now we deviate from other platforms. Based on contributions by Apple and Stefan Werner. Ref D9527, D8237, T78710
2021-02-15macOS: fix Cycles not detecting 64 bit and failing to build with EmbreeBrecht Van Lommel
Contributed by Apple Ref D9527, T78710
2021-02-10TBB: fix deprecation warnings with newer TBB versionsBrecht Van Lommel
* USD and OpenVDB headers use deprecated TBB headers, suppress all deprecation warnings there since we have no control over them. * For our own TBB includes, use the individual headers rather than the tbb.h that includes everything to avoid warnings, rather than suppressing all. This is in anticipation of the TBB 2020 upgrade in D10359. Ref D10361.
2021-02-05Cleanup: correct spelling in commentsCampbell Barton
2021-01-22Merge branch 'blender-v2.92-release'Brecht Van Lommel
2021-01-22Fix T84745: more build errors with TBB 2021Brecht Van Lommel
* tbb::blocked_range moved to a different namespace and since the fix is non-trivial, remove some unused code that used this. * Task group priorities are no longer supported. It's unclear if they are useful at all right now and even set correctly, for now all tasks are equal priority with TBB 2021.
2021-01-22Cycles: optimize device updatesKévin Dietrich
This optimizes device updates (during user edits or frame changes in the viewport) by avoiding unnecessary computations. To achieve this, we use a combination of the sockets' update flags as well as some new flags passed to the various managers when tagging for an update to tell exactly what the tagging is for (e.g. shader was modified, object was removed, etc.). Besides avoiding recomputations, we also avoid resending to the devices unmodified data arrays, thus reducing bandwidth usage. For OptiX and Embree, BVH packing was also multithreaded. The performance improvements may vary depending on the used device (CPU or GPU), and the content of the scene. Simple scenes (e.g. with no adaptive subdivision or volumes) rendered using OptiX will benefit from this work the most. On average, for a variety of animated scenes, this gives a 3x speedup. Reviewed By: #cycles, brecht Maniphest Tasks: T79174 Differential Revision: https://developer.blender.org/D9555
2021-01-15Fix T84745: build error with TBB 2021Brecht Van Lommel
task_group::is_canceling() was removed.
2020-11-09Cycles: Fix tricubic sampling with NanoVDBPatrick Mours
Volumes using tricubic sampling were producing different results with NanoVDB compared to dense textures. This fixes that by using the same tricubic sampling algorithm in both cases. It also fixes some remaining offset issues and some minor things that broke OpenCL kernel compilation on NVIDIA. Reviewed By: brecht Differential Revision: https://developer.blender.org/D9491
2020-11-04Cycles API: encapsulate Node socket membersKévin Dietrich
This encapsulates Node socket members behind a set of specific methods; as such it is no longer possible to directly access Node class members from exporters and parts of Cycles. The methods are defined via the NODE_SOCKET_API macros in `graph/ node.h`, and are for getting or setting a specific socket's value, as well as querying or modifying the state of its update flag. The setters will check whether the value has changed and tag the socket as modified appropriately. This will let us know how a Node has changed and what to update, which is the first concrete step toward a more granular scene update system. Since the setters will tag the Node sockets as modified when passed different data, this patch also removes the various modified methods on Nodes in favor of Node::is_modified which checks the sockets' update flags status. Reviewed By: brecht Maniphest Tasks: T79174 Differential Revision: https://developer.blender.org/D8544
2020-10-27Revert "Cycles API: encapsulate Node socket members"Brecht Van Lommel
This reverts commit 527f8b32b32187f754e5b176db6377736f9cb8ff. It is causing motion blur test failures and crashes in some renders, reverting until this is fixed.
2020-10-27Cycles API: encapsulate Node socket membersKévin Dietrich
This encapsulates Node socket members behind a set of specific methods; as such it is no longer possible to directly access Node class members from exporters and parts of Cycles. The methods are defined via the NODE_SOCKET_API macros in `graph/ node.h`, and are for getting or setting a specific socket's value, as well as querying or modifying the state of its update flag. The setters will check whether the value has changed and tag the socket as modified appropriately. This will let us know how a Node has changed and what to update, which is the first concrete step toward a more granular scene update system. Since the setters will tag the Node sockets as modified when passed different data, this patch also removes the various `modified` methods on Nodes in favor of `Node::is_modified` which checks the sockets' update flags status. Reviewed By: brecht Maniphest Tasks: T79174 Differential Revision: https://developer.blender.org/D8544
2020-10-24Fix Cycles unnecessary overhead cancelling finished task poolBrecht Van Lommel
2020-10-19Spelling: It's Versus ItsHarley Acheson
Corrects incorrect usage of contraction for 'it is', when possessive 'its' was required. Differential Revision: https://developer.blender.org/D9250 Reviewed by Campbell Barton
2020-10-05Cycles: Add NanoVDB support for rendering volumesPatrick Mours
NanoVDB is a platform-independent sparse volume data structure that makes it possible to use OpenVDB volumes on the GPU. This patch uses it for volume rendering in Cycles, replacing the previous usage of dense 3D textures. Since it has a big impact on memory usage and performance and changes the OpenVDB branch used for the rest of Blender as well, this is not enabled by default yet, which will happen only after 2.82 was branched off. To enable it, build both dependencies and Blender itself with the "WITH_NANOVDB" CMake option. Reviewed By: brecht Differential Revision: https://developer.blender.org/D8794
2020-10-02Cycles: Add command line option for overriding the compute deviceLukas Stockner
The current way of setting the compute device makes sense for local use, but for headless rendering it it a massive pain to get Cycles to use the correct device, usually involving entire Python scripts. Therefore, this patch adds a simple command-line option to Blender for specifying the type of device that should be used. If the option is present, the settings in the user preferences and the scene are ignored, and instead all devices matching the specified type are used. Differential Revision: https://developer.blender.org/D9086
2020-10-02Cycles: add time statistics to scene updateKévin Dietrich
Gathers information for time spent in the various managers or object (Film, Camera, etc.) being updated in Scene::device_update. The stats include the total time spent in the device_update methods as well as time spent in subroutines (e.g. bvh build, displacement, etc.). This does not qualify as a full blown profiler, but is useful to identify potential bottleneck areas. The stats can be enabled and printed by passing `--cycles-print-stats` on the command line to Cycles, or `-- --cycles-print-stats` to Blender. Reviewed By: brecht Maniphest Tasks: T79174 Differential Revision: https://developer.blender.org/D8596
2020-09-16Fix (unreported) buffer overflow in Cycles' system_cpu_brand_string helper.Bastien Montagne
Since this buffer is used as an array of 12 32bits integers, and C++ `string` expect a NULL-terminated C-string, we need an extra char to ensure last one is always NULL. See D8906. Found while investigating T80657.
2020-09-10Cleanup: spellingCampbell Barton
2020-09-04CMake: refresh building and external library handling of Cycles standaloneBrecht Van Lommel
* Support precompiled libraries on Linux * Add license headers * Refactoring to deduplicate code Includes work by Ray Molenkamp and Grische for precompiled libraries. Ref D8769
2020-08-12Merge branch 'blender-v2.90-release'Brecht Van Lommel
2020-08-12Fixes T77882: artifacts rendering OpenVDB volumes with multiple grids in CyclesKévin Dietrich
The previous algorithm was not using all of the requested grids to build a mesh around the volume due to limitations regarding the use of a dense buffer to gather information about the volume's topology. This resulted in artefacts during rendering. The mesh generation is now done by merging all of the input grids and using the resulting grid's topology to create the mesh. The generation of the mesh is still done in index space as before, and the vertices are converted to object space by using the merged topology grid indexToWorld transform. To be able to merge the grids together we have to make sure that their transformation matrices and their index spaces match, thus, if they do not match we simply resample the grids. This behaviour should tackle one other limitation of the current algorithm, which is that only one transformation matrix was used to generate the final mesh. If we do not have an OpenVDB grid for the requested volume data, we generate a temporary OpenVDB grid for it. Differential Revision: https://developer.blender.org/D8401
2020-08-07Revert "Cleanup: Cycles, applied Clang-Format"Sybren A. Stüvel
This reverts commit 88cc3f167f7ee404640289ed9cfd6b13f0494d98. It was caused by running Clang-Format version 10, instead of 9 from the precompiled libs directory.
2020-08-07Cleanup: Cycles, applied Clang-FormatSybren A. Stüvel
No functional changes.
2020-08-05Merge branch 'blender-v2.90-release'Jeroen Bakker
2020-08-05Fix T78869: denoising performance regression on WindowsBrecht Van Lommel
Optimization was disabled in this function to work around a bug in MSVC, use a different solution that does not come with such a big performance regression.
2020-08-05Cleanup: spellingCampbell Barton
2020-08-04Cleanup: typos & co in UI messages (and some other places).Bastien Montagne
2020-08-04Cycles: Fix nan in decomposed transform for degenerated inputSergey Sharybin
The decomposed transform would have consists of nan values if the input transform had zero scale. Now the decomposition will check for zero scale, and if it is detected then the result will be ensured to be finite. Additionally, rotation value will be copied from previous/next time step to help avoiding obscure interpolation. The latter step can become more comprehensive than the current simple implementation. Differential Revision: https://developer.blender.org/D8450