1 // 2 // Copyright © 2020 Arm Ltd. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 #pragma once 6 7 #include "IBackendProfiling.hpp" 8 9 #include <common/include/Optional.hpp> 10 11 #include <vector> 12 13 namespace arm 14 { 15 namespace pipe 16 { 17 18 class IBackendProfilingContext 19 { 20 public: ~IBackendProfilingContext()21 virtual ~IBackendProfilingContext() 22 {} 23 virtual uint16_t RegisterCounters(uint16_t currentMaxGlobalCounterID) = 0; 24 virtual arm::pipe::Optional<std::string> ActivateCounters( 25 uint32_t capturePeriod, const std::vector<uint16_t>& counterIds) = 0; 26 virtual std::vector<arm::pipe::Timestamp> ReportCounterValues() = 0; 27 virtual bool EnableProfiling(bool flag) = 0; 28 virtual bool EnableTimelineReporting(bool flag) = 0; 29 }; 30 31 using IBackendProfilingContextUniquePtr = std::unique_ptr<IBackendProfilingContext>; 32 } // namespace pipe 33 } // namespace arm 34