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