Commit: 67d0a30de054eeb3e6a07b0f35476ac4288cd0f2 Author: Kévin Dietrich Date: Mon Nov 2 00:31:07 2020 +0100 Branches: cycles_procedural_api https://developer.blender.org/rB67d0a30de054eeb3e6a07b0f35476ac4288cd0f2
Merge branch 'cycles_optix_refit' into cycles_procedural_api =================================================================== =================================================================== diff --cc intern/cycles/device/device_optix.cpp index 2e5a9252de4,5558354d03c..95234845f98 --- a/intern/cycles/device/device_optix.cpp +++ b/intern/cycles/device/device_optix.cpp @@@ -1201,9 -1215,24 +1215,24 @@@ class OptiXDevice : public CUDADevice if (geometry.find(geom) != geometry.end()) continue; + OptixTraversableHandle handle; + OptixBuildOperation operation; + CUdeviceptr out_data; + // Refit is only possible in viewport for now. + if (static_cast<BVHOptiX *>(geom->bvh)->do_refit && !background) { + out_data = static_cast<BVHOptiX *>(geom->bvh)->optix_data_handle; + handle = static_cast<BVHOptiX *>(geom->bvh)->optix_handle; + operation = OPTIX_BUILD_OPERATION_UPDATE; + } + else { + out_data = 0; + handle = 0; + operation = OPTIX_BUILD_OPERATION_BUILD; + } + - if (geom->type == Geometry::HAIR) { + if (geom->geometry_type == Geometry::HAIR) { // Build BLAS for curve primitives - Hair *const hair = static_cast<Hair *const>(ob->geometry); + Hair *const hair = static_cast<Hair *const>(ob->get_geometry()); if (hair->num_curves() == 0) { continue; } @@@ -1365,9 -1393,11 +1394,11 @@@ } // Allocate memory for new BLAS and build it - OptixTraversableHandle handle; - if (build_optix_bvh(build_input, num_motion_steps, handle)) { + if (build_optix_bvh(build_input, num_motion_steps, handle, out_data, operation)) { - geometry.insert({ob->geometry, handle}); + geometry.insert({ob->get_geometry(), handle}); + static_cast<BVHOptiX *>(geom->bvh)->optix_data_handle = out_data; + static_cast<BVHOptiX *>(geom->bvh)->optix_handle = handle; + static_cast<BVHOptiX *>(geom->bvh)->do_refit = false; } else { return false; @@@ -1439,9 -1467,11 +1470,11 @@@ build_input.triangleArray.primitiveIndexOffset = mesh->optix_prim_offset; // Allocate memory for new BLAS and build it - OptixTraversableHandle handle; - if (build_optix_bvh(build_input, num_motion_steps, handle)) { + if (build_optix_bvh(build_input, num_motion_steps, handle, out_data, operation)) { - geometry.insert({ob->geometry, handle}); + geometry.insert({ob->get_geometry(), handle}); + static_cast<BVHOptiX *>(geom->bvh)->optix_data_handle = out_data; + static_cast<BVHOptiX *>(geom->bvh)->optix_handle = handle; + static_cast<BVHOptiX *>(geom->bvh)->do_refit = false; } else { return false; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs