Mesa (main): intel/ds: isolate intel/perf from the pps-producer
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Nov 22 12:17:08 UTC 2021
Module: Mesa
Branch: main
Commit: 3d71e35857e87a58d82c63a3451e70107dbbd2ac
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3d71e35857e87a58d82c63a3451e70107dbbd2ac
Author: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Date: Tue Nov 9 00:33:33 2021 +0200
intel/ds: isolate intel/perf from the pps-producer
Otherwise we need to include intel headers in generic code.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Reviewed-by: Antonio Caggiano <antonio.caggiano at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13831>
---
src/intel/ds/intel_pps_driver.cc | 15 +++++++++------
src/intel/ds/intel_pps_driver.h | 7 ++-----
src/intel/ds/intel_pps_perf.h | 9 ++++++---
src/intel/ds/meson.build | 2 +-
4 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/src/intel/ds/intel_pps_driver.cc b/src/intel/ds/intel_pps_driver.cc
index 031097e22df..d90ba41631f 100644
--- a/src/intel/ds/intel_pps_driver.cc
+++ b/src/intel/ds/intel_pps_driver.cc
@@ -17,7 +17,10 @@
#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>
@@ -140,11 +143,11 @@ bool IntelDriver::init_perfcnt()
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;
}
@@ -166,7 +169,7 @@ bool IntelDriver::init_perfcnt()
assert(counters.size() && "Failed to query counters");
// Clear accumulations
- intel_perf_query_result_clear(&result);
+ intel_perf_query_result_clear(&perf->result);
return true;
}
@@ -314,7 +317,7 @@ uint64_t IntelDriver::gpu_next()
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,
@@ -333,7 +336,7 @@ uint64_t IntelDriver::gpu_next()
uint64_t IntelDriver::next()
{
// Reset accumulation
- intel_perf_query_result_clear(&result);
+ intel_perf_query_result_clear(&perf->result);
return gpu_next();
}
diff --git a/src/intel/ds/intel_pps_driver.h b/src/intel/ds/intel_pps_driver.h
index 4f0754c732a..404fc651588 100644
--- a/src/intel/ds/intel_pps_driver.h
+++ b/src/intel/ds/intel_pps_driver.h
@@ -9,11 +9,11 @@
#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
@@ -80,9 +80,6 @@ class IntelDriver : public Driver
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;
};
diff --git a/src/intel/ds/intel_pps_perf.h b/src/intel/ds/intel_pps_perf.h
index 2a6d93335a2..641fd4dec9d 100644
--- a/src/intel/ds/intel_pps_perf.h
+++ b/src/intel/ds/intel_pps_perf.h
@@ -11,9 +11,9 @@
#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
{
@@ -43,6 +43,9 @@ class IntelPerf
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;
diff --git a/src/intel/ds/meson.build b/src/intel/ds/meson.build
index 0da1a162c6d..b518bb7d901 100644
--- a/src/intel/ds/meson.build
+++ b/src/intel/ds/meson.build
@@ -12,7 +12,7 @@ pps_intel_sources = [
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'
More information about the mesa-commit
mailing list