|
| enum class | Verdict { pass
, fail
, unavailable
, unverified
} |
| | Four-state recipe outcome that never folds missing evidence into success. More...
|
| enum class | AdapterPolicy { hardware_required
, hardware_preferred
, any_supported
} |
| | Minimum adapter class accepted by a recipe definition. More...
|
| enum class | AdapterClass { hardware
, software
, null_adapter
, unknown
} |
| | Adapter class proven by native identity, never inferred from backend alone. More...
|
| enum class | IdentityStatus { authentic
, unverified
, unavailable
} |
| | Authenticity state for the optional native adapter identity fields. More...
|
| enum class | ArtifactKind { json
, image
, numeric_samples
, trace
} |
| | Machine-readable content kind for a declared artifact. More...
|
|
| std::optional< DprMeasurementRequest > | parse_dpr_measurement_request (std::string_view json, std::string *error=nullptr) |
| | Parse the bounded runner request fields owned by the native producer.
|
| DprMeasurementDisposition | evaluate_dpr_measurement_readiness (const DprMeasurementRequest &request) |
| | Report current product-measurement readiness without inventing counters.
|
| std::string | to_json (const DprMeasurementDisposition &result, bool pretty=false) |
| | Serialize the cell receipt consumed by the strict Python adapter.
|
| int | run_dpr_measurement (const DprMeasurementRequest &request, const std::filesystem::path &request_path, const std::filesystem::path &receipt_path, const std::filesystem::path &producer_path, std::string *error=nullptr) |
| | Execute a real bounded measurement.
|
| int | run_dpr_first_frame_trial (const DprMeasurementRequest &request, const std::filesystem::path &output_path, const std::filesystem::path &producer_path, std::string *error=nullptr) |
| std::string_view | to_string (Verdict value) |
| | Return the canonical lowercase schema spelling from static storage.
|
| std::string_view | to_string (AdapterPolicy value) |
| std::string_view | to_string (AdapterClass value) |
| std::string_view | to_string (IdentityStatus value) |
| std::string_view | to_string (ArtifactKind value) |
| const RecipeDefinition * | find_recipe (std::string_view id) |
| | Find a borrowed process-lifetime definition, or return null for an unknown ID.
|
| bool | is_recipe_callable (std::string_view id) |
| | Return whether this build can execute the named registered recipe.
|
| std::span< const RecipeDefinition > | recipes () |
| | Return a borrowed span over the immutable process-lifetime recipe registry.
|
| std::string_view | recipe_catalog_json () |
| | Return the configure-time embedded canonical catalog bytes.
|
| std::optional< std::string > | recipe_discovery_json (std::optional< std::string_view > recipe_id=std::nullopt, std::optional< std::string_view > symptom=std::nullopt) |
| | Project the canonical catalog as a discovery envelope for an optional filter.
|
| bool | validate (const ProbeResult &result, std::string *error=nullptr) |
| | Validate bounds, recipe identity, ordered pass aggregation, and artifacts.
|
| std::string | to_json (const ProbeResult &result, bool pretty=false) |
| | Serialize without implicitly validating the result.
|
| std::optional< ProbeResult > | from_json (std::string_view json, std::string *error=nullptr) |
| | Parse the exact closed v1 shape and validate it before returning a value.
|
| std::string | render_human (const ProbeResult &result) |
| | Render an owning human-readable report; machine consumers use to_json().
|
| int | exit_code (const ProbeResult &result) |
| | Map pass to 0, fail to 1, and unavailable or unverified to 2.
|
| bool | validate (const RecipeRun &run, std::string *error=nullptr) |
| | Validate result semantics and every descriptor/payload byte and digest binding.
|
| RecipeRun | run_renderer3d_recipe (const RunOptions &options={}) |
| | Run the blocking deterministic Renderer3D/readback recipe.
|
| RecipeRun | run_gpu_compute_magnitude_recipe (const RunOptions &options={}) |
| | Run the blocking deterministic GPU magnitude recipe and CPU oracle.
|
| RecipeRun | run_gpu_audio_stft_recipe (const RunOptions &options={}) |
| | Run one blocking GPU STFT frame and its CPU oracle.
|
| RecipeRun | run_threejs_multi_pass_recipe (const RunOptions &options={}, std::optional< std::string > threejs_runtime_root=std::nullopt) |
| | Run the blocking deterministic multi-pass recipe through a Three.js runtime.
|
|
| constexpr std::string_view | kDprCellRequestSchema |
| constexpr std::string_view | kDprCellReceiptSchema |
| constexpr std::string_view | kSchema = "pulp.gpu-probe-result.v1" |
| | Closed JSON schema identity for ProbeResult.
|
| constexpr std::uint32_t | kVersion = 1 |
| | Schema version serialized in ProbeResult::version.
|
| constexpr std::uint32_t | kMaxDimension = 4096 |
| | Maximum width or height in pixels for a registered recipe.
|
| constexpr std::uint64_t | kMaxWorkItems = 1'048'576 |
| | Maximum unitless work-item count for a registered recipe.
|
| constexpr std::uint32_t | kMaxNumericSamples = 4096 |
| | Maximum number of numeric samples retained in one result.
|
| constexpr std::uint32_t | kMaxArtifacts = 16 |
| | Maximum number of artifacts retained in one result.
|
| constexpr std::uint64_t | kMaxArtifactBytes = 16 * 1024 * 1024 |
| | Maximum declared size in bytes for one artifact.
|
| constexpr std::uint64_t | kMaxTotalArtifactBytes = 64 * 1024 * 1024 |
| | Maximum combined declared artifact size in bytes for one result.
|
| constexpr std::array | kRecipeIds |
Bounded recipe definitions, owned evidence, and native GPU probe runs.
- Ownership and lifetime
- Probe results and recipe runs own their strings, vectors, and artifact bytes. find_recipe pointers, recipes spans, and the string views inside each RecipeDefinition refer to a process-lifetime static registry and must not be freed or retained after module unload. Validators and serializers retain no references to caller-owned inputs.
- Threading and real-time safety
- Model, parsing, and serialization functions may allocate and provide no synchronization for shared objects. Native recipe functions acquire devices, submit work, wait for mapping/readback, and may access artifact runtimes. Run them on an offline control or worker thread, never an audio callback or another real-time thread.
- Determinism and units
- Recipes bind fixed sources, seeds, dimensions, ordered semantic passes, and independent oracles. Width and height are pixels, work_items and sample counts are unitless counts, artifact sizes are bytes, SHA-256 values are lowercase hexadecimal, and tolerances use the recipe's numeric sample units. GPU scheduling time is not inferred from these result fields.
- Results, unavailable evidence, and errors
- pass and fail mean the requested recipe executed and reached its oracle. unavailable means the device, feature, runtime, or other required evidence could not be acquired; unverified means the evidence cannot support a claim. Neither is a pass. Validation and parsing report human diagnostics through optional error outputs, while stable automation uses verdicts, registered pass codes, and process exit codes.