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-08-31Cycles: introduce an ownership system to protect nodes from unwanted deletions.Kévin Dietrich
Problem: the Blender synchronization process creates and tags nodes for usage. It does this by directly adding and removing nodes from the scene data. If some node is not tagged as used at the end of a synchronization, it then deletes the node from the scene. This poses a problem when it comes to supporting procedural nodes who can create other nodes not known by the Blender synchonization system, which will remove them. Nodes now have a NodeOwner, which is set after creation. Those owners for now are the Scene for scene level nodes and ShaderGraph for shader nodes. Instead of creating and deleting nodes using `new` and `delete` explicitely, we now use `create_node` and `delete_node` methods found on the owners. `delete_node` will assert that the owner is the right one. Whenever a scene level node is created or deleted, the appropriate node manager is tagged for an update, freeing this responsability from BlenderSync or other software exporters. Concerning BlenderSync, the `id_maps` do not explicitely manipulate scene data anymore, they only keep track of which nodes are used, employing the scene to create and delete them. To achieve this, the ParticleSystem is now a Node, although it does not have any sockets. This is part of T79131. Reviewed By: #cycles, brecht Maniphest Tasks: T79131 Differential Revision: https://developer.blender.org/D8540
2020-08-28Merge branch 'blender-v2.90-release'Philipp Oeser
2020-08-28Fix T80149: Cycles OpenCL baking broken after changes to uses tiles for bakingBrecht Van Lommel
We forgot to update this code as part of D3108. I'd like to include this in 2.90, it's entirely broken now so can't really get any worse. Differential Revision: https://developer.blender.org/D8738
2020-08-27Clang Tidy: Fix warningHans Goudey
Fix readability-static-definition-in-anonymous-namespace in new code
2020-08-27Cleanup: Fix MSVC warning in mantaflowRay Molenkamp
This resolves the following MSVC warning: warning C4805: '&=': unsafe mix of type 'int' and type 'bool' in operation
2020-08-26Tests: fail automated tests on memory leaks and other internal errorsJacques Lucke
This adds a new `--debug-exit-on-error` flag. When it is set, Blender will abort with a non-zero exit code when there are internal errors. Currently, "internal errors" includes memory leaks detected by guardedalloc and error/fatal log entries in clog. The new flag is passed to Blender in various places where automated tests are run. Furthermore, the `--debug-memory` flag is used in tests, because that makes the verbose output more useful, when dealing with memory leaks. Reviewers: brecht, sergey Differential Revision: https://developer.blender.org/D8665
2020-08-26Fix T80129: Cycles shadow catcher viewport error with exposure other than 1Brecht Van Lommel
2020-08-26Fix T77900: File Browser in macOS fullscreen crashesYevgeny Makarov
When Blender is started in fullscreen mode from the command line, or if the fullscreen state is saved in the startup file, all temporary windows will also open in fullscreen mode. When closing the fullscreen File Browser, Blender would either crash or parent window becomes black. This does not happen if the Blender switches to full screen manually. `NSWindowCollectionBehaviorFullScreenPrimary` should be set for windows that can enter full-screen mode. Otherwise macOS will turn the wrong window into full-screen. Similar fix: rB4b39de677d20 Differential Revision: https://developer.blender.org/D8708 Reviewed by: Julian Eisel
2020-08-26Cleanup: typosJacques Lucke
2020-08-26Merge remote-tracking branch 'origin/blender-v2.90-release'Dalai Felinto
2020-08-25Fix T77298: Cycles multiple object making not working with multiple samplesBrecht Van Lommel
The previous fix loaded the pixels so existing tiles were not overwritten. However the Cycles render buffer is expected to be scaled by the number of sample, which was not taken into account. This is not ideal in that previews could have a mismatched number of samples between multiple objects, though the result will be correct. The better solution would be to bake all objects together per tile, rather than one after the other. But that is a bigger change than we can do in 2.90. Differential Revision: https://developer.blender.org/D8704
2020-08-24Merge branch 'blender-v2.90-release'Pablo Dobarro
2020-08-24Fix T79819: crash with OSL trace() and getmessage() after Embree changesBrecht Van Lommel
The return value of scene_intersect must be checked, the isect struct members can't be assumed to be initialized if that returns false. Differential Revision: https://developer.blender.org/D8692
2020-08-24Fix T80076: Cycles Alembic Motion Blur ProblemKévin Dietrich
The problem occurs when a deforming modifier is added to the object after the MeshSequenceCache modifier. We should only consider the cached velocities if the MeshSequenceCache modifier is the last one on the object and we also need to check for the correct vertex count before adding the motion vertex attribute.
2020-08-24Cycles: cleanup, remove unused parameterKévin Dietrich
This parameter was introduced during a revision of the Alembic motion blur patch, and is not needed anymore.
2020-08-24numaapi: Sync with upstreamRay Molenkamp
Fixes potential build error in some build configurations
2020-08-24Cycles: Fix missing dependencies in libcycles_deviceImre Palik
The code uses OpenGL functionality, so is to be linked against OpenGL libraries. This makes it easier to integrate with cycles using CMake. Differential Revision: https://developer.blender.org/D8371
2020-08-19Cycles : add a Volume Geometry NodeKévin Dietrich
This splits the volume related data (properties for rendering and attributes) of the Mesh node into a new `Volume` node type. This `Volume` node derives from the `Mesh` class since we generate a mesh for the bounds of the volume, as such we can safely work on `Volumes` as if they were `Meshes`, e.g. for BVH creation. However such code should still check for the geometry type of the object to be `MESH` or `VOLUME` which may be bug prone if this is forgotten. This is part of T79131. Reviewed By: brecht Maniphest Tasks: T79131 Differential Revision: https://developer.blender.org/D8538
2020-08-18Cleanup: GPUState: Remove stack from the state manager and rename itClément Foucault
2020-08-18Merge remote-tracking branch 'origin/blender-v2.90-release'Dalai Felinto
2020-08-18Remove (ifdef) RNA for simulation, point cloud and particlesDalai Felinto
For 2.90 release this should not be exposed in the RNA API. In master this needs to be ON by default, that's all. Differential Revision: https://developer.blender.org/D8589
2020-08-18Cycles: add a Pass NodeKévin Dietrich
The Pass struct is now a Node and the passes are moved from the Film class to the Scene class. The Pass Node only has `type` and `name` as sockets as those seem to be the only properties settable by exporters (other properties are implicit and depend on the pass type). This is part of T79131. Reviewed By: brecht Differential Revision: https://developer.blender.org/D8591
2020-08-18Cycles: move some Scene related methods out of SessionKévin Dietrich
This moves `Session::get_requested_device_features`, `Session::load_kernels`, and `Session::update_scene` out of `Session` and into `Scene`, as mentioned in D8544. Reviewed By: brecht Differential Revision: https://developer.blender.org/D8590
2020-08-17Merge branch 'blender-v2.90-release'Philipp Oeser
2020-08-17Fix T77683: Cycles baking crash with motion blur enabled and no cameraPhilipp Oeser
specified Maniphest Tasks: T77683 Differential Revision: https://developer.blender.org/D8593
2020-08-17Cycles: Fix local intersections in Embree for non-instancd geometry.Stefan Werner
Embree's occlusion filter was checking against the wrong object ID and not exiting correctly in case of a mismatch. Fixes T79723
2020-08-17Merge branch 'blender-v2.90-release'Richard Antalik
2020-08-17Fix T79052: Cycles new sky texture fails with sun size zeroBrecht Van Lommel
Clamp to a minimum angle to avoid precision issues.
2020-08-17Cycles: Fix local intersections in Embree for non-instancd geometry.Stefan Werner
Embree's occlusion filter was checking against the wrong object ID and not exiting correctly in case of a mismatch. Fixes T79723
2020-08-17Cleanup: spellingCampbell Barton
2020-08-14Merge branch 'blender-v2.90-release'Julian Eisel
2020-08-14Fix warning when compiling on Linux with WITH_XR_OPENXR enabledJulian Eisel
2020-08-14Merge branch 'blender-v2.90-release'Julian Eisel
2020-08-14Fix undefined behavior with --debug-xrJulian Eisel
Mistake in cb578ca1048d3. Before that, the extension vector was static, to make sure the extension name strings wouldn't get destructed when leaving the function. I didn't think that was an issue and couldn't recreate one, because until the previous commit we wouldn't actually add any extensions to the vector on Windows (the system I tested with). Use C++17's `std::string_view` now, which avoids the string copies `std::string` creates for itself and thus its destruction when leaving the local scope.
2020-08-14Fix --debug-xr not outputting OpenXR debug prints on WindowsJulian Eisel
The OpenXR debug extension was disabled on Windows as a workaround. This was an old leftover from when there was only the Windows Mixed Reality runtime on Windows. The debug extension didn't work for it and we didn't have a way to disable it just for Windows Mixed Reality. Now it seems to work though, so we remove the workaround. If specific runtimes still have trouble with the extension, we can disable it specifically for these runtimes now.
2020-08-14Fix T79769, T79768: crash tweaking volume settings with Cycles viewport renderBrecht Van Lommel
Refitting the BVH does not work in this case, it needs to be fully rebuilt.
2020-08-14Merge branch 'blender-v2.90-release'Julian Eisel
2020-08-14Fix/workaround graphics issues breaking SteamVR use with BlenderJulian Eisel
Windows only workaround. I'll have to investigate Linux separately. Steam's OpenGL compatibility is still new and doesn't work for us yet (neither does it for standard OpenXR examples from what I've heard and seen myself). We can work around that by falling back to our DirectX compatibility layer. Note that this DirectX compatibility still doesn't work for some systems, see T76082. Implementation note: Since the graphics binding extensions have to be enabled before we can find out which runtime is in use (e.g. SteamVR vs. Oculus, etc), we can now enable multiple graphics binding extensions but settle for a single one to use later. Once the SteamVR OpenGL backend works, we can remove this workaround again. Fixes T78267.
2020-08-14Cleanup: C++ code style for Ghost-XRJulian Eisel
* Avoid deep copy of vectors (technically more than a cleanup). * Use `std::make_unique` for allocating unique pointers, rather than manual `new`. * Use `std::optional` for optional by-value return values, rather than C-style `bool` to indicate success + return-argument. * Use references rather than pointers for non-optional arguments. * Avoid manual `new`/`delete`. Use `std::unique_ptr` for local scope bound lifetime. * Use C++ `nullptr` rather than C's `NULL`. * Remove unnecessary friend declaration. These changes are generally considered good practise and move us more to a "modern C++" style. We can still go much further of course. See https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines.
2020-08-13Cleanup: clang-formatCampbell Barton
2020-08-12Merge branch 'blender-v2.90-release'Brecht Van Lommel
2020-08-12Fix T79680, T79680: confusing viewport denoise start sample behaviorBrecht Van Lommel
2020-08-12Cleanup: compiler warningsBrecht Van Lommel
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-11Cleanup: Strict compiler flagsSergey Sharybin
Mainly caused by moving tests to source folder, which brings new compiler flags. Also, no need to extend include directories (to the non-existing paths, btw) since this is done by the CmakeList.txt which is in the blenlib folder.
2020-08-11Cleanup: GCC warning in guardedalloc_overflow_testCampbell Barton
2020-08-10Merge branch 'blender-v2.90-release'Julian Eisel
2020-08-10Fix T79636: Inserting special characters with Ctrl+Alt broken on WindowsJulian Eisel
We can't exactly follow what we do for macOS here. On Windows special characters can be inserted with Ctrl+Alt. So make sure we expect UTF-8 characters when Alt is held. Mistake in 87062d4d670c.
2020-08-10Cleanup: follow code style regarding bracesBrecht Van Lommel