Vixen
02b45cc4
csharp
public sealed class Chunk

One block of entities that all have exactly the same components, stored column by column.

Read the guide page for this →

Remarks

Sixteen kilobytes by default, which is what fits comfortably in L1 on every target after the entity column is accounted for, and what Arch and DOTS both converged on. A system that reads two of an archetype's eight components touches only those two columns, so the bytes the cache pulls in are bytes the loop uses — which is the entire reason this layout exists.

The whole chunk is one byte[]: the entity column first, then one column per non-tag component, each aligned. Tags occupy no column, only a bit in the archetype's mask.

Fields and properties (5)

  • public Archetype Archetype

    The archetype every entity in here belongs to.

  • public int Count

    How many entities are in the chunk.

  • public int Capacity

    How many it has room for.

  • public bool IsFull

    Whether there is no room for another entity.

  • public ReadOnlySpan<Entity> Entities

    The entities in the chunk, in row order.

Methods (3)

  • public Span<T> Values<T>()

    One component's values for every entity in this chunk, for writing. Marks the column changed at the world's current version.

  • public ReadOnlySpan<T> ReadValues<T>()

    One component's values for every entity in this chunk, for reading.

  • public uint VersionOf(int column)

    The version at which a column was last handed out for writing.

Used by (70, showing 40)

  • ArenaThirdPersonShooter
  • GameClientMultiplayer
  • OrbitSystemEcsStressTest
  • SliceResolverNetworkSoak
  • ThirdPersonShooterGameThirdPersonShooter
  • ConstraintStageBenchmarksVixen.Benchmarks.Animation
  • WorldBenchmarksVixen.Benchmarks.Ecs
  • AllNetworkedSourceVixen.Net
  • AnimationSystemVixen.Animation
  • ArchetypeVixen.Ecs
  • AudioSystemVixen.Audio
  • CameraDirectorSystemVixen.Engine
  • CameraExtractionSystemVixen.Rendering
  • ClientPredictionVixen.Net
  • CommandBufferTestsVixen.Ecs.Tests
  • ConstraintGizmoSystemVixen.Animation
  • EntityInfoVixen.Ecs
  • EnumeratorVixen.Ecs
  • FoliageBlockersVixen.Rendering.Terrain
  • InterestGridVixen.Net
  • LightExtractionSystemVixen.Rendering
  • LocalPlayerSystemVixen.Net.Engine
  • MeshExtractionSystemVixen.Rendering
  • NavigationSystemVixen.Navigation
  • NetworkAnimatorApplySystemVixen.Net.Animation
  • NetworkAnimatorCaptureSystemVixen.Net.Animation
  • NetworkAudioApplySystemVixen.Net.Audio
  • NetworkAudioCaptureSystemVixen.Net.Audio
  • NetworkBonesApplySystemVixen.Net.Animation
  • NetworkBonesCaptureSystemVixen.Net.Animation
  • NetworkRigidBodyCaptureSystemVixen.Net.Physics
  • NetworkRigidBodyCorrectionSystemVixen.Net.Physics
  • NetworkSpawnSystemVixen.Net.Engine
  • NetworkSpawnerVixen.Net.Engine
  • NetworkTransformApplySystemVixen.Net.Engine
  • NetworkTransformCaptureSystemVixen.Net.Engine
  • PhysicsDebugDrawSystemVixen.Physics
  • PhysicsInterpolationSystemVixen.Physics
  • PhysicsSceneVixen.Physics
  • PlayerInputQuantizeSystemVixen.Net.Engine