Bicameral Engine
GPU-resident engine for a magic-research open-world game
Loading...
Searching...
No Matches
bicameral::gpu::DebugRing Class Reference

#include <debug_ring.h>

Collaboration diagram for bicameral::gpu::DebugRing:
[legend]

Public Member Functions

D3D12_GPU_VIRTUAL_ADDRESS GpuAddress () const
void RecordBegin (ID3D12GraphicsCommandList *list) const
void RecordReadbackAndReset (ID3D12GraphicsCommandList *list, uint32_t slot=0) const
DebugRingContents Drain (uint32_t maxLoggedMessages=DEFAULT_MAX_LOGGED_MESSAGES, uint32_t slot=0) const

Static Public Member Functions

static std::expected< DebugRing, std::string > Create (ID3D12Device *device, uint32_t slotCount=1)

Static Public Attributes

static constexpr uint32_t DEFAULT_MAX_LOGGED_MESSAGES = 32

Private Member Functions

 DebugRing (ReadbackRing &&ring)

Private Attributes

ReadbackRing m_ring

Detailed Description

Definition at line 51 of file debug_ring.h.

Constructor & Destructor Documentation

◆ DebugRing()

bicameral::gpu::DebugRing::DebugRing ( ReadbackRing && ring)
inlineexplicitprivate

Definition at line 71 of file debug_ring.h.

References m_ring.

Referenced by Create().

Here is the caller graph for this function:

Member Function Documentation

◆ Create()

std::expected< DebugRing, std::string > bicameral::gpu::DebugRing::Create ( ID3D12Device * device,
uint32_t slotCount = 1 )
staticnodiscard

Definition at line 172 of file debug_ring.cpp.

References bicameral::gpu::ReadbackRing::Create(), and DebugRing().

Referenced by bicameral::sim::LabSession::Create(), and bicameral::sim::ProbeSim::Create().

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

◆ Drain()

DebugRingContents bicameral::gpu::DebugRing::Drain ( uint32_t maxLoggedMessages = DEFAULT_MAX_LOGGED_MESSAGES,
uint32_t slot = 0 ) const

Definition at line 188 of file debug_ring.cpp.

References bicameral::gpu::DebugRingContents::assertCount, bicameral::gpu::DecodeDebugRecord(), bicameral::gpu::DebugRingContents::droppedCount, bicameral::gpu::DebugMessage::isAssert, m_ring, bicameral::gpu::DebugRingContents::messages, and bicameral::gpu::DebugRingContents::requestedCount.

Here is the call graph for this function:

◆ GpuAddress()

D3D12_GPU_VIRTUAL_ADDRESS bicameral::gpu::DebugRing::GpuAddress ( ) const
inlinenodiscard

Definition at line 59 of file debug_ring.h.

References m_ring.

◆ RecordBegin()

void bicameral::gpu::DebugRing::RecordBegin ( ID3D12GraphicsCommandList * list) const

Definition at line 180 of file debug_ring.cpp.

References m_ring.

◆ RecordReadbackAndReset()

void bicameral::gpu::DebugRing::RecordReadbackAndReset ( ID3D12GraphicsCommandList * list,
uint32_t slot = 0 ) const

Definition at line 184 of file debug_ring.cpp.

References m_ring.

Member Data Documentation

◆ DEFAULT_MAX_LOGGED_MESSAGES

uint32_t bicameral::gpu::DebugRing::DEFAULT_MAX_LOGGED_MESSAGES = 32
staticconstexpr

Definition at line 54 of file debug_ring.h.

◆ m_ring

ReadbackRing bicameral::gpu::DebugRing::m_ring
private

Definition at line 73 of file debug_ring.h.

Referenced by DebugRing(), Drain(), GpuAddress(), RecordBegin(), and RecordReadbackAndReset().


The documentation for this class was generated from the following files: