diff options
author | Finn Williams <Finn.Williams@arm.com> | 2019-10-22 10:30:49 +0100 |
---|---|---|
committer | David Monahan <david.monahan@arm.com> | 2019-11-07 12:20:47 +0000 |
commit | e63a026bd987e78bdaa5b94c3e53201b62011faa (patch) | |
tree | cad6e7dcc7107b723ecc92116a96eda80100a99e /src/profiling/ProfilingUtils.cpp | |
parent | 362e03214ceceb95ec30d530ff84e8d9efc198d7 (diff) | |
download | armnn-e63a026bd987e78bdaa5b94c3e53201b62011faa.tar.gz |
IVGCVSW-3951 Create the timeline decoder
* Added ITimelineDecoder.h C interface
* Added an example implementation of ITimelineDecoder.h
* Added command handlers for the timeline directory and objects
* Added tests for the decoder implementation
* Changed ReadSwTraceMessage to take a const unsigned char*
so it can be used by the directory command handler
* Fixed some bugs in ProfilingUtils.cpp and related tests
Change-Id: If06faf1fe0274a8f022f194a6d3527f5ce5374c6
Signed-off-by: Finn Williams <Finn.Williams@arm.com>
Diffstat (limited to 'src/profiling/ProfilingUtils.cpp')
-rw-r--r-- | src/profiling/ProfilingUtils.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/profiling/ProfilingUtils.cpp b/src/profiling/ProfilingUtils.cpp index b649747df1..4dde235ecc 100644 --- a/src/profiling/ProfilingUtils.cpp +++ b/src/profiling/ProfilingUtils.cpp @@ -347,7 +347,7 @@ uint32_t CalculateSizeOfPaddedSwString(const std::string& str) } // Read TimelineMessageDirectoryPacket from given IPacketBuffer and offset -SwTraceMessage ReadSwTraceMessage(const IPacketBufferPtr& packetBuffer, unsigned int& offset) +SwTraceMessage ReadSwTraceMessage(const unsigned char* packetBuffer, unsigned int& offset) { BOOST_ASSERT(packetBuffer); @@ -369,7 +369,7 @@ SwTraceMessage ReadSwTraceMessage(const IPacketBufferPtr& packetBuffer, unsigned offset += uint32_t_size; std::vector<unsigned char> swTraceStringBuffer(swTraceDeclNameLength - 1); std::memcpy(swTraceStringBuffer.data(), - packetBuffer->GetReadableData() + offset, swTraceStringBuffer.size()); + packetBuffer + offset, swTraceStringBuffer.size()); swTraceMessage.name.assign(swTraceStringBuffer.begin(), swTraceStringBuffer.end()); // name @@ -380,7 +380,7 @@ SwTraceMessage ReadSwTraceMessage(const IPacketBufferPtr& packetBuffer, unsigned offset += uint32_t_size; swTraceStringBuffer.resize(swTraceUINameLength - 1); std::memcpy(swTraceStringBuffer.data(), - packetBuffer->GetReadableData() + offset, swTraceStringBuffer.size()); + packetBuffer + offset, swTraceStringBuffer.size()); swTraceMessage.uiName.assign(swTraceStringBuffer.begin(), swTraceStringBuffer.end()); // ui_name @@ -391,7 +391,7 @@ SwTraceMessage ReadSwTraceMessage(const IPacketBufferPtr& packetBuffer, unsigned offset += uint32_t_size; swTraceStringBuffer.resize(swTraceArgTypesLength - 1); std::memcpy(swTraceStringBuffer.data(), - packetBuffer->GetReadableData() + offset, swTraceStringBuffer.size()); + packetBuffer + offset, swTraceStringBuffer.size()); swTraceMessage.argTypes.assign(swTraceStringBuffer.begin(), swTraceStringBuffer.end()); // arg_types @@ -404,7 +404,7 @@ SwTraceMessage ReadSwTraceMessage(const IPacketBufferPtr& packetBuffer, unsigned offset += uint32_t_size; swTraceStringBuffer.resize(swTraceArgNamesLength - 1); std::memcpy(swTraceStringBuffer.data(), - packetBuffer->GetReadableData() + offset, swTraceStringBuffer.size()); + packetBuffer + offset, swTraceStringBuffer.size()); swTraceString.assign(swTraceStringBuffer.begin(), swTraceStringBuffer.end()); std::stringstream stringStream(swTraceString); @@ -536,12 +536,11 @@ TimelinePacketStatus WriteTimelineEntityBinaryPacket(uint64_t profilingGuid, unsigned int uint64_t_size = sizeof(uint64_t); // Calculate the length of the data (in bytes) - unsigned int timelineEntityPacketDataLength = uint64_t_size; // Profiling GUID + unsigned int timelineEntityPacketDataLength = uint32_t_size + uint64_t_size; // decl_id + Profiling GUID // Calculate the timeline binary packet size (in bytes) unsigned int timelineEntityPacketSize = 2 * uint32_t_size + // Header (2 words) - uint32_t_size + // decl_Id timelineEntityPacketDataLength; // Profiling GUID // Check whether the timeline binary packet fits in the given buffer @@ -744,6 +743,9 @@ TimelinePacketStatus WriteTimelineMessageDirectoryPackage(unsigned char* buffer, WriteUint32(buffer, offset, packetHeader.second); offset += uint32_t_size; + WriteUint32(buffer, offset, static_cast<uint32_t >(swTraceTimelineDirectoryMessages.size())); + offset += uint32_t_size; + for (unsigned int i = 0u; i < swTraceTimelineDirectoryMessages.size(); ++i) { // Write the timeline binary packet payload to the buffer |