Revision 13af88b by Brecht Van Lommel December 7, 2021, 18:01 (GMT) |
Build: clean up handling of some Cycles build options * Don't link embree / OSL when WITH_CYCLES is disabled * Simplify lite config by disabling Cycles as a whole using this * Remove code handling the removed WITH_CYCLES_NETWORK option |
Revision 4847149 by Brecht Van Lommel December 7, 2021, 18:01 (GMT) |
Build: remove Cycles CUDA/HIP/OPTIX build options on macOS So those device types are not listed in the preferences. Metal will be added instead as the only option. |
December 7, 2021, 18:01 (GMT) |
Fix T93418: Cycles shadow terminator Geometry Offset artifacts with translucency Differential Revision: https://developer.blender.org/D13468 |
Revision e14f8c2 by Patrick Mours December 7, 2021, 17:50 (GMT) |
Cycles: Reintroduce device-only memory handling that got lost in Cycles X merge Somehow only a part of rBf4f8b6dde32b0438e0b97a6d8ebeb89802987127 ended up in Cycles X, causing the issue that commit fixed, "OPTIX_ERROR_INVALID_VALUE" when the system is out of memory, to show up again. This adds the missing changes to fix that problem. Maniphest Tasks: T93620 Differential Revision: https://developer.blender.org/D13488 |
Revision a37dac0 by Sybren A. Stüvel December 7, 2021, 16:47 (GMT) |
Cycles: add Metal device type to `device_type_for_description` Add a `DEVICE_METAL` case to the enum-value-to-string mapping function. |
Revision fee4b58 by Sybren A. Stüvel December 7, 2021, 16:46 (GMT) |
Cycles: fix build on non-Apple systems Skip compiling `metal.mm` unless `WITH_CYCLES_DEVICE_METAL` is enabled. |
Revision c4cee2e by Johnny Matthews December 7, 2021, 16:07 (GMT) |
Geometry Nodes: Edge Neighbors Node Creates a new Edge Neighbors node which outputs a field containing the number of faces connected to each edge. Differential Revision: https://developer.blender.org/D13493 |
Revision 9558fa5 by Michael Jones December 7, 2021, 15:52 (GMT) |
Cycles: Metal host-side code This patch adds the Metal host-side code: - Add all core host-side Metal backend files (device_impl, queue, etc) - Add MetalRT BVH setup files - Integrate with Cycles device enumeration code - Revive `path_source_replace_includes` in util/path (required for MSL compilation) This patch also includes a couple of small kernel-side fixes: - Add an implementation of `lgammaf` for Metal [Nemes, Gerg? (2010), "New asymptotic expansion for the Gamma function", Archiv der Mathematik](https://users.renyi.hu/~gergonemes/) - include "work_stealing.h" inside the Metal context class because it accesses state now Ref T92212 Reviewed By: brecht Maniphest Tasks: T92212 Differential Revision: https://developer.blender.org/D13423 |
Revision 565b33c by Jacques Lucke December 7, 2021, 14:37 (GMT) |
Geometry Nodes: new Geometry to Instance node This adds a new Geometry to Instance node that turns every connected input geometry into an instance. Those instances can for example be used in the Instance on Points node. Differential Revision: https://developer.blender.org/D13500 |
Revision a8e0fe6 by Jacques Lucke December 7, 2021, 14:22 (GMT) |
Geometry Nodes: move type conversions to blenkernel The type conversions do not depend on other files in the nodes module. Furthermore we want to use the conversions in the geometry module without creating a dependency to the nodes module there. |
Revision 2309fa2 by Hans Goudey December 7, 2021, 14:09 (GMT) |
Cleanup: Add macro and functions for node storage The `node_storage` functions to retrieve const and mutable structs from a node are generated by a short macro that can be placed at the top of each relevant file. I use this in D8286 to make code snippets in the socket declarations much shorter, but I thought it would be good to use it consistently everywhere else too. The functions are also useful to avoid copy and paste errors, like the one corrected in the cylinder node in this commit. Differential Revision: https://developer.blender.org/D13491 |
December 7, 2021, 13:25 (GMT) |
Fix T93467: Use world bg color for pose library previews Use the World viewport color when rendering pose library previews. The World's viewport color is chosen instead of the World shading nodes, as the latter would require rendering with `OB_RENDER` (instead of `OB_SOLID`), which would take considerably longer. Manifest Task: T93467 Reviewed By: sybren Differential Revision: https://developer.blender.org/D13470 |
Revision 0f48b37 by Jacques Lucke December 7, 2021, 12:26 (GMT) |
Revert moving all shader nodes to c++ This reverts to following commits: * rB5cad004d716da02f511bd34983ac7da820308676 * rB97e3a2d935ba9b21b127eda7ca104d4bcf4e48bd * rBf60b95b5320f8d6abe6a629fe8fc4f1b94d0d91c * rB0bd3cad04edf4bf9b9d3b1353f955534aa5e6740 * rBf72cc47d8edf849af98e196f721022bacf86a5e7 * rB3f7014ecc9d523997062eadd62888af5fc70a2b6 * rB0578921063fbb081239439062215f2538a31af4b * rBc20098e6ec6adee874a12e510aa4a56d89f92838 * rBd5efda72f501ad95679d7ac554086a1fb18c1ac0 The original move to c++ that the other commits depended upon had some issues that should be fixed before committing it again. The issues were reported in T93797, T93809 and T93798. We should also find a better rule for not using c-style casts going forward, although that wouldn't have been reason enough to revert the commits. Introducing something like a `MEM_new<T>` and `MEM_delete<T>` function might help with the the most common case of casting the return type of `MEM_malloc`. Going forward, I recommend first committing the changes that don't require converting files to c++. Then convert the shading node files in smaller chunks. Especially don't mix fairly low risk changes like moving some simple nodes, with higher risk changes. |
Revision ae5a89e by Julian Eisel December 7, 2021, 11:03 (GMT) |
Fix T93797, T93809: Crash/undefined-behavior when opening demo file Error in d5efda72f501. Was changing an iteration that would free items to an iterator that is not safe for use in such cases. There still seem to be significant issues with the rendering, but that's a separate issue to be fixed. |
Revision 4312cb8 by Julian Eisel December 7, 2021, 10:47 (GMT) |
Fix memory leak when loading large asset libraries |
Revision cd49408 by Jeroen Bakker December 7, 2021, 10:30 (GMT) |
Fix crash when switching back from render preview. Issue is that external engine uses the gpu info. but overwrote the instance data. The draw manager would then detect instance data and required the engine type to have a instance free callback. The solution is to save some space in the engine data to hold an empty and unused instance_data attribute to comply with `ViewportEngineData` struct. |
Revision b069218 by Jeroen Bakker December 7, 2021, 09:34 (GMT) |
DrawManager: Engine Instance Data. In the original design draw engines had to copy with a limitation that they were not allowed to reuse complex data structures between drawing calls. Data that could be reused were limited to: - GPUFramebuffers - GPUTextures - Memory that could be removed calling MEM_freeN (storage list) - DRWPass This is fine when the storage list contains arrays or structs but when more complex data types (vectors, maps) etc wasn't possible. This patch adds instance_data that can be reused between drawing calls. The instance_data is controlled by the draw engine and doesn't need to be limited as described above. When an engines stores instance_data it must implement the `DrawEngineType.instance_free` callback to free the data. The patch originates from eevee rewrite. But was added to master as the image engine rewrite also has a need for it. Reviewed By: fclem Differential Revision: https://developer.blender.org/D13425 |
Revision e2f0b4a by Jeroen Bakker December 7, 2021, 09:33 (GMT) |
Cleanup: Use rcti marking dirty regions when texture painting. Dirty regions when painting are not using rcti. Meaning less understandable code. Found issue when refactoring the image_gpu partial update. In a future change gpu partial update API will be using rcti also what makes the code even cleaner. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D13260 |
Revision 1de3636 by Campbell Barton December 7, 2021, 07:55 (GMT) |
Cleanup: note that functions in BKE_node.h aren't part of blenkernel |
Revision 512a560 by Campbell Barton December 7, 2021, 07:47 (GMT) |
Cleanup: remove BKE_ptcache_remove No longer needed as the temporary directory is cleared on exit. |
|