Skip to content

Commit 44667a2

Browse files
committed
Update PhysX to 82786122
1 parent f07ba77 commit 44667a2

29 files changed

+328
-54
lines changed

physx/.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
bin/
21
compiler/linux-*
32
compiler/vc*
43
include/PxConfig.h

physx/CHANGELOG.md

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,47 @@
1+
# v5.4.1-106.0
2+
3+
## General
4+
5+
### Added
6+
7+
* Debug visualization of contact friction was added, controlled by the following visualization parameter flags: PxVisualizationParameter::eFRICTION_POINT, PxVisualizationParameter::eFRICTION_NORMAL, and PxVisualizationParameter::eFRICTION_IMPULSE.
8+
* PxVisualizationParameter::eCONTACT_IMPULSE flag was added to replace PxVisualizationParameter::eCONTACT_FORCE.
9+
10+
### Deprecated
11+
12+
* PxVisualizationParameter::eCONTACT_FORCE was deprecated. Use PxVisualizationParameter::eCONTACT_IMPULSE instead.
13+
14+
### Fixed
15+
16+
* A bug in Debug Visualization where collision contact points are misaligned with collision geometry.
17+
* A bug in the GPU broadphase that resulted in a crash when overflowing the preallocated number of lost and found pairs.
18+
19+
## Articulations
20+
21+
### Added
22+
23+
* Possibility to apply a force or a torque to an articulation link through articulation cache with the flags PxArticulationCacheFlag::eLINK_FORCE and PxArticulationCacheFlag::eLINK_TORQUE.
24+
25+
### Fixed
26+
27+
* Runtime changes to PxArticulationJointReducedCoordinate::setMaxJointVelocity() were not working for the GPU pipeline.
28+
* Runtime changes to PxArticulationJointReducedCoordinate::setFrictionCoefficient() were not working for the GPU pipeline.
29+
* A bug when adding articulations to a scene that already contained other articulations.
30+
* Corrected the calculation of the first tangent vector used in the friction patch model of articulations. This may have increased the probability of artifacts in the friction calculation.
31+
32+
## PVD
33+
34+
### Fixed
35+
36+
* Missing OVD object creation calls in deserializations of PxCollection and PxAggregate with regards to articulations.
37+
138
# v5.4.0-106.0
239

340
## Supported Platforms
441

542
### Runtime
643

744
* Linux (tested on Ubuntu 20.04 and 22.04)
8-
* Linux glibc version 2.31 or higher
945
* Microsoft Windows 10 or later (64 bit)
1046
* GPU acceleration: display driver supporting CUDA toolkit 11.8 and Pascal GPU or above
1147

physx/dependencies.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616
</dependency>
1717

1818
<dependency name="PhysXGpu">
19-
<package name="PhysXGpu" version="912d9405-windows-public" platforms="vc15win64 vc16win64 vc17win64"/>
20-
<package name="PhysXGpu" version="912d9405-linux-x86_64-public" platforms="linux"/>
21-
<package name="PhysXGpu" version="912d9405-linux-aarch64-public" platforms="linux-aarch64"/>
19+
<package name="PhysXGpu" version="5.4.1.86cd1749-release-106.0-windows-public" platforms="vc15win64 vc16win64 vc17win64"/>
20+
<package name="PhysXGpu" version="5.4.1.86cd1749-release-106.0-linux-x86_64-public" platforms="linux"/>
21+
<package name="PhysXGpu" version="5.4.1.86cd1749-release-106.0-linux-aarch64-public" platforms="linux-aarch64"/>
2222
</dependency>
2323

2424
<dependency name="opengllinux" tags="requiredForDistro">

physx/documentation/platformreadme/linux/README_LINUX.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Compilers and C++ Standard:
1818
* Ubuntu 22.04 LTS with gcc 11 or clang 14
1919
* Note: PhysX may fail to compile with clang versions higher than 14 as they have not been tested
2020
* For linux aarch64 builds we support gcc version 9
21-
* C++17 compatible
21+
* Tested with C++11 standard
2222

