32#include "task/PxTask.h"
34#include "foundation/PxPinnedArray.h"
35#include "common/PxPhysXCommonConfig.h"
36#include "PxSceneDesc.h"
38#include "cudamanager/PxCudaContextManager.h"
44class PxCudaContextManagerDesc;
45class PxvNphaseImplementationContext;
47class PxsKernelWranglerManager;
48class PxvNphaseImplementationFallback;
49struct PxgDynamicsMemoryConfig;
50class PxsMemoryManager;
51class PxsHeapMemoryAllocatorManager;
52class PxsSimulationController;
53class PxsSimulationControllerCallback;
55class PxParticleBuffer;
56class PxParticleAndDiffuseBuffer;
57class PxParticleClothBuffer;
58class PxParticleRigidBuffer;
65 class AABBManagerBase;
77 class SimpleIslandManager;
106 virtual PxBuffer*
createBuffer(PxU64 byteSize, PxBufferType::Enum bufferType, PxCudaContextManager* cudaContexManager, PxU64* memStat) = 0;
109 virtual PxParticleBuffer* createParticleBuffer(PxU32 maxNumParticles, PxU32 maxVolumes, PxCudaContextManager* cudaContextManager, PxU64* memStat,
void (*onParticleBufferRelease)(
PxParticleBuffer* buffer)) = 0;
110 virtual PxParticleClothBuffer* createParticleClothBuffer(PxU32 maxNumParticles, PxU32 maxVolumes, PxU32 maxNumCloths, PxU32 maxNumTriangles, PxU32 maxNumSprings, PxCudaContextManager* cudaContextManager, PxU64* memStat,
void (*onParticleBufferRelease)(
PxParticleBuffer* buffer)) = 0;
111 virtual PxParticleRigidBuffer* createParticleRigidBuffer(PxU32 maxNumParticles, PxU32 maxVolumes, PxU32 maxNumRigids, PxCudaContextManager* cudaContextManager, PxU64* memStat,
void (*onParticleBufferRelease)(
PxParticleBuffer* buffer)) = 0;
112 virtual PxParticleAndDiffuseBuffer* createParticleAndDiffuseBuffer(PxU32 maxParticles, PxU32 maxVolumes, PxU32 maxDiffuseParticles, PxCudaContextManager* cudaContextManager, PxU64* memStat,
void (*onParticleBufferRelease)(
PxParticleBuffer* buffer)) = 0;
114 virtual void resizeBuffer(
PxBuffer* buffer, PxU64 byteSize) = 0;
128 const PxU32 heapCapacity,
130 const PxU32 gpuComputeVersion) = 0;
136 PxCudaContextManager* cudaContextManager,
138 const PxU32 gpuComputeVersion) = 0;
145 PxCudaContextManager* cudaContextManager,
146 const PxU32 gpuComputeVersion,
156 PxCudaContextManager* cudaContextManager,
157 const PxU32 gpuComputeVersion,
163 PxU32 maxNbAggregates, PxU32 maxNbShapes,
175 const PxgDynamicsMemoryConfig& gpuDynamicsConfig,
void* contactStreamBase,
void* patchStreamBase,
void* forceAndIndiceStreamBase,
184 PxCudaContextManager* cudaContextManager,
188 const PxU32 maxSoftBodyContacts,
const PxU32 maxFemClothContacts,
const PxU32 maxParticleContacts,
const PxU32 maxHairContacts) = 0;
194 PxCudaContextManager* cudaContextManager,
196 const bool enableStabilization,
const bool useEnhancedDeterminism,
const PxReal maxBiasCoefficient,
198 const bool frictionEveryIteration,
PxSolverType::Enum solverType,
const PxReal lengthScale) = 0;
225PX_C_EXPORT PX_PHYSX_GPU_API
void PX_CALL_CONV PxGpuCudaRegisterFunction(
int moduleIndex,
const char* functionName);
226PX_C_EXPORT PX_PHYSX_GPU_API
void**
PX_CALL_CONV PxGpuCudaRegisterFatBinary(
void* fatBin);
227#if PX_SUPPORT_GPU_PHYSX
228PX_C_EXPORT PX_PHYSX_GPU_API physx::PxKernelIndex*
PX_CALL_CONV PxGpuGetCudaFunctionTable();
229PX_C_EXPORT PX_PHYSX_GPU_API physx::PxU32
PX_CALL_CONV PxGpuGetCudaFunctionTableSize();
230PX_C_EXPORT PX_PHYSX_GPU_API
void**
PX_CALL_CONV PxGpuGetCudaModuleTable();
231PX_C_EXPORT PX_PHYSX_GPU_API physx::PxU32
PX_CALL_CONV PxGpuGetCudaModuleTableSize();
A structure responsible for: storing an aabb representation for each active shape in the related scen...
Definition BpAABBManagerBase.h:165
Definition BpAABBManagerBase.h:101
Definition BpBroadPhase.h:99
Definition CmFlushPool.h:49
Definition DyContext.h:76
Definition PxsIslandSim.h:412
Definition PxsSimpleIslandManager.h:87
Buffer for delayed bulk read and write operations supporting host and GPU device memory spaces.
Definition PxBuffer.h:66
User defined interface class. Used by the library to emit debug information.
Definition PxErrorCallback.h:51
Foundation SDK singleton class.
Definition PxFoundation.h:57
A particle buffer used to simulate diffuse particles.
Definition PxParticleBuffer.h:283
The shared base class for all particle buffers, can be instantiated directly to simulate granular and...
Definition PxParticleBuffer.h:81
A particle buffer used to simulate particle cloth.
Definition PxParticleBuffer.h:429
A particle buffer used to simulate rigid bodies using shape matching with particles.
Definition PxParticleBuffer.h:491
Interface to create and run CUDA enabled PhysX features.
Definition PxPhysXGpu.h:92
virtual void addCopyCommand(PxBuffer &dst, PxBuffer &src, bool flush)=0
virtual PxsKernelWranglerManager * createGpuKernelWranglerManager(PxCudaContextManager *cudaContextManager, PxErrorCallback &errorCallback, const PxU32 gpuComputeVersion)=0
virtual void release()=0
Closes this instance of the interface.
virtual PxBuffer * createBuffer(PxU64 byteSize, PxBufferType::Enum bufferType, PxCudaContextManager *cudaContexManager, PxU64 *memStat)=0
virtual Bp::BroadPhase * createGpuBroadPhase(PxsKernelWranglerManager *gpuKernelWrangler, PxCudaContextManager *cudaContextManager, const PxU32 gpuComputeVersion, const PxgDynamicsMemoryConfig &config, PxsHeapMemoryAllocatorManager *heapMemoryManager, PxU64 contextID)=0
virtual Bp::AABBManagerBase * createGpuAABBManager(PxsKernelWranglerManager *gpuKernelWrangler, PxCudaContextManager *cudaContextManager, const PxU32 gpuComputeVersion, const PxgDynamicsMemoryConfig &config, PxsHeapMemoryAllocatorManager *heapMemoryManager, Bp::BroadPhase &bp, Bp::BoundsArray &boundsArray, PxFloatArrayPinned &contactDistance, PxU32 maxNbAggregates, PxU32 maxNbShapes, PxVirtualAllocator &allocator, PxU64 contextID, PxPairFilteringMode::Enum kineKineFilteringMode, PxPairFilteringMode::Enum staticKineFilteringMode)=0
virtual Dy::Context * createGpuDynamicsContext(Cm::FlushPool &taskPool, PxsKernelWranglerManager *gpuKernelWragler, PxCudaContextManager *cudaContextManager, const PxgDynamicsMemoryConfig &config, IG::SimpleIslandManager *islandManager, const PxU32 maxNumPartitions, const PxU32 maxNumStaticPartitions, const bool enableStabilization, const bool useEnhancedDeterminism, const PxReal maxBiasCoefficient, const PxU32 gpuComputeVersion, PxvSimStats &simStats, PxsHeapMemoryAllocatorManager *heapMemoryManager, const bool frictionEveryIteration, PxSolverType::Enum solverType, const PxReal lengthScale)=0
virtual PxvNphaseImplementationContext * createGpuNphaseImplementationContext(PxsContext &context, PxsKernelWranglerManager *gpuKernelWrangler, PxvNphaseImplementationFallback *fallbackForUnsupportedCMs, const PxgDynamicsMemoryConfig &gpuDynamicsConfig, void *contactStreamBase, void *patchStreamBase, void *forceAndIndiceStreamBase, PxBoundsArrayPinned &bounds, IG::IslandSim *islandSim, physx::Dy::Context *dynamicsContext, const PxU32 gpuComputeVersion, PxsHeapMemoryAllocatorManager *heapMemoryManager, bool useGpuBP)=0
virtual PxsSimulationController * createGpuSimulationController(PxsKernelWranglerManager *gpuWranglerManagers, PxCudaContextManager *cudaContextManager, Dy::Context *dynamicContext, PxvNphaseImplementationContext *npContext, Bp::BroadPhase *bp, const bool useGpuBroadphase, IG::SimpleIslandManager *simpleIslandSim, PxsSimulationControllerCallback *callback, const PxU32 gpuComputeVersion, PxsHeapMemoryAllocatorManager *heapMemoryManager, const PxU32 maxSoftBodyContacts, const PxU32 maxFemClothContacts, const PxU32 maxParticleContacts, const PxU32 maxHairContacts)=0
virtual PxsMemoryManager * createGpuMemoryManager(PxCudaContextManager *cudaContextManager)=0
The pure virtual callback interface for general purpose instrumentation and profiling of GameWorks mo...
Definition PxProfiler.h:42
Definition PxAllocator.h:158
Definition PxsContext.h:92
Definition PxsHeapMemoryAllocator.h:83
Definition PxsKernelWrangler.h:41
Definition PxsMemoryManager.h:40
Definition PxsSimulationController.h:114
Definition PxsSimulationController.h:124
Definition PxvNphaseImplementationContext.h:120
Definition PxvNphaseImplementationContext.h:212
#define PX_CALL_CONV
Definition PxPreprocessor.h:299
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
Enum
Definition PxFiltering.h:717
Enum
Definition PxSceneDesc.h:89
Sizes of pre-allocated buffers use for GPU dynamics.
Definition PxSceneDesc.h:377
Definition PxvSimStats.h:52