Bicameral Engine
GPU-resident engine for a magic-research open-world game
Loading...
Searching...
No Matches
probe_trace.cpp File Reference
#include "sim/probe_trace.h"
#include <algorithm>
#include <format>
#include <fstream>
#include <map>
#include <set>
#include "core/aliases.h"
Include dependency graph for probe_trace.cpp:

Go to the source code of this file.

Classes

struct  bicameral::sim::anonymous_namespace{probe_trace.cpp}::TickTree
struct  bicameral::sim::anonymous_namespace{probe_trace.cpp}::GraphTraceFilter
struct  bicameral::sim::anonymous_namespace{probe_trace.cpp}::GraphTraceRecord

Namespaces

namespace  bicameral
namespace  bicameral::sim
namespace  bicameral::sim::anonymous_namespace{probe_trace.cpp}

Typedefs

using bicameral::sim::anonymous_namespace{probe_trace.cpp}::Coordinates = std::array<uint32_t, 3>

Functions

Coordinates bicameral::sim::anonymous_namespace{probe_trace.cpp}::BlockCoordinates (uint32_t block)
Coordinates bicameral::sim::anonymous_namespace{probe_trace.cpp}::CellCoordinates (uint32_t cell)
std::string bicameral::sim::anonymous_namespace{probe_trace.cpp}::FormatCoordinates (const Coordinates &coordinates)
std::vector< uint32_t > bicameral::sim::anonymous_namespace{probe_trace.cpp}::BlockAndNeighbors (uint32_t block)
bool bicameral::sim::anonymous_namespace{probe_trace.cpp}::WantsTick (const GraphTraceFilter &filter, uint64_t tick)
bool bicameral::sim::anonymous_namespace{probe_trace.cpp}::WantsBlock (const GraphTraceFilter &filter, uint32_t block)
void bicameral::sim::anonymous_namespace{probe_trace.cpp}::BuildTickTree (std::span< const GraphTraceRecord > records, TickTree &tree)
std::string bicameral::sim::anonymous_namespace{probe_trace.cpp}::FormatChild (const TickTree &tree, uint32_t block)
std::string bicameral::sim::anonymous_namespace{probe_trace.cpp}::FormatRoot (const TickTree &tree, uint32_t root, uint64_t tick, const std::set< uint32_t > &changedBefore, bool previousTraced)
std::string bicameral::sim::anonymous_namespace{probe_trace.cpp}::FormatTick (uint64_t tick, const TickTree &tree, const std::set< uint32_t > &changedBefore, bool previousTraced, size_t recordCount)
bool bicameral::sim::anonymous_namespace{probe_trace.cpp}::SameCellWords (std::span< const uint32_t > gpuCells, std::span< const uint32_t > cpuCells, uint32_t index)
uint32_t bicameral::sim::anonymous_namespace{probe_trace.cpp}::CountBlockDifferences (uint32_t block, std::span< const uint32_t > gpuCells, std::span< const uint32_t > cpuCells, Coordinates &first)
std::string bicameral::sim::anonymous_namespace{probe_trace.cpp}::FormatRecord (const GraphTraceRecord &record)
gpu::GraphTraceFilter bicameral::sim::ProbeTraceFilterForCells (uint64_t tickBegin, uint64_t tickEnd, std::array< uint32_t, 3 > cellMin, std::array< uint32_t, 3 > cellMax, uint32_t capacity)
std::string bicameral::sim::FormatProbeTrace (std::span< const gpu::GraphTraceRecord > sorted)
std::expected< void, std::string > bicameral::sim::WriteProbeTraceFile (const fs::path &path, std::vector< gpu::GraphTraceRecord > records, const gpu::GraphTraceFilter &filter, uint64_t droppedCount)
std::vector< gpu::GraphTraceRecord > bicameral::sim::UniqueProbeTrace (std::vector< gpu::GraphTraceRecord > records)
void bicameral::sim::AppendExpectedProbeTrace (const gpu::GraphTraceFilter &filter, uint64_t tick, std::span< const ProbeCommand > commands, std::span< const uint8_t > flagsBefore, std::span< const uint8_t > flagsAfter, std::vector< gpu::GraphTraceRecord > &expected)
std::optional< std::string > bicameral::sim::FirstProbeTraceMismatch (std::span< const gpu::GraphTraceRecord > gpu, std::span< const gpu::GraphTraceRecord > cpu)
std::optional< uint64_t > bicameral::sim::FirstDivergentTick (std::span< const ProbeTickHash > gpu, std::span< const ProbeTickHash > cpu)
std::optional< ProbeDivergence > bicameral::sim::FindCellDivergence (uint64_t tick, std::span< const uint32_t > gpuCells, std::span< const uint32_t > cpuCells)
std::string bicameral::sim::FormatProbeDivergence (const ProbeDivergence &divergence)