Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assert with PX_ENABLE_ASSERTS and ABP_SIMD_OVERLAP #665

Open
Sknowman opened this issue Jul 28, 2024 · 0 comments
Open

Assert with PX_ENABLE_ASSERTS and ABP_SIMD_OVERLAP #665

Sknowman opened this issue Jul 28, 2024 · 0 comments

Comments

@Sknowman
Copy link

Sknowman commented Jul 28, 2024

Im hitting an assert in

void BoxManager::prepareData(RadixSortBuffered& /rs/, ABP_Object* PX_RESTRICT objects, PxU32 objectsCapacity, ABP_MM& memoryManager, PxU64 contextID)

file BpBroadPhaseABP.cpp
line 1473
at PX_ASSERT(boxesYZ[i].mMinY==-aabb.mMinY);
debug build
physX 5.4.0
https://github.com/NVIDIA-Omniverse/PhysX/blob/44667a2576f8145bb972c81cab255824455fc5c7/physx/source/lowlevelaabb/src/BpBroadPhaseABP.cpp#L1473

in my case, the computed bounds mMinY value seems to be off by a significant amount, about 6.0 units (scenes scale would be considered big by normal standards I think, but was never a problem in previous versions of physx).

If I go back up the stack prepareData() is called on the kinematic list of boxes from void ABP::Region_prepareOverlaps() line 3414
https://github.com/NVIDIA-Omniverse/PhysX/blob/44667a2576f8145bb972c81cab255824455fc5c7/physx/source/lowlevelaabb/src/BpBroadPhaseABP.cpp#L3414
on the 'mKBM' member.

It happens when first load a scene of static actors, I then add a bunch of kinematic actors. Then shortly after I change the scene by removing all the static actors, and replace them with new ones, upon removing all the static actors the scene contains original kinematics (possibly dynamics but i dont think so) and new statics, on the very next series of calls to .........

// <-- before simulate(), remove static actors here, kinematics remain -->
scene->simulate(step); // completes fine
scene->fetchResults(true); // <-- assertion here
// <-- scene with only kinematics here, I dont get this far

..... I get the assertion. This was never an issue before physx 5.4.0ish that I know of, maybe I didnt notice, maybe its a 5.0.0+ thing and this isnt supported anymore but I didnt get anything like this in 4.0-.

Ive looked through the migration guide, Im not sure what the process for updating a scene is in 5.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant