Bicameral Engine
GPU-resident engine for a magic-research open-world game
Loading...
Searching...
No Matches
gpu_implicit.cpp File Reference
#include "sim/gpu_implicit.h"
#include <algorithm>
#include <cstring>
#include <format>
#include <span>
#include <utility>
#include "common/implicit_conduction.hlsli"
#include "gpu/resources.h"
#include "sim/gpu_implicit_levels.h"
Include dependency graph for gpu_implicit.cpp:

Go to the source code of this file.

Classes

struct  bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::NodeImages

Namespaces

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

Functions

constexpr uint32_t bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::PlanDepthWord (uint32_t kind, uint32_t depth)
constexpr uint32_t bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::DepthSlot (uint32_t depth)
template<typename T>
std::vector< std::byte > bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::ToBytes (const std::vector< T > &values)
bool bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::WriteUpload (ID3D12Resource *upload, std::span< const std::byte > bytes)
void bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::GlobalUavBarrier (ID3D12GraphicsCommandList *list)
std::vector< ImGpuCell > bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::MakeCellImage (const ImplicitGrid &grid, const std::vector< uint32_t > &faceStarts)
std::pair< std::vector< uint32_t >, std::vector< uint32_t > > bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::MakeCellFaces (const ImplicitGrid &grid)
void bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::AppendChildren (const ImplicitGrid &grid, size_t depth, const std::vector< uint32_t > &levelOffsets, std::vector< ImGpuNode > &nodes, std::vector< uint32_t > &lists)
NodeImages bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::MakeNodes (const ImplicitGrid &grid, const std::vector< uint32_t > &levelOffsets, std::vector< uint32_t > &lists)
GpuImplicitLevelImages bicameral::sim::MakeGpuImplicitLevelImages (const ImplicitGrid &grid)

Variables

constexpr uint32_t bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::THREADS = 64
constexpr uint32_t bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::STATE_WORDS = 8
constexpr uint32_t bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::STATE_CYCLES = 2
constexpr uint32_t bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::STATE_LIMIT_DONE = 3
constexpr uint32_t bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::STATE_LIMIT_ROUNDS = 5
constexpr uint32_t bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::STATE_LIMITED_CELLS = 6
constexpr uint32_t bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::WIDE_WORDS = 3
constexpr uint32_t bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::WIDE_WORST_EXCESS = 2
constexpr uint32_t bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::COLOR_COUNT = 2
constexpr uint32_t bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::PREDICATE_CYCLES = 0
constexpr uint32_t bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::PREDICATE_LIMIT = 1
constexpr uint32_t bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::PREDICATE_WORDS = 2
constexpr uint32_t bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::SWEEP_BITS = 8
constexpr uint32_t bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::UAV_COUNT = 11
constexpr uint32_t bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::ARGS_BYTES = 3 * sizeof(uint32_t)
constexpr uint32_t bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::ROOT_CONSTANT_COUNT = 16
constexpr gpu::RootSignatureLayout bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::ROOT_LAYOUT
constexpr std::array< const char *, 15 > bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::SHADERS
constexpr std::array< bool, 11 > bicameral::sim::anonymous_namespace{gpu_implicit.cpp}::UPLOADED