|
Bicameral Engine
GPU-resident engine for a magic-research open-world game
|
#include <multires_nest.h>
Public Attributes | |
| MultiresCapacity | capacity |
| std::vector< multires::MrBlock > | blocks |
| std::vector< reaction::RxCell > | cells |
| std::vector< multires::MrFraction > | fractions |
| std::vector< uint32_t > | freeBlocks |
| std::vector< uint32_t > | freeFractions |
| std::vector< uint64_t > | ledger |
| std::array< uint32_t, multires::MR_COUNTER_COUNT > | counters {} |
| std::vector< uint8_t > | seeds |
| std::vector< uint32_t > | index |
| std::vector< multires::MrRequest > | requests |
| std::vector< multires::MrRequestState > | states |
| std::vector< uint32_t > | claims |
| ImplicitCost | implicitCost |
| uint32_t | implicitCells = 0 |
| uint32_t | implicitDeferredBlocks = 0 |
| std::vector< std::array< uint32_t, 2 > > | implicitLevels |
| bool | captureImplicitGrid = false |
| ImplicitGrid | implicitGrid |
| bool | captureImplicitNest = false |
| std::shared_ptr< const MultiresNest > | implicitNest |
| std::vector< uint8_t > | implicitFrozen |
Definition at line 43 of file multires_nest.h.
| std::vector<multires::MrBlock> bicameral::sim::MultiresNest::blocks |
Definition at line 47 of file multires_nest.h.
Referenced by bicameral::sim::anonymous_namespace{multires_implicit_conduction.cpp}::AddCell(), bicameral::sim::anonymous_namespace{multires_implicit_conduction.cpp}::AddCellFaces(), bicameral::sim::anonymous_namespace{multires_conduction.cpp}::AddCellFlows(), bicameral::sim::nest_detail::AddImplicitConduction(), bicameral::sim::anonymous_namespace{multires_conduction.cpp}::AllocateConductionFractions(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::ApplyCoarsen(), bicameral::sim::anonymous_namespace{multires_conduction.cpp}::ApplyEndingDeltas(), bicameral::sim::nest_detail::ApplyEnergyDelta(), bicameral::sim::ApplyLabCommands(), bicameral::sim::anonymous_namespace{multires_implicit_conduction.cpp}::CanJoin(), bicameral::sim::nest_detail::CellAt(), bicameral::sim::anonymous_namespace{multires_activity.cpp}::CheckQuietLeaves(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::CoarsenFits(), bicameral::sim::anonymous_namespace{multires_conduction.cpp}::CollectCellFaces(), bicameral::sim::CollectFoldStats(), bicameral::sim::nest_detail::ComputeConduction(), bicameral::sim::ComputeConservedTotals(), bicameral::sim::anonymous_namespace{multires_implicit_conduction.cpp}::CountUnknowns(), bicameral::sim::anonymous_namespace{multires_activity.cpp}::ExactFoldValue(), bicameral::sim::nest_detail::ExpandForStep(), bicameral::sim::nest_detail::ExpandWantedPages(), bicameral::sim::FindLabMismatch(), bicameral::sim::anonymous_namespace{multires_activity.cpp}::FoldPage(), bicameral::sim::FoldQuietPages(), bicameral::sim::FoldQuietPages(), bicameral::sim::HashRealLeaves(), bicameral::sim::HashWholeNest(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::IndexInsert(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::IndexRemove(), bicameral::sim::nest_detail::InImplicitConduction(), bicameral::sim::anonymous_namespace{multires_nest.cpp}::IsObserverSlot(), bicameral::sim::anonymous_namespace{multires_activity.cpp}::LeafCoarsenable(), bicameral::sim::LoadNestCell(), bicameral::sim::LookupBlock(), bicameral::sim::MakeLabBoxNest(), bicameral::sim::MakeMultiresNest(), bicameral::sim::anonymous_namespace{multires_implicit_conduction.cpp}::MakeSystem(), bicameral::sim::anonymous_namespace{multires_conduction.cpp}::MarkBlockWants(), bicameral::sim::nest_detail::MarkConductionWants(), bicameral::sim::anonymous_namespace{multires_conduction.cpp}::MarkCrossSends(), bicameral::sim::nest_detail::MarkImplicitBlocks(), bicameral::sim::anonymous_namespace{multires_conduction.cpp}::MarkSubstepBlocks(), bicameral::sim::nest_detail::PageCellAddress(), bicameral::sim::nest_detail::PageCellAt(), bicameral::sim::PlaceMirrorBlock(), bicameral::sim::PlaceRootBlock(), bicameral::sim::nest_detail::PokeBlock(), bicameral::sim::anonymous_namespace{multires_nest.cpp}::PullBackLevel(), bicameral::sim::GpuMultires::Read(), bicameral::sim::RebuildIndex(), bicameral::sim::GpuMultires::RecordUpload(), bicameral::sim::nest_detail::RecordWaitResults(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::RefineRequestLevel(), bicameral::sim::anonymous_namespace{multires_nest.cpp}::RefineShadowLevel(), bicameral::sim::RemoveShadowChain(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::ResolveCoarsen(), bicameral::sim::nest_detail::ResolvePokes(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::ResolveRefine(), bicameral::sim::anonymous_namespace{multires_activity.cpp}::ReturnFractionsToLedger(), bicameral::sim::anonymous_namespace{multires_activity.cpp}::Schedule(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::Settle(), bicameral::sim::StepActive(), bicameral::sim::nest_detail::StepBlocks(), bicameral::sim::nest_detail::StepConduction(), bicameral::sim::StepNest(), bicameral::sim::anonymous_namespace{multires_nest.cpp}::StepPagedBlock(), bicameral::sim::anonymous_namespace{multires_activity.cpp}::SubmitQuietRequests(), bicameral::sim::WaitSeedSlots(), bicameral::sim::nest_detail::WakeAround(), bicameral::sim::anonymous_namespace{multires_conduction.cpp}::WakeChangedBlocks(), and bicameral::sim::anonymous_namespace{multires_activity.cpp}::WakeFace().
| MultiresCapacity bicameral::sim::MultiresNest::capacity |
Definition at line 44 of file multires_nest.h.
Referenced by bicameral::sim::anonymous_namespace{multires_implicit_conduction.cpp}::AddCellFaces(), bicameral::sim::anonymous_namespace{multires_activity.cpp}::AddLedgerBits(), bicameral::sim::anonymous_namespace{multires_nest.cpp}::AddLedgerTotals(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::AddToLedger(), bicameral::sim::anonymous_namespace{multires_conduction.cpp}::AllocateConductionFractions(), bicameral::sim::anonymous_namespace{multires_implicit_conduction.cpp}::CanJoin(), bicameral::sim::anonymous_namespace{multires_activity.cpp}::CheckQuietLeaves(), bicameral::sim::anonymous_namespace{multires_conduction.cpp}::CollectCellFaces(), bicameral::sim::nest_detail::ExpandWantedPages(), bicameral::sim::FoldQuietPages(), bicameral::sim::FoldQuietPages(), bicameral::sim::nest_detail::FreePageAt(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::IndexInsert(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::IndexMask(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::IndexRemove(), bicameral::sim::nest_detail::InImplicitConduction(), bicameral::sim::anonymous_namespace{multires_nest.cpp}::IsObserverSlot(), bicameral::sim::LookupBlock(), bicameral::sim::MakeMultiresNest(), bicameral::sim::anonymous_namespace{multires_implicit_conduction.cpp}::MakeSystem(), bicameral::sim::nest_detail::MarkImplicitBlocks(), bicameral::sim::PlaceMirrorBlock(), bicameral::sim::PlaceRootBlock(), bicameral::sim::RebuildIndex(), bicameral::sim::anonymous_namespace{multires_nest.cpp}::RefineShadowLevel(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::ReleaseAll(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::Resolve(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::ResolveRefine(), bicameral::sim::StepActive(), bicameral::sim::anonymous_namespace{multires_activity.cpp}::SubmitQuietRequests(), bicameral::sim::UsedWorldPages(), bicameral::sim::WaitSeedSlots(), bicameral::sim::nest_detail::WakeAround(), and bicameral::sim::anonymous_namespace{multires_conduction.cpp}::WakeChangedBlocks().
| bool bicameral::sim::MultiresNest::captureImplicitGrid = false |
Definition at line 76 of file multires_nest.h.
Referenced by bicameral::sim::nest_detail::AddImplicitConduction().
| bool bicameral::sim::MultiresNest::captureImplicitNest = false |
Definition at line 80 of file multires_nest.h.
Referenced by bicameral::sim::nest_detail::AddImplicitConduction().
| std::vector<reaction::RxCell> bicameral::sim::MultiresNest::cells |
Definition at line 48 of file multires_nest.h.
Referenced by bicameral::sim::HashWholeNest(), bicameral::sim::LoadNestCell(), bicameral::sim::MakeMultiresNest(), bicameral::sim::nest_detail::PageCellAt(), bicameral::sim::GpuMultires::Read(), bicameral::sim::GpuMultires::RecordUpload(), bicameral::sim::nest_detail::StepConduction(), bicameral::sim::nest_detail::UniformAt(), and bicameral::sim::nest_detail::UniformAt().
| std::vector<uint32_t> bicameral::sim::MultiresNest::claims |
Definition at line 66 of file multires_nest.h.
Referenced by bicameral::sim::MakeMultiresNest(), bicameral::sim::GpuMultires::MakeTreeWordsImage(), bicameral::sim::GpuMultires::RecordUpload(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::ReleaseAll(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::ResolveCoarsen(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::ResolveRefine(), and bicameral::sim::anonymous_namespace{multires_tree.cpp}::Settle().
| std::array<uint32_t, multires::MR_COUNTER_COUNT> bicameral::sim::MultiresNest::counters {} |
Definition at line 54 of file multires_nest.h.
Referenced by bicameral::sim::anonymous_namespace{multires_activity.cpp}::AddLedgerBits(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::AddToLedger(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::Allocate(), bicameral::sim::anonymous_namespace{multires_conduction.cpp}::AllocateConductionFractions(), bicameral::sim::nest_detail::ExpandWantedPages(), bicameral::sim::FindLabMismatch(), bicameral::sim::anonymous_namespace{multires_activity.cpp}::FoldPage(), bicameral::sim::HashWholeNest(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::IndexInsert(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::IndexRemove(), bicameral::sim::MakeMultiresNest(), bicameral::sim::PlaceRootBlock(), bicameral::sim::nest_detail::PopPage(), bicameral::sim::ProcessRequests(), bicameral::sim::anonymous_namespace{multires_nest.cpp}::PullBackLevel(), bicameral::sim::GpuMultires::Read(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::RecordCoarsened(), bicameral::sim::GpuMultires::RecordUpload(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::ReleaseAll(), bicameral::sim::anonymous_namespace{multires_activity.cpp}::ReturnFractionsToLedger(), bicameral::sim::anonymous_namespace{multires_activity.cpp}::Schedule(), bicameral::sim::anonymous_namespace{multires_nest.cpp}::StepPagedBlock(), bicameral::sim::anonymous_namespace{multires_activity.cpp}::SubmitQuietRequests(), bicameral::sim::SubmitRequests(), bicameral::sim::UsedWorldPages(), and bicameral::sim::anonymous_namespace{multires_activity.cpp}::WakeFace().
| std::vector<multires::MrFraction> bicameral::sim::MultiresNest::fractions |
Definition at line 49 of file multires_nest.h.
Referenced by bicameral::sim::FindLabMismatch(), bicameral::sim::nest_detail::FractionAt(), bicameral::sim::HashWholeNest(), bicameral::sim::MakeMultiresNest(), bicameral::sim::GpuMultires::Read(), bicameral::sim::GpuMultires::RecordUpload(), and bicameral::sim::nest_detail::SetFraction().
| std::vector<uint32_t> bicameral::sim::MultiresNest::freeBlocks |
Definition at line 51 of file multires_nest.h.
Referenced by bicameral::sim::FindLabMismatch(), bicameral::sim::nest_detail::FreePageAt(), bicameral::sim::HashWholeNest(), bicameral::sim::MakeMultiresNest(), bicameral::sim::GpuMultires::MakeTreeWordsImage(), bicameral::sim::PlaceRootBlock(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::PoppedBlock(), bicameral::sim::GpuMultires::Read(), bicameral::sim::GpuMultires::RecordUpload(), and bicameral::sim::anonymous_namespace{multires_tree.cpp}::ReleaseAll().
| std::vector<uint32_t> bicameral::sim::MultiresNest::freeFractions |
Definition at line 52 of file multires_nest.h.
Referenced by bicameral::sim::anonymous_namespace{multires_conduction.cpp}::AllocateConductionFractions(), bicameral::sim::FindLabMismatch(), bicameral::sim::HashWholeNest(), bicameral::sim::MakeMultiresNest(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::PoppedFraction(), bicameral::sim::GpuMultires::Read(), bicameral::sim::GpuMultires::RecordUpload(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::ReleaseAll(), and bicameral::sim::anonymous_namespace{multires_activity.cpp}::ReturnFractionsToLedger().
| uint32_t bicameral::sim::MultiresNest::implicitCells = 0 |
Definition at line 70 of file multires_nest.h.
Referenced by bicameral::sim::nest_detail::AddImplicitConduction().
| ImplicitCost bicameral::sim::MultiresNest::implicitCost |
Definition at line 69 of file multires_nest.h.
Referenced by bicameral::sim::nest_detail::AddImplicitConduction().
| uint32_t bicameral::sim::MultiresNest::implicitDeferredBlocks = 0 |
Definition at line 71 of file multires_nest.h.
Referenced by bicameral::sim::nest_detail::MarkImplicitBlocks().
| std::vector<uint8_t> bicameral::sim::MultiresNest::implicitFrozen |
Definition at line 82 of file multires_nest.h.
Referenced by bicameral::sim::anonymous_namespace{multires_implicit_conduction.cpp}::CaptureNest().
| ImplicitGrid bicameral::sim::MultiresNest::implicitGrid |
Definition at line 77 of file multires_nest.h.
Referenced by bicameral::sim::nest_detail::AddImplicitConduction().
| std::vector<std::array<uint32_t, 2> > bicameral::sim::MultiresNest::implicitLevels |
Definition at line 73 of file multires_nest.h.
Referenced by bicameral::sim::nest_detail::AddImplicitConduction(), and bicameral::sim::anonymous_namespace{multires_implicit_conduction.cpp}::RecordLevels().
| std::shared_ptr<const MultiresNest> bicameral::sim::MultiresNest::implicitNest |
Definition at line 81 of file multires_nest.h.
Referenced by bicameral::sim::nest_detail::AddImplicitConduction(), and bicameral::sim::anonymous_namespace{multires_implicit_conduction.cpp}::CaptureNest().
| std::vector<uint32_t> bicameral::sim::MultiresNest::index |
Definition at line 61 of file multires_nest.h.
Referenced by bicameral::sim::anonymous_namespace{multires_conduction.cpp}::AddCellFlows(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::IndexInsert(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::IndexRemove(), bicameral::sim::LookupBlock(), bicameral::sim::MakeMultiresNest(), bicameral::sim::GpuMultires::MakeTreeWordsImage(), bicameral::sim::GpuMultires::Read(), bicameral::sim::RebuildIndex(), and bicameral::sim::GpuMultires::RecordUpload().
| std::vector<uint64_t> bicameral::sim::MultiresNest::ledger |
Definition at line 53 of file multires_nest.h.
Referenced by bicameral::sim::anonymous_namespace{multires_activity.cpp}::AddLedgerBits(), bicameral::sim::anonymous_namespace{multires_nest.cpp}::AddLedgerTotals(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::AddToLedger(), bicameral::sim::FindLabMismatch(), bicameral::sim::HashWholeNest(), bicameral::sim::MakeMultiresNest(), bicameral::sim::GpuMultires::Read(), and bicameral::sim::GpuMultires::RecordUpload().
| std::vector<multires::MrRequest> bicameral::sim::MultiresNest::requests |
Definition at line 64 of file multires_nest.h.
Referenced by bicameral::sim::MakeMultiresNest(), bicameral::sim::ProcessRequests(), bicameral::sim::GpuMultires::RecordUpload(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::RefineRequestLevel(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::Resolve(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::ResolveCoarsen(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::ResolveRefine(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::Settle(), bicameral::sim::anonymous_namespace{multires_activity.cpp}::SubmitQuietRequests(), and bicameral::sim::SubmitRequests().
| std::vector<uint8_t> bicameral::sim::MultiresNest::seeds |
Definition at line 58 of file multires_nest.h.
Referenced by bicameral::sim::nest_detail::ExpandWantedPages(), bicameral::sim::MakeMultiresNest(), bicameral::sim::nest_detail::PokeBlock(), bicameral::sim::GpuMultires::RecordUpload(), bicameral::sim::SeedSlots(), bicameral::sim::StepActive(), and bicameral::sim::WaitSeedSlots().
| std::vector<multires::MrRequestState> bicameral::sim::MultiresNest::states |
Definition at line 65 of file multires_nest.h.
Referenced by bicameral::sim::anonymous_namespace{multires_tree.cpp}::Allocate(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::ApplyCoarsen(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::ApplyRefine(), bicameral::sim::MakeMultiresNest(), bicameral::sim::ProcessRequests(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::RefineRequestLevel(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::ReleaseAll(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::Resolve(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::ResolveCoarsen(), bicameral::sim::anonymous_namespace{multires_tree.cpp}::ResolveRefine(), and bicameral::sim::anonymous_namespace{multires_tree.cpp}::Settle().