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

#include <gpu_audio_transport.hpp>

Public Attributes

uint32_t ring_blocks = 4
bool run_worker_thread = false
bool wake_on_write = false
void * audio_workgroup = nullptr
bool join_audio_workgroup = false
GpuAudioRecoveryPolicy recovery_policy = GpuAudioRecoveryPolicy::Manual
 AutoReacquire lets the worker replace a fenced node's provider while the callback stays on its prepared fallback: it releases the old provider within reacquire_release_budget_ns, prepares a new one, and opens a new delivery epoch on the same stream.
std::uint64_t reacquire_release_budget_ns = 250'000'000
 Budget for releasing the old provider.
std::uint32_t reacquire_max_attempts = 3
 Attempts per outage.
std::uint64_t reacquire_backoff_ns = 100'000'000
 The first attempt is immediate.

Member Data Documentation

◆ audio_workgroup

void* pulp::gpu_audio::GpuAudioTransport::Config::audio_workgroup = nullptr

◆ join_audio_workgroup

bool pulp::gpu_audio::GpuAudioTransport::Config::join_audio_workgroup = false

◆ reacquire_backoff_ns

std::uint64_t pulp::gpu_audio::GpuAudioTransport::Config::reacquire_backoff_ns = 100'000'000

The first attempt is immediate.

Every attempt, successful or not, arms a wait before the next: this value after the first, five times the previous wait after each later one. With the defaults only the 100 ms and 500 ms waits occur; the count resets once GPU audio resumes.

◆ reacquire_max_attempts

std::uint32_t pulp::gpu_audio::GpuAudioTransport::Config::reacquire_max_attempts = 3

Attempts per outage.

If GPU audio has not resumed after the last attempt, the transport stays on the CPU fallback until the host prepares it again.

◆ reacquire_release_budget_ns

std::uint64_t pulp::gpu_audio::GpuAudioTransport::Config::reacquire_release_budget_ns = 250'000'000

Budget for releasing the old provider.

One that cannot drain in time has its device destroyed and stays owned (quarantined) until a later release completes it.

◆ recovery_policy

GpuAudioRecoveryPolicy pulp::gpu_audio::GpuAudioTransport::Config::recovery_policy = GpuAudioRecoveryPolicy::Manual

AutoReacquire lets the worker replace a fenced node's provider while the callback stays on its prepared fallback: it releases the old provider within reacquire_release_budget_ns, prepares a new one, and opens a new delivery epoch on the same stream.

An offline fence is never re-acquired. Only nodes with a realtime GPU path that can re-acquire honour it; capability_report().recovery_policy reports the policy in effect for the prepared node.

◆ ring_blocks

uint32_t pulp::gpu_audio::GpuAudioTransport::Config::ring_blocks = 4

◆ run_worker_thread

bool pulp::gpu_audio::GpuAudioTransport::Config::run_worker_thread = false

◆ wake_on_write

bool pulp::gpu_audio::GpuAudioTransport::Config::wake_on_write = false

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