Bicameral Engine
GPU-resident engine for a magic-research open-world game
Loading...
Searching...
No Matches
multires_nest.h File Reference
#include <array>
#include <cstdint>
#include <memory>
#include <span>
#include <vector>
#include "common/multires_tree.hlsli"
#include "sim/implicit_conduction.h"
#include "sim/reaction_table.h"
Include dependency graph for multires_nest.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  bicameral::sim::MultiresPoint
struct  bicameral::sim::MultiresCapacity
struct  bicameral::sim::MultiresNest
struct  bicameral::sim::MultiresImplicitLimits
struct  bicameral::sim::MultiresImplicitBudget
struct  bicameral::sim::MultiresStepOptions
struct  bicameral::sim::ConservedTotals

Namespaces

namespace  bicameral
namespace  bicameral::sim

Typedefs

using bicameral::sim::Wide256 = std::array<uint64_t, 4>

Enumerations

enum class  bicameral::sim::ImplicitOverflow : uint8_t { bicameral::sim::Explicit , bicameral::sim::Freeze , bicameral::sim::StopRefine }

Functions

constexpr MultiresImplicitBudget bicameral::sim::MakeMultiresImplicitBudget (const MultiresImplicitLimits &limits)
MultiresNest bicameral::sim::MakeMultiresNest (const MultiresCapacity &capacity)
RxCell bicameral::sim::LoadNestCell (const MultiresNest &nest, uint32_t slot, uint32_t index)
uint32_t bicameral::sim::UsedWorldPages (const MultiresNest &nest)
uint32_t bicameral::sim::PlaceRootBlock (MultiresNest &nest, int64_t originX, int64_t originY, int64_t originZ, std::span< const reaction::RxCell > cells)
void bicameral::sim::SubmitRequests (MultiresNest &nest, std::span< const multires::MrRequest > requests)
void bicameral::sim::ProcessRequests (MultiresNest &nest)
uint32_t bicameral::sim::LookupBlock (const MultiresNest &nest, int32_t level, int64_t originX, int64_t originY, int64_t originZ)
void bicameral::sim::RebuildIndex (MultiresNest &nest)
void bicameral::sim::PlaceMirrorBlock (MultiresNest &nest, uint32_t slot, int32_t level, int64_t originX, int64_t originY, int64_t originZ, std::span< const reaction::RxCell > cells)
void bicameral::sim::RefineShadowChain (MultiresNest &nest, uint32_t parentSlot, uint32_t firstChildSlot, uint32_t levelCount, const MultiresPoint &point)
void bicameral::sim::RemoveShadowChain (MultiresNest &nest, uint32_t firstSlot, uint32_t levelCount)
void bicameral::sim::PullBackShadowChain (MultiresNest &nest, const BakedReactionTable &table, uint32_t firstShadowSlot, uint32_t levelCount)
void bicameral::sim::StepNest (MultiresNest &nest, const BakedReactionTable &table, uint64_t worldSeed, uint64_t tick, const MultiresStepOptions &options)
void bicameral::sim::StepActive (MultiresNest &nest, const BakedReactionTable &table, uint64_t worldSeed, uint64_t tick, const MultiresStepOptions &options)
void bicameral::sim::FoldQuietPages (MultiresNest &nest, uint64_t tick)
void bicameral::sim::FoldQuietPages (MultiresNest &nest, const BakedReactionTable &table, uint64_t tick, const multires::MrFoldTolerance &tolerance)
MrFoldStats bicameral::sim::CollectFoldStats (const MultiresNest &nest, const ReactionTableView &table, uint32_t slot)
void bicameral::sim::SubmitQuietCoarsenRequests (MultiresNest &nest, uint64_t tick)
void bicameral::sim::SubmitQuietCoarsenRequests (MultiresNest &nest, const BakedReactionTable &table, uint64_t tick, const multires::MrFoldTolerance &tolerance)
std::vector< uint32_t > bicameral::sim::SeedSlots (const MultiresNest &nest)
std::vector< uint32_t > bicameral::sim::WaitSeedSlots (const MultiresNest &nest, uint64_t tick)
uint64_t bicameral::sim::HashRealLeaves (const MultiresNest &nest)
uint64_t bicameral::sim::HashWholeNest (const MultiresNest &nest)
ConservedTotals bicameral::sim::ComputeConservedTotals (const MultiresNest &nest, const BakedReactionTable &table, int32_t finestLevel)

Variables

constexpr uint32_t bicameral::sim::MULTIRES_MAX_SUBCYCLE_GAP = 3