XII Release 0.1.0
Loading...
Searching...
No Matches
xiiParticleGraphNodeFlags Struct Reference

Node capabilities and compiler hints. More...

#include <ParticleGraph.h>

Classes

struct  Bits

Public Types

enum  Enum : StorageType {
  None = 0U , HasSideEffects = XII_BIT(0) , ReadsNeighborGrid = XII_BIT(1) , WritesNeighborGrid = XII_BIT(2) ,
  EmitsEvents = XII_BIT(3) , ConsumesEvents = XII_BIT(4) , SupportsAsyncCompute = XII_BIT(5) , RequiresDeterminism = XII_BIT(6) ,
  SupportsMolecularDomain = XII_BIT(7) , ToolOnly = XII_BIT(8) , Default = SupportsAsyncCompute
}
using StorageType = xiiUInt16

Detailed Description

Node capabilities and compiler hints.

Member Enumeration Documentation

◆ Enum

enum xiiParticleGraphNodeFlags::Enum : StorageType
Enumerator
None 

No special capabilities or requirements.

HasSideEffects 

Node performs side effects such as writing to global buffers, emitting events, or interfacing with engine systems. Nodes without this flag can be safely reordered or culled if their outputs are unused.

ReadsNeighborGrid 

Node reads from the neighbor grid, which may require special handling for data dependencies and scheduling. Nodes with this flag may need to be scheduled after the neighbor grid is built and before any nodes that write to it.

WritesNeighborGrid 

Node writes to the neighbor grid, which may require special handling for data dependencies and scheduling. Nodes with this flag may need to be scheduled before any nodes that read from the neighbor grid.

EmitsEvents 

Node emits events that can be consumed by other nodes or the game engine. This may require special handling for event queues and scheduling to ensure correct ordering and visibility of events.

ConsumesEvents 

Node consumes events emitted by other nodes or the game engine. This may require special handling for event queues and scheduling to ensure correct ordering and visibility of events.

SupportsAsyncCompute 

Node can be scheduled on an async compute queue, which may allow for better performance by overlapping with graphics work. Nodes without this flag may need to be scheduled on the main compute queue to ensure correct ordering with rendering.

RequiresDeterminism 

Node requires deterministic execution order and results, which may restrict certain optimizations or scheduling strategies. Nodes with this flag may need to be scheduled in a fixed order and may not be eligible for certain parallelization techniques.

SupportsMolecularDomain 

Node can operate in a molecular dynamics domain, which may have special requirements for data layout, precision, or scheduling. Nodes without this flag may need to be scheduled in a separate phase or with different resource bindings when operating in a molecular domain.

ToolOnly 

Node is only used for editor tooling and should be stripped from runtime builds. This may require special handling in the editor to allow usage of these nodes, while ensuring they are not included in runtime graphs.


The documentation for this struct was generated from the following file:
  • /home/runner/work/XII/XII/Source/Engine/GraphicsCore/Particles/ParticleGraph.h