Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
dpr_measurement.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4#include <optional>
5#include <filesystem>
6#include <string>
7#include <string_view>
8#include <vector>
9
11
12inline constexpr std::string_view kDprCellRequestSchema =
13 "pulp.gpu-dpr-cell-request.v1";
14inline constexpr std::string_view kDprCellReceiptSchema =
15 "pulp.gpu-dpr-cell-receipt.v1";
16
18 struct FidelityRoi {
19 double x = 0.0;
20 double y = 0.0;
21 double width = 0.0;
22 double height = 0.0;
23 bool available = false;
24 };
25 std::string attempt_nonce;
26 std::uint32_t attempt_number = 0;
27 std::string cell_key;
28 std::string scenario_id;
29 std::string scenario_kind;
30 std::string mode;
31 double requested_dpr = 0.0;
32 std::filesystem::path pulp_source_root;
33 std::filesystem::path cell_directory;
34 std::string source;
36 std::string pulp_sha;
37 std::uint32_t logical_width = 0;
38 std::uint32_t logical_height = 0;
39 double logical_input_x = 0.0;
40 double logical_input_y = 0.0;
44 std::uint32_t warmups = 0;
45 std::uint32_t measured_trials = 0;
50};
51
54 std::string outcome{"inconclusive"};
55 std::string reason;
56 std::vector<std::string> dependencies;
57};
58
60std::optional<DprMeasurementRequest>
61parse_dpr_measurement_request(std::string_view json, std::string* error = nullptr);
62
66
68std::string to_json(const DprMeasurementDisposition& result, bool pretty = false);
69
73 const std::filesystem::path& request_path,
74 const std::filesystem::path& receipt_path,
75 const std::filesystem::path& producer_path,
76 std::string* error = nullptr);
77
79 const std::filesystem::path& output_path,
80 const std::filesystem::path& producer_path,
81 std::string* error = nullptr);
82
83} // namespace pulp::tooling::gpu_probe
Bounded recipe definitions, owned evidence, and native GPU probe runs.
Definition dpr_measurement.hpp:10
constexpr std::string_view kDprCellRequestSchema
Definition dpr_measurement.hpp:12
constexpr std::string_view kDprCellReceiptSchema
Definition dpr_measurement.hpp:14
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.
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 to_json(const DprMeasurementDisposition &result, bool pretty=false)
Serialize the cell receipt consumed by the strict Python adapter.
DprMeasurementDisposition evaluate_dpr_measurement_readiness(const DprMeasurementRequest &request)
Report current product-measurement readiness without inventing counters.
@ json
Definition probe_result.hpp:84
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.
std::string reason
Definition dpr_measurement.hpp:55
DprMeasurementRequest request
Definition dpr_measurement.hpp:53
std::string outcome
Definition dpr_measurement.hpp:54
std::vector< std::string > dependencies
Definition dpr_measurement.hpp:56
double height
Definition dpr_measurement.hpp:22
double width
Definition dpr_measurement.hpp:21
Definition dpr_measurement.hpp:17
std::string source
Definition dpr_measurement.hpp:34
double requested_dpr
Definition dpr_measurement.hpp:31
double logical_input_x
Definition dpr_measurement.hpp:39
std::uint32_t gpu_timer_calibration_trials
Definition dpr_measurement.hpp:47
std::string cell_key
Definition dpr_measurement.hpp:27
double logical_input_y
Definition dpr_measurement.hpp:40
std::filesystem::path pulp_source_root
Definition dpr_measurement.hpp:32
FidelityRoi small_text_roi
Definition dpr_measurement.hpp:42
std::filesystem::path cell_directory
Definition dpr_measurement.hpp:33
std::uint32_t logical_height
Definition dpr_measurement.hpp:38
std::string attempt_nonce
Definition dpr_measurement.hpp:25
std::uint32_t fresh_process_first_frame_trials
Definition dpr_measurement.hpp:46
std::string logical_input_target
Definition dpr_measurement.hpp:41
std::uint32_t measured_trials
Definition dpr_measurement.hpp:45
FidelityRoi thin_stroke_roi
Definition dpr_measurement.hpp:43
std::string adaptive_profile_json
Definition dpr_measurement.hpp:49
std::string expected_content_digest
Definition dpr_measurement.hpp:35
std::string scenario_id
Definition dpr_measurement.hpp:28
std::string scenario_kind
Definition dpr_measurement.hpp:29
std::uint32_t gpu_timer_extra_work_multiplier
Definition dpr_measurement.hpp:48
std::uint32_t warmups
Definition dpr_measurement.hpp:44
std::string pulp_sha
Definition dpr_measurement.hpp:36
std::string mode
Definition dpr_measurement.hpp:30
std::uint32_t attempt_number
Definition dpr_measurement.hpp:26
std::uint32_t logical_width
Definition dpr_measurement.hpp:37