Otherwise we need to include intel headers in generic code.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13831>
#include <unistd.h>
#include <i915_drm.h>
-#include <intel/perf/intel_perf_query.h>
+
+#include "dev/intel_device_info.h"
+#include "perf/intel_perf.h"
+#include "perf/intel_perf_query.h"
#include <pps/pps.h>
#include <pps/pps_algorithm.h>
case INTEL_PERF_COUNTER_DATA_TYPE_UINT64:
case INTEL_PERF_COUNTER_DATA_TYPE_UINT32:
case INTEL_PERF_COUNTER_DATA_TYPE_BOOL32:
- return (int64_t)counter.oa_counter_read_uint64(perf->cfg, query, &result);
+ return (int64_t)counter.oa_counter_read_uint64(perf->cfg, query, &perf->result);
break;
case INTEL_PERF_COUNTER_DATA_TYPE_DOUBLE:
case INTEL_PERF_COUNTER_DATA_TYPE_FLOAT:
- return counter.oa_counter_read_float(perf->cfg, query, &result);
+ return counter.oa_counter_read_float(perf->cfg, query, &perf->result);
break;
}
assert(counters.size() && "Failed to query counters");
// Clear accumulations
- intel_perf_query_result_clear(&result);
+ intel_perf_query_result_clear(&perf->result);
return true;
}
auto record_a = reinterpret_cast<const drm_i915_perf_record_header *>(records[0].data.data());
auto record_b = reinterpret_cast<const drm_i915_perf_record_header *>(records[1].data.data());
- intel_perf_query_result_accumulate_fields(&result,
+ intel_perf_query_result_accumulate_fields(&perf->result,
&perf->query.value(),
&perf->devinfo,
record_a + 1,
uint64_t IntelDriver::next()
{
// Reset accumulation
- intel_perf_query_result_clear(&result);
+ intel_perf_query_result_clear(&perf->result);
return gpu_next();
}
#include <pps/pps_driver.h>
-#include "intel_pps_perf.h"
-
namespace pps
{
+class IntelPerf;
+
/// @brief Variable length sequence of bytes generated by Intel Obstervation Architecture (OA)
struct PerfRecord {
/// Timestamp in the GPU clock domain
std::unique_ptr<IntelPerf> perf;
- // Accumulations are stored here
- struct intel_perf_query_result result = {};
-
// Gpu clock ID used to correlate GPU/CPU timestamps
uint32_t clock_id = 0;
};
#include <string>
#include <vector>
-#include <intel/dev/intel_device_info.h>
-#include <intel/perf/intel_perf.h>
-#include <intel/perf/intel_perf_query.h>
+#include "dev/intel_device_info.h"
+#include "perf/intel_perf.h"
+#include "perf/intel_perf_query.h"
namespace pps
{
struct intel_perf_context *ctx = nullptr;
struct intel_perf_config *cfg = nullptr;
+ // Accumulations are stored here
+ struct intel_perf_query_result result = {};
+
struct intel_device_info devinfo = {};
std::optional<struct intel_perf_query_info> query = std::nullopt;
pps_intel_lib = static_library(
'pps-intel',
sources: pps_intel_sources,
- include_directories: [inc_tool, inc_src, inc_include],
+ include_directories: [inc_tool, inc_src, inc_include, inc_intel],
link_with: [libintel_perf, libintel_dev],
dependencies: [dep_perfetto, dep_libdrm, idep_mesautil],
cpp_args: '-std=c++17'