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
path: root/intern
AgeCommit message (Collapse)Author
2020-12-03Fix Cycles device kernels containing debug assertation codePatrick Mours
NanoVDB includes "assert.h" and makes use of "assert" in several places and since the compile pipeline for CUDA/OptiX kernels does not define "NDEBUG" for release builds, those debug checks were always added. This is not intended, so this patch disables "assert" for CUDA/OptiX by defining "NDEBUG" before including NanoVDB headers. This also fixes a warning about unknown pragmas in NanoVDB thrown by the CUDA compiler.
2020-12-02Fix T83300: constant scene refreshing in Cycles with empty volumesKévin Dietrich
This infinite loop is caused by a conflict between the volume mesh creation which unintentionally clears the shaders before early exiting when no grid is found, and the Blender exporter which adds back the shaders causing us to reupdate as the shaders changed. To fix this simply preserve the shaders on the Volume node.
2020-12-01Libmv: Tweak default logging verbosity levelSergey Sharybin
Log to verbosity level 1 rather than INFO severity. Avoids a lot of overhead coming from construction of the INFO stream and improves performance and threadability of code which uses logging. This makes tracking of 250 frames of a track of default settings to drop down from 0.6sec to 0.4sec.
2020-12-01Libmv: Cleanup, remove unused logging macrosSergey Sharybin
Unused and was not entirely happy with such short abbreviations.
2020-11-30Fix T82870: on macOS, continuous grab jumps when crossing editor borderYevgeny Makarov
The event queue can contain events from before pointer warping, ignore those now. This is an old issue, but became more common now that we disabled event coalescing and started using the event mouse location rather than the current mouse location. Thanks to Yevgeny Makarov and Nicholas Rishel for helping solve this. Ref D9662
2020-11-30Cleanup: avoid harmless but unnecessary float division by zeroBrecht Van Lommel
2020-11-30Libmv: Add threading primitivesSergey Sharybin
Allows to use mutex, scoped_lock, and conditional_variable from within the libmv namespace. Implementation is coming from C++11. Other configurations are easy to implement, but currently C++11 is the way to go.
2020-11-30Libmv: Add build configuration headerSergey Sharybin
Allows to easily access build platform information, such as bitness, compiler, supported C++ version and so on.
2020-11-30Libmv: add missing files to bundlerSergey Sharybin
Bundler wouldn't be able to pull changes form upstream until all the changes are upstreamed, but is better to have information consistent.
2020-11-30Deps: PugiXML 1.10Ray Molenkamp
This separates out PugiXML that was previously bundled by OIIO. As this linux/mac libs are not available this commit only contains the builder and windows changes, and the option to enable pugixml is guarded by a platform if, this can be removed once all platforms have committed the svn libs. For details see D8628
2020-11-26Fluid: Updated Mantaflow source filesSebastián Barschkis
This update introduces two improvements from the Mantaflow repository: (1) Improved particle sampling: - Liquid and secondary particles are sampled more predictably. With all parameters being equal, baked particles will be computed at the exact same position during every bake. - Before, this was not guaranteed. (2) Sparse grid caching: - While saving grid data to disk, grids will from now on be saved in a sparse structure whenever possible (e.g. density, flame but not levelsets). - With the sparse optimization grid cells with a value under the 'Empty Space' value (already present in domain settings) will not be cached. - The main benefits of this optimization are: Smaller cache sizes and faster playback of simulation data in the viewport. - This optimization works 'out-of-the-box'. There is no option in the UI to enable it. - For now, only smoke simulation grids will take advantage of this optimization.
2020-11-25Atomics: Fix missing 64bit implementation for 32bit platformsSergey Sharybin
Blender uses 64bit atomics to manipulate SessionUUID, and these atomics were not defined on any of 32bit platforms. While official support is limited to 64bit platforms only, the code should not make assumptions about bitness or endianess, in terms that there should be codepaths and fallback (or provision of them) for 32bit platforms. This change makes 64bit atomic functions defined for all platforms. The atomic_test was compiled and successfully tested on i686 and armv7l platforms. The rest of compilation process of Blender will be very tedious, so that was not done. This change is essential, but not necessarily enough to make Blender compilable on i686 (ability to compile Blender on 32bit platforms was lost during the 2.91 development). This is a functional part of original fix done by Brecht in D9577.
2020-11-25Atomics: Cleanup, move defines closer to usageSergey Sharybin
There is a special defines block needed for ARM on Linux. Move it from public header to an implementation file. No functional changes. This is a non-functional part of original fix done by Brecht in D9577.
2020-11-23Fix T82884: Cycles Compilation Error OpenCL/NanoVDBJeroen Bakker
Recent changes introduced `acc` parameter into the texture read functions. When nanovdb isn't enabled this leads to compilation errors as the `acc` variable wasn't defined. OpenCL only compiles needed features what made it more prominent. Reviewed By: Patrick Mours Differential Revision: https://developer.blender.org/D9629
2020-11-23Cycles: Remove Compilation WarningJeroen Bakker
ROCm 3.9 already defined `NULL`. This patch will first check if it was already defined to remove compilation warnings. NOTE: This doesn't add official support for ROCm as it still fails to render correctly (crashes with default cube). Reviewed By: Brecht van Lommel Differential Revision: https://developer.blender.org/D9610
2020-11-20Cleanup: spellingCampbell Barton
2020-11-20Cycles: Fixed zero sized normals when certain attributes were missing.Stefan Werner
The Normal Map node was falling back to (0, 0, 0) when it was missing the required attributes to calculate a new normal. (0, 0, 0) is not a valid normal and can lead to NaNs when it is normalized later in the shader. Instead, we now return sd->N, the unperturbed surface normal.
2020-11-19Atomic: Cover with unit testsSergey Sharybin
Cover all atomic functions with unit tests. The tests are quite simple, nothing special so far. The goal is to: - Make sure implementation exists. - Implementation behaves the same way on all platforms (We had issue when MSVC and GCC were behaving differently in the past). - Proper bitness is used for implementation and non-fixed-size function implementation. The tests can be extended further to make sure, for example, that CAS operations do not cast arguments to a more narrow type for comparison. Considering it a possible further improvement, as it is better be done being focused on that specific task. There is an annoying ifdef around 64bit implementation, which uses same internal ifdef as the header does. This check is aimed to be removed, so is easier to simply accept such duplication for now. The tests seems somewhat duplicate for signed/unsigned variants and things like this. The reason for that is to keep test code as simple as possible: attempting to do something smart/tricky in the test code often causes the test code to be a subject of being covered with its own unit tests. Differential Revision: https://developer.blender.org/D9590
2020-11-19Guarded allocator: Fix lock-free allocator testsSergey Sharybin
Previously the lock-free tests were actually testing guarded allocator because the main entry point of tests was switching allocator to the guarded one. There seems to be no allocations happening between the initialization sequence and the fixture's SetUp(), so easiest seems to be just to switch to lockfree implementation in the fixture's SetUp(). The test are passing locally, so the "should work" has high chance of actually being truth :) Differential Revision: https://developer.blender.org/D9584
2020-11-19Guarded allocator: Add safety around type changeSergey Sharybin
While it might not cover all possible abuse of API, it does provide basic checks against most obvious usage mistakes.
2020-11-19Guarded allocator: Add explicit switch to the lockfree implementationSergey Sharybin
Previously the only way to use lockfree implementation was to start executable and never switch to guarded allocator. Surely, it is not possible to switch implementation once any allocation did happen, but some tests are desired to test lock-free implementation of the allocator. Those tests did not operate properly because the main entry point of tests are forcing guarded allocator to help catching bugs. This change makes it possible for those tests to ensure they do operate on lock-free implementation. There is no functional changes here, preparing boilerplate for an upcoming work on the allocator tests themselves.
2020-11-19Fix T82445: Wintab packets being discarded.Nicholas Rishel
Switched timer to use GetTickCount instead of QueryPerformanceCounter as Wintab's pkTime seems to (but is not guaranteed to) use the former.
2020-11-18Merge branch 'blender-v2.91-release'Sebastián Barschkis
2020-11-18Fluid: Revert changes from T82488Sebastián Barschkis
Scaling of forces needs more work. Before making changes to them it would be nice to have a setup, that works physically correct across multiple modifiers (cloth, rigid bodies, fluid). This will be a to do for 2.92.
2020-11-17Merge branch 'blender-v2.91-release'Richard Antalik
Conflicts: source/blender/editors/render/render_opengl.c source/blender/sequencer/intern/effects.c
2020-11-17Cycles: Fix compilation error and warning without OPENVDBClément Foucault
2020-11-16Fix T76699: Support macOS inbetween mouse/tablet.Nicholas Rishel
Coalescing on macOS overwrites a singular unprocessed mouse event. To receive all mouse and tablet events coalescing is disabled. Disabling coalescing for macOS disables coalescing for trackpad gestures. Repeat trackpad events are unnecessary and found to negatively impact performance thus are re-coalesced in Window Manager. Reviewed By: brecht Differential Revision: https://developer.blender.org/D9574
2020-11-16Merge branch 'blender-v2.91-release'Brecht Van Lommel
2020-11-16Fix T82673: Cycles crash with zero emission strength and linked emission colorBrecht Van Lommel
2020-11-16Fix T81983: volume tiles missing in Cycles rendersKévin Dietrich
The OpenVDB data structure can store voxel data in leaf nodes or tiles when all the nodes in a given region have a constant value. However, Cycles is using the leaf nodes to generate the acceleration structure for computing volume intersections which did not include constant tiles. To fix this, we simply voxelize all the active tiles prior to generating the volume bounding mesh. As we are using a MaskGrid, this will not allocate actual voxel buffers for each leaf, so the memory usage will be kept low. Differential Revision: https://developer.blender.org/D9557 Reviewed by: brecht, JacquesLucke
2020-11-16Cleanup: spellingCampbell Barton
2020-11-12Merge branch 'blender-v2.91-release'Brecht Van Lommel
2020-11-12Fix T82607: crash cancelling Cycles render during adaptive subdivision updateBrecht Van Lommel
Now that the Blender sync mechanism deletes nodes from the scene, we need to ensure scene update is stopped before we do this. Also add some more early out in scene geometry update to ensure we do not continue working on incomplete geometry data, though that was not the cause of this crash.
2020-11-12Cleanup: remove accidentally committed merge filesBrecht Van Lommel
2020-11-12Cleanup: compiler warningBrecht Van Lommel
2020-11-12Fix T82516: Cycles crash updateding animated volumes after NanoVDBBrecht Van Lommel
Two issues: * Automatic deduplication of OpenVDB grid data was failing when Cycles had already cleared the OpenVDB grid, causing an empty grid. Instead rely on Blender return the same OpenVDB grid pointer when deduplication is possible. * The volume bounds mesh was not properly cleared when the OpenVDB grid was empty, causing a mismatch between mesh and voxel data.
2020-11-12Fix T82617: artifacts in Cycles viewport when changing subdivision attributesKévin Dietrich
The old attributes were not cleared when synchronizing the geometries, this could also lead to crashes in other cases. Ref T82608.
2020-11-11Cleanup: clang-formatCampbell Barton
2020-11-10Cycles: fix compilation of OSL shaders following API changeKévin Dietrich
The names of the parameters are based on those of those of the sockets, so they also need to be updated. This was forgotten about in the previous commit (rBa284e559b90e). Ref T82561.
2020-11-10Fix NanoVDB compile errors with recent NanoVDB versionsPatrick Mours
There were some changes to the NanoVDB API that broke the way Cycles was previously using it. With these changes it compiles successfully again and also still compiles with the NanoVDB revision that is currently part of the Blender dependencies. Ref T81454.
2020-11-10Fix T82561: shader compilation crashes in OSLKévin Dietrich
The "type" sockets on shader nodes were renamed in rB31a620b9420cab to avoid clashes with the `NodeType type` member from the Node base class, but the OSL shader compilation was missing those changes.
2020-11-10Animation: Expand unit tests for `BKE_fcurve_active_keyframe_index()`Sybren A. Stüvel
Expand unit test for `BKE_fcurve_active_keyframe_index()` to test edge cases better. This also introduces a new test macro `EXPECT_BLI_ASSERT()`, which can be used to test that an assertion fails successfully. No functional changes to actual Blender code.
2020-11-10Cleanup: clang-formatCampbell Barton
2020-11-09Merge branch 'blender-v2.91-release'Brecht Van Lommel
2020-11-09Fix T78956: banding artifacts of vertex colors in CyclesBrecht Van Lommel
Byte colors must be encoded in sRGB and converted to linear on lookup, to avoid precision loss.
2020-11-09Cycles: fix Node::tag_modified not setting modified flag's upper bitsKévin Dietrich
Previous code was flipping the bits on a 32-bit number and doing a zero extension to cast to 64-bit, so mark the constant as long to begin with. This would also erase previously set bits in this part the flag.
2020-11-09Cycles: Fix function inline attributesSergey Sharybin
forceinline attribute is only applicable for function which are marked inline. Interestingly, it can be used for class methods without explicit inline statement. But for functions it is another story.
2020-11-09macOS: follow system preference for natural trackpad scroll directionYevgeny Makarov
And remove Blender preference, which was expected to be set to match the system preference for correct behavior. Instead just handle this automatically. Differential Revision: https://developer.blender.org/D9402
2020-11-09Merge branch 'blender-v2.91-release'Sebastián Barschkis
2020-11-09Fix T82488: Mantaflow - force fields have very low influence compare to 2.90.1Sebastián Barschkis
Removed 0.2f factor when setting forces. Why this factor has been used when forces should only be clamped, nobody knows ..