Revision e8e92df by Brecht Van Lommel December 25, 2017, 22:05 (GMT) |
Fix T53607: Cycles normal map baking problem when there is no bump. |
Revision 7e4568a by Joshua Leung December 23, 2017, 10:54 (GMT) |
Cleanup - Various style/typo fixes |
Revision fe1e2c2 by Dalai Felinto December 22, 2017, 21:18 (GMT) |
Collections: deletea collection move objects to master collection if users=0 The mental model is that a scene collection is a small wrap on top of the master collection, so all objects are in the master collection at all times. When we remove a collection there is no reason to remove an object. So if the object was not linked to any other collection, we add link it to the master one. |
Revision d130c66 by Bastien Montagne December 22, 2017, 21:12 (GMT) |
Fix scalability issue in threaded code of Mesh normals computation. We tried to do as much as possible in a single threaded callback, which lead to using some nasty tricks like fake atomic-based spinlocks to perform some operations (like float addition, which has no atomic intrinsics). While OK with 'standard' low number of working threads (8-16), because collision were rather rare and implied memory barrier not *that* much overhead, this performed poorly with more powerful systems reaching the 100 of threads and beyond (like workstations or render farm hardware). There, both memory barrier overhead and more frequent collisions would have significant impact on performances. This was addressed by splitting further the process, we now have three loops, one over polys, loops and vertices, and we added an intermediate storage for weighted loop normals. This allows to avoid completely any atomic operation in body of threaded loops, which should fix scalability issues. This costs us slightly higher temp memory usage (something like 50Mb per million of polygons on average), but looks like acceptable tradeoff. Further more, tests showed that we could gain an additional ~7% of speed in computing normals of heavy meshes, by also parallelizing the last two loops (might be 1 or 2% on overall mesh update at best...). Note that further tweaking in this code should be possible once Sergey adds the 'minimum batch size' option to threaded foreach API, since very light loops like the one on loops (mere v3 addition) require much bigger batches than heavier code (like the one on polys) to keep optimal performances. |
Revision 8ed1c61 by Julian Eisel December 22, 2017, 17:53 (GMT) |
Correction to previous commit: Pass MakePrimitiveData to make_prim_finish |
Revision 10390ca by Julian Eisel December 22, 2017, 17:27 (GMT) |
Cleanup: Encapsulate primitive creation data into struct, remove unused argument Should make it easier to add new and modify existing parameters. |
Revision 4300709 by Julian Eisel December 22, 2017, 16:04 (GMT) |
Fix manipulators not updating when changing workspace view-layer There are more issues when changing view-layer (esp. with edit-mode). |
Revision 6efd58d by Sergey Sharybin December 22, 2017, 15:37 (GMT) |
Task scheduler: Clarify why do we need an atomic add of 0 |
Revision c08dac0 by Dalai Felinto December 22, 2017, 13:41 (GMT) |
Collection: Name collection based on parent's name So they are: House -> House 1 -> House 2 -> ... The exception is when the parent collection is the master collection. In this case we get: Master Collection -> Collection 1 -> Collection 2 -> ... This is part of "T53495: View layer and collection editing - Design Task" |
Revision 870840e by Sergey Sharybin December 22, 2017, 11:51 (GMT) |
Subsurf: Avoid possible use of partially initialized edge hash |
Revision df0ecd7 by Sergey Sharybin December 22, 2017, 11:50 (GMT) |
Subsurf: Avoid global lock for loops and orig index layers This is a bit annoying to have per-DM locking, but it's way better (as in, up to 4 times better) for playback speed when having lots of subsurf objects, |
Revision 50f1c9a by Sergey Sharybin December 22, 2017, 11:25 (GMT) |
Task scheduler: Start with suspended pool to avoid threading overhead on push The idea is to avoid any threading overhead when we start pushing tasks in a loop. Similarly to how we do it from the new dependency graph. Gives couple of percent of speedup here, but also improves scalability. |
Revision fec3be6 by Dalai Felinto December 22, 2017, 01:25 (GMT) |
T53610: Crash opening file with linked particles I could done a subversion bump, but I found a safe way to avoid it. It leads a bit of an ugly code, but once we bump the subversion next time we can clean it up easily. |
Revision d2ea9c2 by Sergey Sharybin December 21, 2017, 16:19 (GMT) |
Fix typo in previous commit |
Revision a7efdc1 by Sergey Sharybin December 21, 2017, 16:17 (GMT) |
Merge branch 'master' into blender2.8 |
Revision c66983c by Sergey Sharybin December 21, 2017, 16:16 (GMT) |
Depsgraph: Sort and clam number of statistics entries Makes log easier to read. |
Revision b89f227 by Dalai Felinto December 21, 2017, 15:43 (GMT) |
Implement duplicator viewport/render visibility options This allows a duplicator (as known as dupli parent) to be in a visible collection so its duplicated objects are visible, however while being invisible for the final render. An object that is a particle emitter is also considered a duplicator. Many thanks for the reviewers for the extense feedback. Reviewers: sergey, campbellbarton Differential Revision: https://developer.blender.org/D2966 |
Revision 103dd66 by Sergey Sharybin December 21, 2017, 15:36 (GMT) |
Merge branch 'master' into blender2.8 |
Revision 885bb5b by Sergey Sharybin December 21, 2017, 15:33 (GMT) |
Depsgraph: Bring timing statistics to the new dependency graph This statistics is only collected when debug_value is different from 0. Stored in depsgraph node itself, so we can always have access to average data and other stats which requires persistent storage. This way we also don't waste time trying to find stats from a separately stored hash map. |
Revision d988eae by Sergey Sharybin December 21, 2017, 15:33 (GMT) |
Depsgraph: Make it more clear that we dump relations into graphviz We might implement other things to dump into graphviz, so better to start having explicit names. |
|