Option to Pass Parameters to Scalable CCD Narrow-Phase #208
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR fixes GPU CCD (
SweepAndTiniestQueuebroad phase) ignoring user-specifiedTightInclusionCCDparameters incompute_collision_free_stepsize.Previously, the GPU path called
scalable_ccd::cuda::ipc_ccd_strategywith hardcodedTightInclusionCCD::DEFAULT_TOLERANCEandTightInclusionCCD::DEFAULT_MAX_ITERATIONS, even when the user passed a customTightInclusionCCDvia thenarrow_phase_ccdparameter.Now, when
narrow_phase_ccdis aTightInclusionCCDinstance, the GPU path extractstoleranceandmax_iterationsusingdynamic_castand forwards them toscalable_ccd::cuda::ipc_ccd_strategy. Ifnarrow_phase_ccdis not aTightInclusionCCDinstance, we fall back to default values to preserve backward compatibility.Motivation / Context
NarrowPhaseCCDinterface, but couldn't do the same for GPU CCD.Dependencies
IPC_TOOLKIT_WITH_CUDA=ON) and existingTightInclusionCCDclass.Fixes #124
Type of change
Please delete options that are not relevant.
How Has This Been Tested?
Added a new test case
"GPU CCD parameter extraction"intests/src/tests/ccd/test_gpu_ccd.cppthat verifies:TightInclusionCCDparameters (tolerance and max_iterations) are extracted and used on the GPU pathTightInclusionCCDworks with default parametersTightInclusionCCDtypes (e.g.,AdditiveCCD) fall back to defaults correctlyTest Instructions:
IPC_TOOLKIT_WITH_CUDA=ON)ctest -R test_gpu_ccd"GPU CCD parameter extraction"test case passesTest Configuration:
Checklist