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-10-22Cleanup: refactor float/half conversions for clarityBrecht Van Lommel
2021-10-15Cleanup: add utility functions for packing integersBrecht Van Lommel
2021-10-14Cycles: Kernel address space changes for MSLMichael Jones
This is the first of a sequence of changes to support compiling Cycles kernels as MSL (Metal Shading Language) in preparation for a Metal GPU device implementation. MSL requires that all pointer types be declared with explicit address space attributes (device, thread, etc...). There is already precedent for this with Cycles' address space macros (ccl_global, ccl_private, etc...), therefore the first step of MSL-enablement is to apply these consistently. Line-for-line this represents the largest change required to enable MSL. Applying this change first will simplify future patches as well as offering the emergent benefit of enhanced descriptiveness. The vast majority of deltas in this patch fall into one of two cases: - Ensuring ccl_private is specified for thread-local pointer types - Ensuring ccl_global is specified for device-wide pointer types Additionally, the ccl_addr_space qualifier can be removed. Prior to Cycles X, ccl_addr_space was used as a context-dependent address space qualifier, but now it is either redundant (e.g. in struct typedefs), or can be replaced by ccl_global in the case of pointer types. Associated function variants (e.g. lcg_step_float_addrspace) are also redundant. In cases where address space qualifiers are chained with "const", this patch places the address space qualifier first. The rationale for this is that the choice of address space is likely to have the greater impact on runtime performance and overall architecture. The final part of this patch is the addition of a metal/compat.h header. This is partially complete and will be extended in future patches, paving the way for the full Metal implementation. Ref T92212 Reviewed By: brecht Maniphest Tasks: T92212 Differential Revision: https://developer.blender.org/D12864
2021-10-11Cleanup: Spelling in commentSergey Sharybin
2021-09-28Cycles: add HIP device support for AMD GPUsBrian Savery
NOTE: this feature is not ready for user testing, and not yet enabled in daily builds. It is being merged now for easier collaboration on development. HIP is a heterogenous compute interface allowing C++ code to be executed on GPUs similar to CUDA. It is intended to bring back AMD GPU rendering support on Windows and Linux. https://github.com/ROCm-Developer-Tools/HIP. As of the time of writing, it should compile and run on Linux with existing HIP compilers and driver runtimes. Publicly available compilers and drivers for Windows will come later. See task T91571 for more details on the current status and work remaining to be done. Credits: Sayak Biswas (AMD) Arya Rafii (AMD) Brian Savery (AMD) Differential Revision: https://developer.blender.org/D12578
2021-09-24Fix T91660: Cycles remaining render time does not take into account time limitBrecht Van Lommel
2021-09-24Cleanup: spelling in commentsCampbell Barton
2021-09-23Cleanup: spelling in commentsCampbell Barton
2021-09-21Cycles: merge of cycles-x branch, a major update to the rendererBrecht Van Lommel
This includes much improved GPU rendering performance, viewport interactivity, new shadow catcher, revamped sampling settings, subsurface scattering anisotropy, new GPU volume sampling, improved PMJ sampling pattern, and more. Some features have also been removed or changed, breaking backwards compatibility. Including the removal of the OpenCL backend, for which alternatives are under development. Release notes and code docs: https://wiki.blender.org/wiki/Reference/Release_Notes/3.0/Cycles https://wiki.blender.org/wiki/Source/Render/Cycles Credits: * Sergey Sharybin * Brecht Van Lommel * Patrick Mours (OptiX backend) * Christophe Hery (subsurface scattering anisotropy) * William Leeson (PMJ sampling pattern) * Alaska (various fixes and tweaks) * Thomas Dinges (various fixes) For the full commit history, see the cycles-x branch. This squashes together all the changes since intermediate changes would often fail building or tests. Ref T87839, T87837, T87836 Fixes T90734, T89353, T80267, T80267, T77185, T69800
2021-07-30Cleanup: clang-format (re-run after v12 version bump)Campbell Barton
2021-07-29Fix building without Cycles loggingSergey Sharybin
Ideally can use assert() checks instead of suppressing the check entirely, but for now just fix compilation error quickly.
2021-07-26Cleanup: fix compiler warnings due to implicit castNikhil Shringarpurey
Differential Revision: https://developer.blender.org/D11950
2021-07-02Cleanup: use template utility function to handle OpenVDB grid types in CyclesBrecht Van Lommel
2021-06-28Cleanup: repeated terms in code comments & error messagesCampbell Barton
2021-06-24Cleanup: comment blocks, trailing space in commentsCampbell Barton
2021-06-23Cleanup: reformat trailing comments that caused line wrappingCampbell Barton
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