2323

2424
## Generating Makefiles:

physx/documentation/platformreadme/windows/README_WINDOWS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@
77

88
## Required packages to generate projects:
99

10-
* Microsoft Windows 10 (or later) + headers for at least Win7 (`_WIN32_WINNT = 0x0601`)
10+
* Microsoft Windows 10 (or later)
1111
* CMake, minimum version 3.21
1212
* Python, minimum version 3.5
1313

1414
Compilers and C++ Standard:
1515
* Microsoft Visual Studio 2017, 2019, 2022 (64 bit)
16-
* C++17 compatible
16+
* Tested with C++14 standard
1717

1818
## PhysX GPU Acceleration:
1919

physx/generate_projects.bat

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,19 @@ for /f "usebackq tokens=*" %%i in (`"%PM_vswhere_PATH%\VsWhere.exe -version [15
2424
for /f "usebackq tokens=*" %%i in (`"%PM_vswhere_PATH%\VsWhere.exe -version [16.0,17.0) -latest -property installationPath"`) do (
2525
set Install2019Dir=%%i
2626
set VS160PATH="%%i"
27+
@REM Setting VS160COMNTOOLS: This is mainly needed for building for Switch
28+
@REM Reason: When both MS build tools and Visual Studio are installed together in the same system
29+
@REM Cmake will use msbuild to generate the project instead of Visual Studio. Which make Cmake fail
30+
@REM When generating the project for Switch. However, if an environment variable of the form VS##0COMNTOOLS,
31+
@REM where ## the Visual Studio major version number, is set and points to the Common7/Tools directory within
32+
@REM one of the VS instances, that instance will be used. see: https://cmake.org/cmake/help/latest/variable/CMAKE_GENERATOR_INSTANCE.html
33+
set "VS160COMNTOOLS=%%i\Common7\Tools\"
2734
)
2835

2936
for /f "usebackq tokens=*" %%i in (`"%PM_vswhere_PATH%\VsWhere.exe -version [17.0,18.0) -latest -property installationPath"`) do (
3037
set Install2022Dir=%%i
3138
set VS170PATH="%%i"
39+
set "VS170COMNTOOLS=%%i\Common7\Tools\"
3240
)
3341

3442
if exist "%Install2017Dir%\VC\Auxiliary\Build\Microsoft.VCToolsVersion.default.txt" (

physx/include/PxArticulationFlag.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,13 @@ namespace physx
9292
eFORCE = (1 << 3), //!< The joint forces, see PxArticulationCache::jointForce.
9393
eLINK_VELOCITY = (1 << 4), //!< The link velocities, see PxArticulationCache::linkVelocity. Link velocities cannot be set except for the root link velocity via PxArticulationCache::rootLinkData.
9494
eLINK_ACCELERATION = (1 << 5), //!< The link accelerations, see PxArticulationCache::linkAcceleration.
95-
eROOT_TRANSFORM = (1 << 6), //!< Root link transform, see PxArticulationCache::rootLinkData.
96-
eROOT_VELOCITIES = (1 << 7), //!< Root link velocities (read/write) and accelerations (read), see PxArticulationCache::rootLinkData.
97-
eLINK_INCOMING_JOINT_FORCE = (1 << 10), //!< Link incoming joint forces, see PxArticulationCache::linkIncomingJointForce.
95+
eROOT_TRANSFORM = (1 << 6), //!< The root link transform, see PxArticulationCache::rootLinkData.
96+
eROOT_VELOCITIES = (1 << 7), //!< The root link velocities (read/write) and accelerations (read), see PxArticulationCache::rootLinkData.
97+
eLINK_INCOMING_JOINT_FORCE = (1 << 10), //!< The link incoming joint forces, see PxArticulationCache::linkIncomingJointForce.
9898
eJOINT_TARGET_POSITIONS = (1 << 11), //!< The joint target positions, see PxArticulationCache::jointTargetPositions.
9999
eJOINT_TARGET_VELOCITIES = (1 << 12), //!< The joint target velocities, see PxArticulationCache::jointTargetVelocities.
100+
eLINK_FORCE = (1 << 13), //!< The link forces, see PxArticulationCache::linkForce.
101+
eLINK_TORQUE = (1 << 14), //!< The link torques, see PxArticulationCache::linkTorque.
100102
eALL = (eVELOCITY | eACCELERATION | ePOSITION | eLINK_VELOCITY | eLINK_ACCELERATION | eROOT_TRANSFORM | eROOT_VELOCITIES)
101103
};
102104
};

physx/include/PxArticulationReducedCoordinate.h

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,8 @@ namespace physx
111111
linkVelocity (NULL),
112112
linkAcceleration (NULL),
113113
linkIncomingJointForce (NULL),
114+
linkForce (NULL),
115+
linkTorque (NULL),
114116
rootLinkData (NULL),
115117
coefficientMatrix (NULL),
116118
lambda (NULL),
@@ -261,7 +263,27 @@ namespace physx
261263
\note The root link reports a zero spatial force.
262264
*/
263265
PxSpatialForce* linkIncomingJointForce;
264-
266+
267+
/**
268+
\brief Link force, i.e. an external force applied to the link's center of mass.
269+
270+
- N = getNbLinks().
271+
- Write using PxArticulationCacheFlag::eLINK_FORCE.
272+
- The indexing follows the internal link indexing, see PxArticulationLink::getLinkIndex.
273+
- The force is given in world space.
274+
*/
275+
PxVec3* linkForce;
276+
277+
/**
278+
\brief Link torque, i.e. an external torque applied to the link.
279+
280+
- N = getNbLinks().
281+
- Write using PxArticulationCacheFlag::eLINK_TORQUE.
282+
- The indexing follows the internal link indexing, see PxArticulationLink::getLinkIndex.
283+
- The torque is given in world space.
284+
*/
285+
PxVec3* linkTorque;
286+
265287
/**
266288
\brief Root link transform, velocities, and accelerations.
267289

physx/include/PxContact.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -733,6 +733,16 @@ class PxFrictionAnchorStreamIterator
733733
return mFrictionPatches[mPatchIndex].anchorImpulses[mFrictionAnchorIndex];
734734
}
735735

736+
/**
737+
\brief Get the friction anchor's normal.
738+
\return The friction anchor's normal.
739+
*/
740+
PX_CUDA_CALLABLE PX_FORCE_INLINE const PxVec3& getNormal() const
741+
{
742+
PX_ASSERT(patchIsValid());
743+
return mContactPatches[mPatchIndex].normal;
744+
}
745+
736746
/**
737747
\brief Get current patch's static friction coefficient.
738748
\return The patch's static friction coefficient.

physx/include/PxSimulationEventCallback.h

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -708,8 +708,6 @@ PX_INLINE PxU32 PxContactPair::extractFrictionAnchors(PxContactPairFrictionAncho
708708
{
709709
PxFrictionAnchorStreamIterator iter(contactPatches, frictionPatches, patchCount);
710710

711-
const PxU32 hasImpulses = (flags & PxContactPairFlag::eINTERNAL_HAS_IMPULSES);
712-
713711
while(iter.hasNextPatch())
714712
{
715713
iter.nextPatch();
@@ -719,10 +717,7 @@ PX_INLINE PxU32 PxContactPair::extractFrictionAnchors(PxContactPairFrictionAncho
719717
PxContactPairFrictionAnchor& dst = userBuffer[nbAnchors];
720718

721719
dst.position = iter.getPosition();
722-
723-
dst.impulse = hasImpulses
724-
? iter.getImpulse()
725-
: PxVec3(0.0f);
720+
dst.impulse = iter.getImpulse();
726721

727722
++nbAnchors;
728723
if(nbAnchors == bufferSize)

0 commit comments

Comments
 (0)