39 lines
1.2 KiB
C++
39 lines
1.2 KiB
C++
#pragma once
|
|
#include <render_common.hpp>
|
|
#include <cstddef>
|
|
#include <cstdint>
|
|
|
|
namespace aethera::render_3d {
|
|
struct Gpu_Completion_State_Tag {};
|
|
|
|
/* 只由 GPU Completion Domain 写入并通过双缓冲发布。 */
|
|
struct Gpu_Completion_State : State_Type<Gpu_Completion_State_Tag> {
|
|
std::size_t capacity{};
|
|
std::size_t in_flight{};
|
|
std::size_t peak_in_flight{};
|
|
std::size_t watched{};
|
|
std::size_t peak_watched{};
|
|
std::size_t active_fences{};
|
|
std::size_t pending_fences{};
|
|
std::uint64_t reservation_count{};
|
|
std::uint64_t completion_count{};
|
|
std::uint64_t cancellation_count{};
|
|
std::uint64_t fence_probe_count{};
|
|
std::uint64_t fence_wait_count{};
|
|
std::uint64_t fence_wait_timeout_count{};
|
|
std::uint64_t fence_wait_total_ns{};
|
|
std::uint64_t fence_wait_max_ns{};
|
|
std::uint64_t callback_total_ns{};
|
|
std::uint64_t callback_max_ns{};
|
|
std::uint64_t callback_failure_count{};
|
|
std::uint64_t backpressure_count{};
|
|
std::uint64_t backpressure_wait_ns{};
|
|
std::uint64_t fault_count{};
|
|
std::uint64_t abandoned_count{};
|
|
bool stopping{};
|
|
bool operator==(const Gpu_Completion_State&) const = default;
|
|
};
|
|
|
|
[[nodiscard]] Gpu_Completion_State gpu_completion_state() noexcept;
|
|
}
|