RavEngine
Loading...
Searching...
No Matches
physx::PxPhysXGpu Class Referenceabstract

Interface to create and run CUDA enabled PhysX features. More...

#include <PxPhysXGpu.h>

Public Member Functions

virtual void release ()=0
 Closes this instance of the interface.
 
virtual PxBuffer * createBuffer (PxU64 byteSize, PxBufferType::Enum bufferType, PxCudaContextManager *cudaContexManager, PxU64 *memStat)=0
 
virtual PxBuffer * createBuffer (PxU64 byteSyte, PxBufferType::Enum type, PxCudaContextManager *contextManager, PxU64 *memStat, PxsHeapMemoryAllocatorManager *heapMemoryManager, void *stream)=0
 
virtual PxParticleBuffer * createParticleBuffer (PxU32 maxNumParticles, PxU32 maxVolumes, PxCudaContextManager *cudaContextManager, PxU64 *memStat, void(*onParticleBufferRelease)(PxParticleBuffer *buffer))=0
 
virtual PxParticleClothBuffer * createParticleClothBuffer (PxU32 maxNumParticles, PxU32 maxVolumes, PxU32 maxNumCloths, PxU32 maxNumTriangles, PxU32 maxNumSprings, PxCudaContextManager *cudaContextManager, PxU64 *memStat, void(*onParticleBufferRelease)(PxParticleBuffer *buffer))=0
 
virtual PxParticleRigidBuffer * createParticleRigidBuffer (PxU32 maxNumParticles, PxU32 maxVolumes, PxU32 maxNumRigids, PxCudaContextManager *cudaContextManager, PxU64 *memStat, void(*onParticleBufferRelease)(PxParticleBuffer *buffer))=0
 
virtual PxParticleAndDiffuseBuffer * createParticleAndDiffuseBuffer (PxU32 maxParticles, PxU32 maxVolumes, PxU32 maxDiffuseParticles, PxCudaContextManager *cudaContextManager, PxU64 *memStat, void(*onParticleBufferRelease)(PxParticleBuffer *buffer))=0
 
virtual void resizeBuffer (PxBuffer *buffer, PxU64 byteSize)=0
 
virtual void addCopyCommand (PxBuffer &dst, PxBuffer &src, bool flush)=0
 
virtual void addCopyCommand (PxBuffer &dst, PxBuffer &src, PxU32 srcOffset, PxU32 dstOffset, PxU32 size, bool flush)=0
 
virtual PxsMemoryManager * createGpuMemoryManager (PxCudaContextManager *cudaContextManager)=0
 
virtual PxsHeapMemoryAllocatorManager * createGpuHeapMemoryAllocatorManager (const PxU32 heapCapacity, PxsMemoryManager *memoryManager, const PxU32 gpuComputeVersion)=0
 
virtual PxsKernelWranglerManager * createGpuKernelWranglerManager (PxCudaContextManager *cudaContextManager, PxErrorCallback &errorCallback, const PxU32 gpuComputeVersion)=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 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 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
 

Detailed Description

Interface to create and run CUDA enabled PhysX features.

The methods of this interface are expected not to be called concurrently. Also they are expected to not be called concurrently with any tasks spawned before the end pipeline ... TODO make clear.

Member Function Documentation

◆ addCopyCommand()

virtual void physx::PxPhysXGpu::addCopyCommand ( PxBuffer &  dst,
PxBuffer &  src,
bool  flush 
)
pure virtual

Queue user buffer copy command.

◆ createBuffer()

virtual PxBuffer * physx::PxPhysXGpu::createBuffer ( PxU64  byteSize,
PxBufferType::Enum  bufferType,
PxCudaContextManager *  cudaContexManager,
PxU64 *  memStat 
)
pure virtual

Create GPU user buffers.

◆ createGpuAABBManager()

virtual Bp::AABBManagerBase * physx::PxPhysXGpu::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 
)
pure virtual

Create GPU aabb manager.

◆ createGpuBroadPhase()

virtual Bp::BroadPhase * physx::PxPhysXGpu::createGpuBroadPhase ( PxsKernelWranglerManager *  gpuKernelWrangler,
PxCudaContextManager *  cudaContextManager,
const PxU32  gpuComputeVersion,
const PxgDynamicsMemoryConfig &  config,
PxsHeapMemoryAllocatorManager *  heapMemoryManager,
PxU64  contextID 
)
pure virtual

Create GPU broadphase.

◆ createGpuDynamicsContext()

virtual Dy::Context * physx::PxPhysXGpu::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 
)
pure virtual

Create GPU dynamics context.

◆ createGpuKernelWranglerManager()

virtual PxsKernelWranglerManager * physx::PxPhysXGpu::createGpuKernelWranglerManager ( PxCudaContextManager *  cudaContextManager,
PxErrorCallback &  errorCallback,
const PxU32  gpuComputeVersion 
)
pure virtual

Create GPU kernel wrangler manager.

◆ createGpuMemoryManager()

virtual PxsMemoryManager * physx::PxPhysXGpu::createGpuMemoryManager ( PxCudaContextManager *  cudaContextManager)
pure virtual

Create GPU memory manager.

◆ createGpuNphaseImplementationContext()

virtual PxvNphaseImplementationContext * physx::PxPhysXGpu::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 
)
pure virtual

Create GPU narrow phase context.

◆ createGpuSimulationController()

virtual PxsSimulationController * physx::PxPhysXGpu::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 
)
pure virtual

Create GPU simulation controller.


The documentation for this class was generated from the following file: