Choose your operating system:
Windows
macOS
Linux
Module |
|
Header |
/Engine/Plugins/FX/Niagara/Source/Niagara/Classes/NiagaraGPUInstanceCountManager.h |
Include |
#include "NiagaraGPUInstanceCountManager.h" |
class FNiagaraGPUInstanceCountManager
A manager that handles the buffer containing the GPU particle count. Also provides related functionalities like the generation of the draw indirect buffer.
Name | Description | ||
---|---|---|---|
|
AllocatedCulledCounts |
The allocated instance counts in the culled count buffer |
|
|
AllocatedInstanceCounts |
The allocated instance counts in CountBuffer |
|
|
bAcquiredCulledCounts |
Whether or not the culled counts were acquired this frame |
|
|
CountBuffer |
A buffer holding the each emitter particle count after a simulation tick. |
|
|
CountReadback |
||
|
CountReadbackSize |
||
|
CulledCountBuffer |
||
|
DrawIndirectArgGenTasks |
The list of all draw indirected tasks that are to be run in UpdateDrawIndirectBuffers() |
|
|
DrawIndirectArgMap |
||
|
DrawIndirectLowWaterFrames |
||
|
DrawIndirectPool |
Buffers holding drawindirect data to render GPU emitter renderers. |
|
|
FeatureLevel |
||
|
FreeEntries |
||
|
InstanceCountClearTasks |
The list of all instance count clear tasks that are to be run in UpdateDrawIndirectBuffers() |
|
|
RequiredCulledCounts |
The number of culled instance counts needed from view culling |
|
|
UsedInstanceCounts |
The current used instance counts allocated from FNiagaraDataBuffer::AllocateGPU() |
Name | Description | |
---|---|---|
|
FNiagaraGPUInstanceCountManager ( |
Name | Description | |
---|---|---|
|
~FNiagaraGPUInstanceCountManager() |
Name | Description | ||
---|---|---|---|
|
FRWBuffer &#... |
AcquireCulledCountsBuffer ( |
|
|
AcquireCulledEntry() |
||
|
AcquireEntry() |
Acquire an entry from the free list, assumes this comes from being presized. |
|
|
AcquireOrAllocateEntry ( |
Acquire an entry, this will either come from the free list or reallocate the buffer. |
|
|
FIndirectArg... |
AddDrawIndirect |
Add a draw indirect task to generate the draw indirect args. |
|
CanAcquireCulledEntry() |
||
|
EnqueueGPUReadback ( |
||
|
FlushIndirectArgsPool() |
||
|
FreeEntry ( |
Free the entry and reset it to INDEX_NONE if valid. |
|
|
FreeEntryArray ( |
Free and array of entries, you are expected to reset or change to INDEX_NONE. |
|
|
const uint32... |
GetGPUReadback() |
|
|
const FRWBuf... |
GetInstanceCountBuffer() |
|
|
HasEntriesPendingFree() |
||
|
HasPendingGPUReadback() |
||
|
InitRHI() |
Init resource for the first time. |
|
|
ReleaseCounts() |
||
|
ReleaseGPUReadback() |
||
|
ReleaseRHI() |
Free resources. |
|
|
ResizeBuffers ( |
Resize instance count and draw indirect buffers to ensure it is big enough to hold all draw indirect args. |
|
|
UpdateDrawIndirectBuffers ( |
Generate the draw indirect buffers, and reset all release counts. |
Name |
Description |
|
---|---|---|
|
FIndirectArgSlot |
|
|
FIndirectArgsPoolEntry |
|
|
FNiagaraDrawIndirectArgGenSlotInfo |
Set to allow de-duplication of FNiagaraDrawIndirectArgGenTaskInfo. |
Name |
Description |
---|---|
FIndirectArgsPoolEntryPtr |
Name |
Description |
---|---|
kCountBufferDefaultState |