Navigation
API > API/Plugins > API/Plugins/Niagara
A manager that handles the buffer containing the GPU particle count. Also provides related functionalities like the generation of the draw indirect buffer.
| Name | FNiagaraGPUInstanceCountManager |
| Type | class |
| Header File | /Engine/Plugins/FX/Niagara/Source/Niagara/Classes/NiagaraGPUInstanceCountManager.h |
| Include Path | #include "NiagaraGPUInstanceCountManager.h" |
Syntax
class FNiagaraGPUInstanceCountManager
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FNiagaraGPUInstanceCountManager
(
ERHIFeatureLevel::Type FeatureLevel |
NiagaraGPUInstanceCountManager.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
~FNiagaraGPUInstanceCountManager() |
NiagaraGPUInstanceCountManager.h |
Structs
| Name | Remarks |
|---|---|
| FIndirectArgSlot | |
| FIndirectArgsPoolEntry | |
| FInstanceCountInitTask | |
| FNiagaraDrawIndirectArgGenSlotInfo | Set to allow de-duplication of FNiagaraDrawIndirectArgGenTaskInfo. |
Typedefs
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| FIndirectArgsPoolEntryPtr | TUniquePtr< FIndirectArgsPoolEntry > | NiagaraGPUInstanceCountManager.h |
Constants
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| kCountBufferDefaultState | const ERHIAccess | NiagaraGPUInstanceCountManager.h | |
| kIndirectArgsDefaultState | const ERHIAccess | NiagaraGPUInstanceCountManager.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FRWBuffer * AcquireCulledCountsBuffer
(
FRHICommandListImmediate& RHICmdList |
NiagaraGPUInstanceCountManager.h | ||
uint32 AcquireCulledEntry() |
NiagaraGPUInstanceCountManager.h | ||
uint32 AcquireEntry() |
Acquire an entry from the free list, assumes this comes from being presized. | NiagaraGPUInstanceCountManager.h | |
uint32 AcquireOrAllocateEntry
(
FRHICommandListImmediate& RHICmdList |
Acquire an entry, this will either come from the free list or reallocate the buffer. | NiagaraGPUInstanceCountManager.h | |
FIndirectArgSlot AddDrawIndirect
(
FRHICommandListBase& RHICmdList, |
Add a draw indirect task to generate the draw indirect args. | NiagaraGPUInstanceCountManager.h | |
void AddInstanceCountInitTask
(
uint32 Offset, |
NiagaraGPUInstanceCountManager.h | ||
bool CanAcquireCulledEntry() |
NiagaraGPUInstanceCountManager.h | ||
void CopyToMultiViewCountBuffer
(
FRHICommandListImmediate& RHICmdList |
NiagaraGPUInstanceCountManager.h | ||
void EnqueueGPUReadback
(
FRHICommandListImmediate& RHICmdList |
NiagaraGPUInstanceCountManager.h | ||
void FlushIndirectArgsPool
(
FRHICommandListBase& RHICmdList |
NiagaraGPUInstanceCountManager.h | ||
void FreeEntry
(
uint32& BufferOffset |
Free the entry and reset it to INDEX_NONE if valid. | NiagaraGPUInstanceCountManager.h | |
void FreeEntryArray
(
TConstArrayView< uint32 > EntryArray |
Free and array of entries, you are expected to reset or change to INDEX_NONE. | NiagaraGPUInstanceCountManager.h | |
const uint32 * GetGPUReadback() |
NiagaraGPUInstanceCountManager.h | ||
const FRWBuffer & GetInstanceCountBuffer() |
NiagaraGPUInstanceCountManager.h | ||
bool HasEntriesPendingFree() |
NiagaraGPUInstanceCountManager.h | ||
bool HasPendingGPUReadback() |
NiagaraGPUInstanceCountManager.h | ||
void InitRHI
(
FRHICommandListBase& RHICmdList |
Init resource for the first time. | NiagaraGPUInstanceCountManager.h | |
void ProcessInitInstanceCountTasks
(
FNiagaraGpuComputeDispatchInterface* ComputeDispatchInterface, |
NiagaraGPUInstanceCountManager.h | ||
void ReleaseGPUReadback() |
NiagaraGPUInstanceCountManager.h | ||
void ReleaseRHI() |
Free resources. | NiagaraGPUInstanceCountManager.h | |
void ResizeBuffers
(
FRHICommandListImmediate& RHICmdList, |
Resize instance count and draw indirect buffers to ensure it is big enough to hold all draw indirect args. | NiagaraGPUInstanceCountManager.h | |
void UpdateDrawIndirectBuffers
(
FNiagaraGpuComputeDispatchInterface* ComputeDispatchInterface, |
Generate the draw indirect buffers, and reset all release counts. | NiagaraGPUInstanceCountManager.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void ReleaseCounts() |
NiagaraGPUInstanceCountManager.h |