Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
control_gpu_health_provider.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <chrono>
4#include <cstdint>
5#include <memory>
6#include <optional>
7#include <string>
8#include <thread>
9#include <vector>
10
12struct HealthReadResult;
13}
14
15namespace pulp::inspect {
16
22 public:
23 enum class CacheState { cold, warm };
31
33 std::string host_id;
34 double refresh_rate_hz = 0.0;
35 };
36
37 struct Config {
38 std::string pulp_build_id;
39 std::string campaign_id{"editor-open"};
48 std::optional<std::string> gpu_evidence_id;
52 std::optional<std::string> trace_evidence_id;
53 std::string budget_id{"pulp.editor-first-visible.v1"};
54 std::uint32_t budget_version = 1;
58 bool budget_ratified = false;
59 std::optional<double> threshold_ms;
60 std::optional<std::string> threshold_source;
61 std::vector<ReferenceHost> reference_hosts;
62 std::optional<std::string> vellum_revision;
63 std::optional<std::string> source_signature_sha256;
64 std::optional<std::string> shader_signature_sha256;
65 std::optional<std::string> expected_target_signature_sha256;
66 std::uint32_t event_capacity = 64;
67 std::chrono::milliseconds timeout{5000};
69 };
70
78
79 bool available = false;
80 bool native_bridge = false;
84 bool null_backend = false;
85 std::string backend;
86 std::string name;
87 std::string vendor;
88 std::string architecture;
89 };
90
95 std::string lifecycle_id;
96 std::optional<CacheState> observed_cache_state;
101 bool capture_valid = false;
134 std::optional<std::chrono::steady_clock::time_point> native_presented_at;
135 std::optional<double> interaction_hitch_ms;
136 std::optional<double> shader_compile_ms;
137 std::optional<double> upload_ms;
138 std::optional<double> hidden_frame_ms;
139 std::optional<double> present_ms;
143 std::optional<std::string> trace_evidence_id;
148 std::vector<std::string> missing_trace_categories;
150 std::uint64_t distinct_color_count = 0;
154 std::optional<std::string> observed_source_signature_sha256;
155 std::optional<std::string> observed_shader_signature_sha256;
156 std::chrono::steady_clock::time_point observed_at;
157 };
158
162 std::vector<std::string> derive_missing_trace_categories(const FrameObservation& frame) const;
163
168
171 std::chrono::steady_clock::time_point requested_at) noexcept;
175 bool record_presented_frame(const FrameObservation& frame) noexcept;
176 bool record_timeout(std::chrono::steady_clock::time_point observed_at) noexcept;
177 bool record_instance_lost() noexcept;
178 bool record_dropped_events(std::uint64_t count) noexcept;
179 bool awaiting_frame() const noexcept;
180
181 std::shared_ptr<const tooling::gpu_health::HealthReadResult> snapshot() const noexcept;
182
183 private:
184 struct Impl;
185 std::unique_ptr<Impl> impl_;
186};
187
188} // namespace pulp::inspect
bool record_presented_frame(const FrameObservation &frame) noexcept
Records bounded raw product evidence.
CacheState
Definition control_gpu_health_provider.hpp:23
@ cold
Definition control_gpu_health_provider.hpp:23
@ warm
Definition control_gpu_health_provider.hpp:23
std::shared_ptr< const tooling::gpu_health::HealthReadResult > snapshot() const noexcept
bool record_timeout(std::chrono::steady_clock::time_point observed_at) noexcept
CacheProvenance
Definition control_gpu_health_provider.hpp:24
@ fresh_process
Definition control_gpu_health_provider.hpp:26
@ explicit_cache_reset
Definition control_gpu_health_provider.hpp:27
@ same_process_editor_reopen
Definition control_gpu_health_provider.hpp:28
@ unknown
Definition control_gpu_health_provider.hpp:25
std::vector< std::string > derive_missing_trace_categories(const FrameObservation &frame) const
Derives the trace categories that this exact frame did not prove.
ControlGpuHealthProvider & operator=(const ControlGpuHealthProvider &)=delete
MeasurementEndpoint
Definition control_gpu_health_provider.hpp:30
@ headless_capture_complete
Definition control_gpu_health_provider.hpp:30
@ native_compositor_presentation
Definition control_gpu_health_provider.hpp:30
ControlGpuHealthProvider(const ControlGpuHealthProvider &)=delete
bool begin_editor_open(CacheState cache_state, std::chrono::steady_clock::time_point requested_at) noexcept
Arms one bounded editor-open trial. Only one trial may be in flight.
bool record_dropped_events(std::uint64_t count) noexcept
@ count
sentinel: number of real capabilities (keep LAST)
Definition canvas_capability.hpp:38
Definition agent_context.hpp:7
Bounded, typed evidence returned by Pulp GPU health diagnostics.
Definition health_provider.hpp:8
Definition health_provider.hpp:8
STL namespace.
Definition control_gpu_health_provider.hpp:71
std::string name
Definition control_gpu_health_provider.hpp:86
bool null_backend
Set only from the native backend enum.
Definition control_gpu_health_provider.hpp:84
Type type
Definition control_gpu_health_provider.hpp:81
std::string architecture
Definition control_gpu_health_provider.hpp:88
std::string vendor
Definition control_gpu_health_provider.hpp:87
bool native_bridge
Definition control_gpu_health_provider.hpp:80
bool available
Definition control_gpu_health_provider.hpp:79
Type
Definition control_gpu_health_provider.hpp:72
@ integrated_gpu
Definition control_gpu_health_provider.hpp:74
@ discrete_gpu
Definition control_gpu_health_provider.hpp:75
@ unknown
Definition control_gpu_health_provider.hpp:73
@ cpu
Definition control_gpu_health_provider.hpp:76
std::string backend
Definition control_gpu_health_provider.hpp:85
Definition control_gpu_health_provider.hpp:37
bool budget_ratified
Ratification is accepted only with a positive threshold, source, and at least one bounded reference h...
Definition control_gpu_health_provider.hpp:58
std::optional< std::string > source_signature_sha256
Definition control_gpu_health_provider.hpp:63
std::optional< std::string > shader_signature_sha256
Definition control_gpu_health_provider.hpp:64
std::optional< std::string > vellum_revision
Definition control_gpu_health_provider.hpp:62
bool seed_blank_first_frame
Definition control_gpu_health_provider.hpp:68
std::uint32_t event_capacity
Definition control_gpu_health_provider.hpp:66
std::string budget_id
Definition control_gpu_health_provider.hpp:53
std::optional< std::string > trace_evidence_id
Bounded same-instance trace identity emitted beside gpu_evidence_id.
Definition control_gpu_health_provider.hpp:52
std::optional< std::string > expected_target_signature_sha256
Definition control_gpu_health_provider.hpp:65
std::optional< double > threshold_ms
Definition control_gpu_health_provider.hpp:59
std::optional< std::string > threshold_source
Definition control_gpu_health_provider.hpp:60
std::chrono::milliseconds timeout
Definition control_gpu_health_provider.hpp:67
std::uint32_t budget_version
Definition control_gpu_health_provider.hpp:54
std::optional< std::string > gpu_evidence_id
Exact 32-lowercase-hex identifier also emitted by the correlated trace.
Definition control_gpu_health_provider.hpp:48
std::string campaign_id
Definition control_gpu_health_provider.hpp:39
MeasurementEndpoint measurement_endpoint
Visible Standalone/DAW/Forge adapters must keep the default and supply an independent compositor time...
Definition control_gpu_health_provider.hpp:44
std::string pulp_build_id
Definition control_gpu_health_provider.hpp:38
std::vector< ReferenceHost > reference_hosts
Definition control_gpu_health_provider.hpp:61
Definition control_gpu_health_provider.hpp:91
std::uint64_t distinct_color_count
Definition control_gpu_health_provider.hpp:150
AdapterIdentity adapter
Definition control_gpu_health_provider.hpp:100
std::string observed_signature_sha256
Definition control_gpu_health_provider.hpp:151
std::uint64_t non_transparent_pixel_count
Definition control_gpu_health_provider.hpp:149
CacheProvenance cache_provenance
Producer-observed cache boundary.
Definition control_gpu_health_provider.hpp:99
std::optional< double > upload_ms
Definition control_gpu_health_provider.hpp:137
std::optional< double > hidden_frame_ms
Definition control_gpu_health_provider.hpp:138
std::optional< std::string > observed_source_signature_sha256
Optional trace bindings supplied by a producer that can correlate the frame with exact source and sha...
Definition control_gpu_health_provider.hpp:154
std::optional< double > shader_compile_ms
Definition control_gpu_health_provider.hpp:136
bool capture_valid
Definition control_gpu_health_provider.hpp:101
std::optional< std::string > observed_shader_signature_sha256
Definition control_gpu_health_provider.hpp:155
std::optional< std::chrono::steady_clock::time_point > native_presented_at
Timestamp supplied by the trusted native compositor/presentation producer.
Definition control_gpu_health_provider.hpp:134
std::string lifecycle_id
Unique product editor lifecycle identity.
Definition control_gpu_health_provider.hpp:95
std::chrono::steady_clock::time_point observed_at
Definition control_gpu_health_provider.hpp:156
std::optional< CacheState > observed_cache_state
Definition control_gpu_health_provider.hpp:96
std::vector< std::string > missing_trace_categories
Required categories that the exact same-instance trace could not prove for this observation.
Definition control_gpu_health_provider.hpp:148
std::optional< std::string > trace_evidence_id
Must exactly match Config::trace_evidence_id, the identity emitted by the provider spans for this cam...
Definition control_gpu_health_provider.hpp:143
bool native_present_observed
Set only by a native lifecycle producer after the frame became visible.
Definition control_gpu_health_provider.hpp:110
bool content_floor_passed
Definition control_gpu_health_provider.hpp:102
std::optional< double > present_ms
Definition control_gpu_health_provider.hpp:139
std::optional< double > interaction_hitch_ms
Definition control_gpu_health_provider.hpp:135
bool gpu_submission_observed
Set only by a host producer with direct submission evidence.
Definition control_gpu_health_provider.hpp:105
Definition control_gpu_health_provider.hpp:32
std::string host_id
Definition control_gpu_health_provider.hpp:33
double refresh_rate_hz
Definition control_gpu_health_provider.hpp:34
Closed response returned by dev.pulp.gpu/health.read@1.
Definition health_read_result.hpp:128