blender/intern/cycles/bvh
Brecht Van Lommel 04857cc8ef Cycles: fully decouple triangle and curve primitive storage from BVH2
Previously the storage here was optimized to avoid indirections in BVH2
traversal. This helps improve performance a bit, but makes performance
and memory usage of Embree and OptiX BVHs a bit worse also. It also adds
code complexity in other parts of the code.

Now decouple triangle and curve primitive storage from BVH2.
* Reduced peak memory usage on all devices
* Bit better performance for OptiX and Embree
* Bit worse performance for CUDA
* Simplified code:
** Intersection.prim/object now matches ShaderData.prim/object
** No more offset manipulation for mesh displacement before a BVH is built
** Remove primitive packing code and flags for Embree and OptiX
** Curve segments are now stored in a KernelCurve struct
* Also happens to fix a bug in baking with incorrect prim/object

Fixes T91968, T91770, T91902

Differential Revision: https://developer.blender.org/D12766
2021-10-06 17:52:04 +02:00
..
bvh2.cpp Cycles: fully decouple triangle and curve primitive storage from BVH2 2021-10-06 17:52:04 +02:00
bvh2.h Cycles: Add CPU+GPU rendering support with OptiX 2020-12-11 13:24:29 +01:00
bvh_binning.cpp Fix Cycles build error without Embree on Windows 2021-03-01 16:33:31 +01:00
bvh_binning.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
bvh_build.cpp Cycles: fully decouple triangle and curve primitive storage from BVH2 2021-10-06 17:52:04 +02:00
bvh_build.h Cleanup: use lambdas instead of functors for task pools, remove threadid 2020-06-22 13:06:47 +02:00
bvh_embree.cpp Cycles: fully decouple triangle and curve primitive storage from BVH2 2021-10-06 17:52:04 +02:00
bvh_embree.h Cycles: Add CPU+GPU rendering support with OptiX 2020-12-11 13:24:29 +01:00
bvh_multi.cpp Cycles: Add CPU+GPU rendering support with OptiX 2020-12-11 13:24:29 +01:00
bvh_multi.h Cycles: Add CPU+GPU rendering support with OptiX 2020-12-11 13:24:29 +01:00
bvh_node.cpp ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
bvh_node.h Cleanup: repeated terms in code comments & error messages 2021-06-28 15:46:08 +10:00
bvh_optix.cpp Fix T87793: Cycles OptiX crash hiding objects in viewport render 2021-05-19 18:30:43 +02:00
bvh_optix.h Fix T87793: Cycles OptiX crash hiding objects in viewport render 2021-05-19 18:30:43 +02:00
bvh_params.h Cycles: merge of cycles-x branch, a major update to the renderer 2021-09-21 14:55:54 +02:00
bvh_sort.cpp Cycles: use TBB for task pools and task scheduler 2020-06-22 13:27:37 +02:00
bvh_sort.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
bvh_split.cpp Cleanup: full sentences in comments, improve comment formatting 2021-06-26 21:50:48 +10:00
bvh_split.h Spelling: It's Versus Its 2020-10-19 08:12:33 -07:00
bvh_unaligned.cpp Cycles API: encapsulate Node socket members 2020-11-04 13:03:33 +01:00
bvh_unaligned.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
bvh.cpp Cycles: refactor intrinsic functions implementation 2021-02-17 16:26:24 +01:00
bvh.h Cycles: fully decouple triangle and curve primitive storage from BVH2 2021-10-06 17:52:04 +02:00
CMakeLists.txt Cycles: Add CPU+GPU rendering support with OptiX 2020-12-11 13:24:29 +01:00