[qt/qt/qtquick3dphysics]: Summary of bulk changes made
KDE Git Services - Bulk Change <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git repository change summary for qt/qt/qtquick3dphysics Pushed by mirror-service into branch 'dev'. Changed from 4d32481dc85a34e72e786b98f587417fa2c1cc0f to 07dd4881d9a272b891e446c2588a9f3819cccd0f Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository. This change contains the following new commits: Git commit 4d2ecc717c30eaa600b1adc9d60c8b1df4e48039 by Jonas Karlsson on 07/08/2026 at 09:47.. PhysX: Fix stack-buffer-overflow in CCD sweep CCDSweep() loaded lastTm0.p/lastTm1.p with an aligned 16-byte SIMD load (V3LoadA). PxVec3 p is the last member of the 28-byte PxTransform, so this load always reads 4 bytes past the end of the struct. The same function already uses the safe unaligned load (V3LoadU) for transform0.p/transform1.p a few lines below, so this was an inconsistency in the vendored code. This went unnoticed under ASan until CCD started running unconditionally for every scene and a sphere-vs-box CCD sweep test was added, both of which first exercise this code path. Pick-to: 6.12 6.11 6.8 Change-Id: I8c0e6e3e2ff2be2c826c48f0b0dbd5d1f26cbeb1 Reviewed-by: Andrei Yankovich <[email protected]> Reviewed-by: Kristoffer Skau <[email protected]> https://invent.kde.org/qt/qt/qtquick3dphysics/-/commit/4d2ecc717c30eaa600b1adc9d60c8b1df4e48039 Git commit 07dd4881d9a272b891e446c2588a9f3819cccd0f by Jonas Karlsson (on behalf of Andrei Yankovich) on 07/08/2026 at 09:47.. Allow configuring CCD type selectively per object In large scenes, enabling CCD globally for all scene objects is usually counterproductive due to performance overhead, especially given that physics computation runs on the CPU. Typically, CCD is only needed for specific fast-moving objects, such as bullets or projectiles, as is standard practice in other engines. Add DynamicRigidBody::ccd property (supporting None, SweepBasedCCD, and SpeculativeCCD) so CCD can be configured per object. Sweep-based CCD is applied for non-kinematic bodies, while kinematic bodies automatically fall back to Speculative CCD as PhysX does not support sweep-based CCD for them. PhysicsWorld::enableCCD is deprecated in favor of DynamicRigidBody::ccd. CCD is now always available at the scene level (setting PxSceneFlag::eENABLE_CCD has negligible cost when no body opts in, since PhysX's CCD pass bails out immediately when no objects have CCD flags). For compatibility with existing content, setting PhysicsWorld::enableCCD to true still enables CCD for all bodies that do not explicitly override their ccd property (using SweepBasedCCD for dynamic bodies and SpeculativeCCD for kinematic ones). [ChangeLog][QtQuick3D][DynamicRigidBody] Added ccd property to allow configuring continuous collision detection type (None, SweepBasedCCD, SpeculativeCCD) per object. [ChangeLog][QtQuick3D][PhysicsWorld] Deprecated enableCCD in favor of DynamicRigidBody::ccd. Setting PhysicsWorld::enableCCD to true serves as a global fallback for bodies with ccd set to None. Change-Id: I4132f17f9ab7b995b852b1d519c9ae90a906d3f4 Reviewed-by: Andrei Yankovich <[email protected]> Reviewed-by: Jonas Karlsson <[email protected]> https://invent.kde.org/qt/qt/qtquick3dphysics/-/commit/07dd4881d9a272b891e446c2588a9f3819cccd0f