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