mesa/src/panfrost/ds/pan_pps_perf.h

51 lines
991 B
C++

/*
* Copyright © 2021 Collabora, Ltd.
* Author: Antonio Caggiano <antonio.caggiano@collabora.com>
*
* SPDX-License-Identifier: MIT
*/
#pragma once
struct panfrost_device;
struct panfrost_perf;
namespace pps
{
class PanfrostDevice
{
public:
PanfrostDevice(int fd);
~PanfrostDevice();
PanfrostDevice(const PanfrostDevice &) = delete;
PanfrostDevice &operator=(const PanfrostDevice &) = delete;
PanfrostDevice(PanfrostDevice&&);
PanfrostDevice& operator=(PanfrostDevice&&);
void *ctx = nullptr;
struct panfrost_device* dev = nullptr;
};
class PanfrostPerf
{
public:
PanfrostPerf(const PanfrostDevice& dev);
~PanfrostPerf();
PanfrostPerf(const PanfrostPerf &) = delete;
PanfrostPerf &operator=(const PanfrostPerf &) = delete;
PanfrostPerf(PanfrostPerf&&);
PanfrostPerf& operator=(PanfrostPerf&&);
int enable() const;
void disable() const;
int dump() const;
struct panfrost_perf *perf = nullptr;
};
} // namespace pps