43 "GpuAudioStatus::terminal_counts must cover every terminal disposition");
46 "validate_gpu_audio_status indexes terminal_counts by these values");
121constexpr GpuAudioProgramValidation
123 const auto kind = program.kind;
127 static_cast<std::uint8_t
>(program.path) >
129 static_cast<std::uint8_t
>(program.provider) >
131 static_cast<int>(program.miss_policy) < 0 ||
136 if (program.channels == 0 || program.block_size == 0 || program.sample_rate == 0)
146 if (program.algorithmic_lead_blocks == 0)
148 if (program.pipeline_depth == 0)
150 if (program.pipeline_depth <= program.algorithmic_lead_blocks)
152 if (program.provider_slots == 0)
164 if (!program.provider_owned_resources)
167 if (program.provider_owned_resources)
172 if (program.provider_owned_resources)
174 if (program.algorithmic_lead_blocks != 0 || program.pipeline_depth != 0 ||
175 program.provider_slots != 0)
188constexpr GpuAudioProgramValidation
192 if (!descriptor.accepted())
194 if (!capability.prepared)
198 if (capability.path != program.path)
200 if (capability.fallback_policy != program.miss_policy)
202 if (program.algorithmic_lead_blocks != capability.prepared_lead_blocks)
205 capability.provider != program.provider)
223static_assert(std::is_trivially_copyable_v<GpuAudioProgramDescriptor>);
224static_assert(std::is_trivially_copyable_v<GpuAudioProgramValidation>);
Definition flow_pans.hpp:19
GpuAudioTerminalDisposition
One terminal audio disposition for an admitted block.
Definition gpu_audio_program.hpp:27
@ LateRejected
Definition gpu_audio_program.hpp:33
@ kCount
Not a disposition: the number of values above.
Definition gpu_audio_program.hpp:39
@ CpuFallback
Definition gpu_audio_program.hpp:30
@ Cancelled
Definition gpu_audio_program.hpp:35
@ StaleRejected
Definition gpu_audio_program.hpp:32
@ GpuDelivered
Definition gpu_audio_program.hpp:29
@ DeviceLost
Definition gpu_audio_program.hpp:34
constexpr GpuAudioCapabilityValidation validate_gpu_audio_capability(const GpuAudioCapabilityReport &capability) noexcept
Validate a capability snapshot.
Definition gpu_audio_capability.hpp:121
GpuAudioExecutionPath
The transport path selected for a prepared audio node.
Definition gpu_audio_capability.hpp:10
@ Staged
Definition gpu_audio_capability.hpp:12
@ Unavailable
Definition gpu_audio_capability.hpp:11
@ Cpu
A prepared CPU implementation with no GPU provider resources.
Definition gpu_audio_capability.hpp:16
@ SharedMemory
Definition gpu_audio_capability.hpp:13
@ Eligible
Definition gpu_audio_capability.hpp:34
MissPolicy
What the transport does for a block when the GPU result is not ready in time (the worker fell behind,...
Definition gpu_audio_node.hpp:12
@ CpuFallback
Run the node's CPU fallback for the missed block.
Definition gpu_audio_node.hpp:38
@ Silence
Output silence for the missed block (+ telemetry).
Definition gpu_audio_node.hpp:15
@ InvalidEnumValue
Definition gpu_audio_capability.hpp:76
@ None
Definition gpu_audio_capability.hpp:75
@ CpuProviderOnGpuPath
Definition gpu_audio_capability.hpp:81
GpuAudioProvider
Provider identity when the selected path can establish it without exposing backend handles.
Definition gpu_audio_capability.hpp:21
@ Cpu
A CPU implementation with no GPU provider.
Definition gpu_audio_capability.hpp:27
@ Unknown
Definition gpu_audio_capability.hpp:22
GpuAudioProgramKind
The typed workload family selected during host-side preparation.
Definition gpu_audio_program.hpp:15
@ Unknown
Definition gpu_audio_program.hpp:16
@ Custom
Definition gpu_audio_program.hpp:20
@ Neural
Definition gpu_audio_program.hpp:19
@ Spectral
Definition gpu_audio_program.hpp:18
@ Convolution
Definition gpu_audio_program.hpp:17
GpuAudioProgramError
Why a prepared program descriptor was rejected.
Definition gpu_audio_program.hpp:51
@ InvalidEnumValue
Definition gpu_audio_program.hpp:80
@ CapabilityLeadMismatch
Definition gpu_audio_program.hpp:74
@ CapabilityPathMismatch
Definition gpu_audio_program.hpp:72
@ ProviderOnCpu
Definition gpu_audio_program.hpp:64
@ MissingPipelineDepth
Definition gpu_audio_program.hpp:57
@ CpuFallbackNotPrepared
Definition gpu_audio_program.hpp:66
@ ProviderResourcesOnCpu
Definition gpu_audio_program.hpp:62
@ CapabilityFallbackUnavailable
Definition gpu_audio_program.hpp:76
@ InsufficientPipelineDepth
Definition gpu_audio_program.hpp:58
@ CapabilityProviderMismatch
Definition gpu_audio_program.hpp:73
@ InvalidShape
Definition gpu_audio_program.hpp:54
@ CapabilityIneligible
Definition gpu_audio_program.hpp:71
@ CpuPipelineOnCpu
Definition gpu_audio_program.hpp:65
@ None
Definition gpu_audio_program.hpp:52
@ MissingProviderSlots
Definition gpu_audio_program.hpp:59
@ CapabilityFallbackPolicyMismatch
Definition gpu_audio_program.hpp:75
@ MissingProviderIdentity
Definition gpu_audio_program.hpp:60
@ MissingKind
Definition gpu_audio_program.hpp:53
@ ProviderResourcesOnStaged
Definition gpu_audio_program.hpp:63
@ CapabilityNotPrepared
Definition gpu_audio_program.hpp:70
@ ProviderResourcesNotOwned
Definition gpu_audio_program.hpp:61
@ PathUnavailable
Definition gpu_audio_program.hpp:55
@ MissingAlgorithmicLead
Definition gpu_audio_program.hpp:56
@ CpuProviderOnGpuPath
Definition gpu_audio_program.hpp:85
@ CapabilityInvalid
Definition gpu_audio_program.hpp:81
constexpr GpuAudioProgramValidation validate_gpu_audio_program(const GpuAudioProgramDescriptor &program) noexcept
Validate the backend-neutral prepared-program contract.
Definition gpu_audio_program.hpp:122
Backend-neutral, allocation-free capability snapshot for installed SDK consumers.
Definition gpu_audio_capability.hpp:46
Backend-neutral metadata for a typed program prepared for a fixed audio stream.
Definition gpu_audio_program.hpp:97
GpuAudioExecutionPath path
Definition gpu_audio_program.hpp:99
GpuAudioProgramKind kind
Definition gpu_audio_program.hpp:98
std::uint32_t channels
Definition gpu_audio_program.hpp:102
GpuAudioProvider provider
Definition gpu_audio_program.hpp:100
std::uint32_t provider_slots
Definition gpu_audio_program.hpp:107
std::uint32_t pipeline_depth
Definition gpu_audio_program.hpp:106
bool provider_owned_resources
Definition gpu_audio_program.hpp:108
std::uint32_t block_size
Definition gpu_audio_program.hpp:103
std::uint32_t sample_rate
Definition gpu_audio_program.hpp:104
MissPolicy miss_policy
Definition gpu_audio_program.hpp:101
bool cpu_fallback_prepared
Definition gpu_audio_program.hpp:109
std::uint32_t algorithmic_lead_blocks
Definition gpu_audio_program.hpp:105
Definition gpu_audio_program.hpp:112
constexpr bool accepted() const noexcept
Definition gpu_audio_program.hpp:115
GpuAudioProgramError error
Definition gpu_audio_program.hpp:113
static constexpr std::uint32_t kTerminalDispositionCount
Number of GpuAudioTerminalDisposition values counted by terminal_counts.
Definition gpu_audio_status.hpp:84