Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::gpu_audio::GpuWaveNetRealtimeNode::Config Struct Reference

#include <gpu_wavenet_realtime_node.hpp>

Public Attributes

GpuWaveNetSession::Config session
std::uint32_t channels = 1
std::uint32_t lead_blocks = 2
std::uint32_t capacity = 8
std::uint32_t max_inflight = 0
 Maximum number of submitted blocks retained by the serialized worker before it waits for retirement.
std::uint32_t prewarm_blocks = 0
std::uint64_t completion_service_wait_ns = 0
 Optional bounded completion-service budget for each non-RT worker pump.
MissPolicy miss_policy = MissPolicy::Silence
bool supports_cpu_fallback = false
std::uint32_t watchdog_blocks = 0
 Callback blocks that may pass with work in flight and no completion before the node latches GpuAudioRecoveryReason::ProviderUnresponsive.
GpuAudioProviderPool * provider_pool = nullptr
 Optional host-owned pool that keeps this node's providers warm across release() and prepare().

Member Data Documentation

◆ capacity

std::uint32_t pulp::gpu_audio::GpuWaveNetRealtimeNode::Config::capacity = 8

◆ channels

std::uint32_t pulp::gpu_audio::GpuWaveNetRealtimeNode::Config::channels = 1

◆ completion_service_wait_ns

std::uint64_t pulp::gpu_audio::GpuWaveNetRealtimeNode::Config::completion_service_wait_ns = 0

Optional bounded completion-service budget for each non-RT worker pump.

Zero preserves nonblocking service. This is not an audio deadline and is recomputed for every pump.

◆ lead_blocks

std::uint32_t pulp::gpu_audio::GpuWaveNetRealtimeNode::Config::lead_blocks = 2

◆ max_inflight

std::uint32_t pulp::gpu_audio::GpuWaveNetRealtimeNode::Config::max_inflight = 0

Maximum number of submitted blocks retained by the serialized worker before it waits for retirement.

Zero selects two when the session has at least two slots and the ring holds two blocks past the lead, else one: one block in flight cannot keep up when a block's round trip exceeds its period (64 frames on an M1 Max). The lead, and so the latency, is unchanged. Larger values require matching provider slots and a fixed preallocated pending ring.

◆ miss_policy

MissPolicy pulp::gpu_audio::GpuWaveNetRealtimeNode::Config::miss_policy = MissPolicy::Silence

◆ prewarm_blocks

std::uint32_t pulp::gpu_audio::GpuWaveNetRealtimeNode::Config::prewarm_blocks = 0

◆ provider_pool

GpuAudioProviderPool* pulp::gpu_audio::GpuWaveNetRealtimeNode::Config::provider_pool = nullptr

Optional host-owned pool that keeps this node's providers warm across release() and prepare().

The pool must outlive every node bound to it. A borrowed provider re-fills its causal history before it delivers, as a re-acquired one does.

◆ session

GpuWaveNetSession::Config pulp::gpu_audio::GpuWaveNetRealtimeNode::Config::session

◆ supports_cpu_fallback

bool pulp::gpu_audio::GpuWaveNetRealtimeNode::Config::supports_cpu_fallback = false

◆ watchdog_blocks

std::uint32_t pulp::gpu_audio::GpuWaveNetRealtimeNode::Config::watchdog_blocks = 0

Callback blocks that may pass with work in flight and no completion before the node latches GpuAudioRecoveryReason::ProviderUnresponsive.

Zero selects 200 ms converted to blocks at prepare() (at 48 kHz: 150 blocks of 64 frames, 75 of 128, 38 of 256), or capacity - 1 if that is larger, and grows the input ring to hold the window and the lead, so a hang trips the watchdog before the ring saturates. A non-zero value is used as given with the configured capacity. A provider that keeps completing, however late, is never unresponsive.


The documentation for this struct was generated from the following file: