|
| enum class | MeasurementStatus { complete
, incomplete
, unavailable
, unverified
} |
| enum class | MeasurementEndpoint { native_compositor_presentation
, headless_capture_complete
} |
| enum class | BudgetStatus { ratified
, unratified
} |
| enum class | CacheState { cold
, warm
} |
| enum class | CacheProvenance { unknown
, fresh_process
, explicit_cache_reset
, same_process_editor_reopen
} |
| enum class | VisibleState { prepared
, fallback
, unknown
} |
| enum class | PipelineContribution { material
, not_material
, unattributed
, unverified
} |
| enum class | CausalAttribution { complete
, incomplete
, unavailable
, unverified
} |
| enum class | StartupDisposition { queue_b4
, queue_b4_investigation
, no_change
} |
| enum class | Verdict { pass
, fail
, unavailable
, unverified
} |
| | Four-state outcome that keeps missing or inconclusive evidence out of pass. More...
|
| enum class | Stage {
configuration
, adapter
, shader_compile
, pipeline_create
,
render
, submit
, readback
, content
,
compute
, device_state
} |
| | Ordered semantic stage described by one EvidenceEvent. More...
|
| enum class | AdapterClass { hardware
, software
, null_adapter
, unknown
} |
| | Adapter class proven by native identity, never inferred from backend alone. More...
|
| enum class | HealthState {
healthy
, failed
, unavailable
, unverified
,
lost
} |
| | Aggregate device state derived from required probe evidence. More...
|
| enum class | IdentityStatus { authentic
, unverified
, unavailable
} |
| | Authenticity state for the optional native adapter identity fields. More...
|
|
| std::unique_ptr< HealthProvider > | make_default_health_provider (HealthProbeOptions options={}) |
| | Create the native blocking provider and transfer sole ownership to the caller.
|
| HealthResult | run_health_check (HealthProvider &provider, bool render_requested=true) |
| | Execute the requested probes serially and derive one closed HealthResult.
|
| int | exit_code (const HealthResult &result) |
| | Map pass to 0, fail to 1, and unavailable or unverified to 2.
|
| std::string | render_human (const HealthResult &result) |
| | Render an owning human-readable report; machine consumers use to_json().
|
| std::string_view | to_string (MeasurementStatus value) |
| std::string_view | to_string (MeasurementEndpoint value) |
| std::string_view | to_string (BudgetStatus value) |
| std::string_view | to_string (CacheState value) |
| std::string_view | to_string (CacheProvenance value) |
| std::string_view | to_string (VisibleState value) |
| std::string_view | to_string (PipelineContribution value) |
| std::string_view | to_string (CausalAttribution value) |
| std::string_view | to_string (StartupDisposition value) |
| bool | validate (const HealthReadResult &result, std::string *error=nullptr) |
| | Validates bounds and cross-field claims that JSON Schema cannot express, including percentile derivation, capture integrity, instrumentation coverage, signature proof, diagnostic-code bindings, and final disposition evidence.
|
| std::string | to_json (const HealthReadResult &result, bool pretty=false) |
| constexpr bool | is_known_evidence_code (std::string_view code) |
| std::string_view | to_string (Verdict value) |
| | Return the canonical lowercase schema spelling from static storage.
|
| std::string_view | to_string (Stage value) |
| std::string_view | to_string (AdapterClass value) |
| std::string_view | to_string (HealthState value) |
| std::string_view | to_string (IdentityStatus value) |
| std::optional< Verdict > | verdict_from_string (std::string_view value) |
| | Parse an exact canonical enum spelling; unknown text returns std::nullopt.
|
| std::optional< Stage > | stage_from_string (std::string_view value) |
| std::optional< AdapterClass > | adapter_class_from_string (std::string_view value) |
| std::optional< HealthState > | health_state_from_string (std::string_view value) |
| std::optional< IdentityStatus > | identity_status_from_string (std::string_view value) |
| bool | validate (const HealthResult &result, std::string *error=nullptr) |
| | Validate bounds and cross-field relationships that JSON Schema cannot express.
|
| std::string | to_json (const HealthResult &result, bool pretty=false) |
| | Serialize one validated or diagnostic result to the closed v1 JSON shape.
|
| std::optional< HealthResult > | from_json (std::string_view json, std::string *error=nullptr) |
| | Parse only the v1 closed shape and apply validate() before returning a value.
|
Bounded, typed evidence returned by Pulp GPU health diagnostics.
- Ownership and lifetime
- Result objects own their strings, optionals, and vectors. Parsing returns an owning value. Views returned by to_string refer to static storage and must not be freed. Validation and serialization retain no references to inputs.
- Threading and real-time safety
- The value and serialization APIs provide no internal synchronization and may allocate. Use separate result objects on concurrent threads or synchronize shared access. Provider probes acquire GPU resources and block for submitted work, so every API in this namespace belongs on a control or worker thread, never an audio callback or another real-time thread.
- Determinism and units
- Event sequences are zero-based and contiguous across a result. Pixel and color fields are integer counts; fingerprints are opaque unsigned values. Optional measurements distinguish an absent observation from an observed false or zero. Serialization preserves each version's closed vocabulary.
- Results, unavailable evidence, and errors
- pass and fail mean requested work completed and was measured. unavailable means required work could not be acquired or executed, while unverified means the available evidence cannot support a claim. Neither is a pass. Validators and parsers return failure without throwing for malformed contract data and write a human diagnostic when an error output is supplied.
| bool pulp::tooling::gpu_health::validate |
( |
const HealthReadResult & | result, |
|
|
std::string * | error = nullptr ) |
Validates bounds and cross-field claims that JSON Schema cannot express, including percentile derivation, capture integrity, instrumentation coverage, signature proof, diagnostic-code bindings, and final disposition evidence.
Missing trace categories never masquerade as event loss.