mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 06:40:11 +01:00
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@intel.com> Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13831>
This commit is contained in:
parent
ed9116e545
commit
3d71e35857
4 changed files with 18 additions and 15 deletions
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue