physx::PxGpuTask Class Referenceabstract

PxTask implementation for launching CUDA work. More...

#include <PxGpuTask.h>

Inheritance diagram for physx::PxGpuTask:
Collaboration diagram for physx::PxGpuTask:

Public Member Functions

 PxGpuTask ()
 
virtual bool launchInstance (CUstream stream, int kernelIndex)=0
 iterative "run" function for a PxGpuTask More...
 
virtual PxGpuTaskHint::Enum getTaskHint () const =0
 Returns a hint indicating the function of this task. More...
 
void setCompletionTask (PxBaseTask &task)
 Specify a task that will have its reference count decremented when this task is released. More...
 
void release ()
 Release method implementation. More...
 
- Public Member Functions inherited from physx::PxTask
 PxTask ()
 
virtual ~PxTask ()
 
PX_INLINE void finishBefore (PxTaskID taskID)
 Inform the PxTaskManager this task must finish before the given. More...
 
PX_INLINE void startAfter (PxTaskID taskID)
 Inform the PxTaskManager this task cannot start until the given. More...
 
PX_INLINE void addReference ()
 Manually increment this task's reference count. The task will not be allowed to run until removeReference() is called. More...
 
PX_INLINE void removeReference ()
 Manually decrement this task's reference count. If the reference count reaches zero, the task will be dispatched. More...
 
PX_INLINE int32_t getReference () const
 Return the ref-count for this task. More...
 
PX_INLINE PxTaskID getTaskID () const
 Return the unique ID for this task. More...
 
virtual void submitted ()
 Called by PxTaskManager at submission time for initialization. More...
 
PX_INLINE void requestSyncPoint ()
 Specify that the GpuTask sync flag be set. More...
 
- Public Member Functions inherited from physx::PxBaseTask
 PxBaseTask ()
 
virtual ~PxBaseTask ()
 
virtual void run ()=0
 The user-implemented run method where the task's work should be performed. More...
 
virtual const char * getName () const =0
 Return a user-provided task name for profiling purposes. More...
 
PX_FORCE_INLINE PxTaskManagergetTaskManager () const
 Return PxTaskManager to which this task was submitted. More...
 
PX_FORCE_INLINE void setContextId (PxU64 id)
 
PX_FORCE_INLINE PxU64 getContextId () const
 

Protected Attributes

PxBaseTaskmComp
 A pointer to the completion task. More...
 
- Protected Attributes inherited from physx::PxTask
PxTaskID mTaskID
 ID assigned at submission. More...
 
uint32_t mStreamIndex
 GpuTask CUDA stream index. More...
 
bool mPreSyncRequired
 GpuTask sync flag. More...
 
- Protected Attributes inherited from physx::PxBaseTask
PxU64 mContextID
 Context ID for profiler interface. More...
 
PxTaskManagermTm
 Owning PxTaskManager instance. More...
 

Detailed Description

PxTask implementation for launching CUDA work.

Constructor & Destructor Documentation

◆ PxGpuTask()

physx::PxGpuTask::PxGpuTask ( )
inline

Member Function Documentation

◆ getTaskHint()

virtual PxGpuTaskHint::Enum physx::PxGpuTask::getTaskHint ( ) const
pure virtual

Returns a hint indicating the function of this task.

◆ launchInstance()

virtual bool physx::PxGpuTask::launchInstance ( CUstream  stream,
int  kernelIndex 
)
pure virtual

iterative "run" function for a PxGpuTask

The GpuDispatcher acquires the CUDA context for the duration of this function call, and it is highly recommended that the PxGpuTask use the provided CUstream for all kernels.

kernelIndex will be 0 for the initial call and incremented before each subsequent call. Once launchInstance() returns false, its PxGpuTask is considered completed and is released.

◆ release()

void physx::PxGpuTask::release ( void  )
inlinevirtual

Release method implementation.

Reimplemented from physx::PxTask.

References mComp, physx::PxTask::release(), and physx::PxBaseTask::removeReference().

◆ setCompletionTask()

void physx::PxGpuTask::setCompletionTask ( PxBaseTask task)
inline

Specify a task that will have its reference count decremented when this task is released.

References mComp.

Member Data Documentation

◆ mComp

PxBaseTask* physx::PxGpuTask::mComp
protected

A pointer to the completion task.

Referenced by release(), and setCompletionTask().


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