Bicameral Engine
GPU-resident engine for a magic-research open-world game
Loading...
Searching...
No Matches
bicameral::sim::anonymous_namespace{gpu_implicit_build.cpp} Namespace Reference

Enumerations

enum  Pass : uint8_t {
  PassClear , PassCountBlocks , PassScanBlocks , PassNumberUnknowns ,
  PassFaceEntries , PassScanEntriesLocal , PassScanEntriesGroups , PassScanEntriesAdd ,
  PassBoundary , PassCells , PassFaces , PassScanCellsLocal ,
  PassScanCellsGroups , PassScanCellsAdd , PassFillLists , PassSortLists ,
  PassCount
}

Functions

std::string ShaderFile (std::string_view name)
uint32_t Groups (uint64_t threads)
void CopyToReadback (ID3D12GraphicsCommandList *list, ID3D12Resource *source, ID3D12Resource *readback, uint64_t bytes)
template<typename T>
std::vector< T > Slice (std::span< const std::byte > bytes, uint64_t offset, uint32_t count)

Variables

constexpr uint32_t THREADS = 64
constexpr uint32_t HEADER_WORDS = 16
constexpr uint32_t HEADER_UNKNOWNS = 0
constexpr uint32_t HEADER_BOUNDARY = 1
constexpr uint32_t HEADER_FACES = 2
constexpr uint32_t HEADER_OVERFLOW = 3
constexpr uint32_t ENTRY_WORDS = 4
constexpr uint32_t CELL_WORDS = 3
constexpr uint32_t KEY_WORDS = 8
constexpr uint32_t SCAN_THREADS = 1024
constexpr uint32_t FROZEN_MARKS_BIT = 1u << 24
constexpr std::array< const char *, PassCount > PASS_NAMES

Enumeration Type Documentation

◆ Pass

enum bicameral::sim::anonymous_namespace{gpu_implicit_build.cpp}::Pass : uint8_t
Enumerator
PassClear 
PassCountBlocks 
PassScanBlocks 
PassNumberUnknowns 
PassFaceEntries 
PassScanEntriesLocal 
PassScanEntriesGroups 
PassScanEntriesAdd 
PassBoundary 
PassCells 
PassFaces 
PassScanCellsLocal 
PassScanCellsGroups 
PassScanCellsAdd 
PassFillLists 
PassSortLists 
PassCount 

Definition at line 36 of file gpu_implicit_build.cpp.

Function Documentation

◆ CopyToReadback()

void bicameral::sim::anonymous_namespace{gpu_implicit_build.cpp}::CopyToReadback ( ID3D12GraphicsCommandList * list,
ID3D12Resource * source,
ID3D12Resource * readback,
uint64_t bytes )

Definition at line 94 of file gpu_implicit_build.cpp.

References CopyToReadback(), and bicameral::gpu::Transition().

Referenced by CopyToReadback().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Groups()

uint32_t bicameral::sim::anonymous_namespace{gpu_implicit_build.cpp}::Groups ( uint64_t threads)

Definition at line 89 of file gpu_implicit_build.cpp.

References Groups(), and THREADS.

Referenced by Groups().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ShaderFile()

std::string bicameral::sim::anonymous_namespace{gpu_implicit_build.cpp}::ShaderFile ( std::string_view name)

Definition at line 75 of file gpu_implicit_build.cpp.

References ShaderFile().

Referenced by ShaderFile().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Slice()

template<typename T>
std::vector< T > bicameral::sim::anonymous_namespace{gpu_implicit_build.cpp}::Slice ( std::span< const std::byte > bytes,
uint64_t offset,
uint32_t count )

Definition at line 105 of file gpu_implicit_build.cpp.

References Slice().

Referenced by Slice().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ CELL_WORDS

uint32_t bicameral::sim::anonymous_namespace{gpu_implicit_build.cpp}::CELL_WORDS = 3
constexpr

Definition at line 27 of file gpu_implicit_build.cpp.

◆ ENTRY_WORDS

uint32_t bicameral::sim::anonymous_namespace{gpu_implicit_build.cpp}::ENTRY_WORDS = 4
constexpr

Definition at line 26 of file gpu_implicit_build.cpp.

◆ FROZEN_MARKS_BIT

uint32_t bicameral::sim::anonymous_namespace{gpu_implicit_build.cpp}::FROZEN_MARKS_BIT = 1u << 24
constexpr

Definition at line 30 of file gpu_implicit_build.cpp.

◆ HEADER_BOUNDARY

uint32_t bicameral::sim::anonymous_namespace{gpu_implicit_build.cpp}::HEADER_BOUNDARY = 1
constexpr

Definition at line 23 of file gpu_implicit_build.cpp.

◆ HEADER_FACES

uint32_t bicameral::sim::anonymous_namespace{gpu_implicit_build.cpp}::HEADER_FACES = 2
constexpr

Definition at line 24 of file gpu_implicit_build.cpp.

◆ HEADER_OVERFLOW

uint32_t bicameral::sim::anonymous_namespace{gpu_implicit_build.cpp}::HEADER_OVERFLOW = 3
constexpr

Definition at line 25 of file gpu_implicit_build.cpp.

◆ HEADER_UNKNOWNS

uint32_t bicameral::sim::anonymous_namespace{gpu_implicit_build.cpp}::HEADER_UNKNOWNS = 0
constexpr

Definition at line 22 of file gpu_implicit_build.cpp.

◆ HEADER_WORDS

uint32_t bicameral::sim::anonymous_namespace{gpu_implicit_build.cpp}::HEADER_WORDS = 16
constexpr

Definition at line 21 of file gpu_implicit_build.cpp.

◆ KEY_WORDS

uint32_t bicameral::sim::anonymous_namespace{gpu_implicit_build.cpp}::KEY_WORDS = 8
constexpr

Definition at line 28 of file gpu_implicit_build.cpp.

◆ PASS_NAMES

std::array<const char*, PassCount> bicameral::sim::anonymous_namespace{gpu_implicit_build.cpp}::PASS_NAMES
constexpr
Initial value:
= {"Clear",
"CountBlocks",
"ScanBlocks",
"NumberUnknowns",
"FaceEntries",
"ScanEntriesLocal",
"ScanEntriesGroups",
"ScanEntriesAdd",
"Boundary",
"Cells",
"Faces",
"ScanCellsLocal",
"ScanCellsGroups",
"ScanCellsAdd",
"FillLists",
"SortLists"}

Definition at line 57 of file gpu_implicit_build.cpp.

◆ SCAN_THREADS

uint32_t bicameral::sim::anonymous_namespace{gpu_implicit_build.cpp}::SCAN_THREADS = 1024
constexpr

Definition at line 29 of file gpu_implicit_build.cpp.

◆ THREADS

uint32_t bicameral::sim::anonymous_namespace{gpu_implicit_build.cpp}::THREADS = 64
constexpr

Definition at line 20 of file gpu_implicit_build.cpp.

Referenced by Groups().