Refactor TimestampPackets class

Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:
Bartosz Dunajski
2021-03-26 16:12:19 +00:00
committed by Compute-Runtime-Automation
parent 9fcf89aff6
commit 0bc04f3c31
12 changed files with 53 additions and 42 deletions

View File

@@ -32,7 +32,7 @@ constexpr uint32_t preferredPacketCount = 16u;
#pragma pack(1)
template <typename TSize>
class TimestampPackets : public TagTypeBase {
public:
protected:
struct Packet {
TSize contextStart = 1u;
TSize globalStart = 1u;
@@ -40,13 +40,14 @@ class TimestampPackets : public TagTypeBase {
TSize globalEnd = 1u;
};
public:
static constexpr GraphicsAllocation::AllocationType getAllocationType() {
return GraphicsAllocation::AllocationType::TIMESTAMP_PACKET_TAG_BUFFER;
}
static constexpr TagNodeType getTagNodeType() { return TagNodeType::TimestampPacket; }
size_t getSinglePacketSize() const { return sizeof(Packet); }
static constexpr size_t getSinglePacketSize() { return sizeof(Packet); }
bool isCompleted() const {
if (DebugManager.flags.DisableAtomicForPostSyncs.get()) {
@@ -77,10 +78,10 @@ class TimestampPackets : public TagTypeBase {
memcpy_s(&packets[packetIndex], sizeof(Packet), source, sizeof(Packet));
}
size_t getGlobalStartOffset() const { return ptrDiff(&packets[0].globalStart, this); }
size_t getContextStartOffset() const { return ptrDiff(&packets[0].contextStart, this); }
size_t getContextEndOffset() const { return ptrDiff(&packets[0].contextEnd, this); }
size_t getGlobalEndOffset() const { return ptrDiff(&packets[0].globalEnd, this); }
static constexpr size_t getGlobalStartOffset() { return offsetof(Packet, globalStart); }
static constexpr size_t getContextStartOffset() { return offsetof(Packet, contextStart); }
static constexpr size_t getContextEndOffset() { return offsetof(Packet, contextEnd); }
static constexpr size_t getGlobalEndOffset() { return offsetof(Packet, globalEnd); }
size_t getImplicitGpuDependenciesCountOffset() const { return ptrDiff(&implicitGpuDependenciesCount, this); }
uint64_t getContextStartValue(uint32_t packetIndex) const { return static_cast<uint64_t>(packets[packetIndex].contextStart); }

View File

@@ -113,7 +113,7 @@ void TagAllocator<TagType>::returnTag(TagNodeBase *node) {
template <typename TagType>
size_t TagNode<TagType>::getGlobalStartOffset() const {
if constexpr (TagType::getTagNodeType() == TagNodeType::TimestampPacket) {
return tagForCpuAccess->getGlobalStartOffset();
return TagType::getGlobalStartOffset();
} else {
UNRECOVERABLE_IF(true);
}
@@ -122,7 +122,7 @@ size_t TagNode<TagType>::getGlobalStartOffset() const {
template <typename TagType>
size_t TagNode<TagType>::getContextStartOffset() const {
if constexpr (TagType::getTagNodeType() == TagNodeType::TimestampPacket) {
return tagForCpuAccess->getContextStartOffset();
return TagType::getContextStartOffset();
} else {
UNRECOVERABLE_IF(true);
}
@@ -131,7 +131,7 @@ size_t TagNode<TagType>::getContextStartOffset() const {
template <typename TagType>
size_t TagNode<TagType>::getContextEndOffset() const {
if constexpr (TagType::getTagNodeType() == TagNodeType::TimestampPacket) {
return tagForCpuAccess->getContextEndOffset();
return TagType::getContextEndOffset();
} else {
UNRECOVERABLE_IF(true);
}
@@ -140,7 +140,7 @@ size_t TagNode<TagType>::getContextEndOffset() const {
template <typename TagType>
size_t TagNode<TagType>::getGlobalEndOffset() const {
if constexpr (TagType::getTagNodeType() == TagNodeType::TimestampPacket) {
return tagForCpuAccess->getGlobalEndOffset();
return TagType::getGlobalEndOffset();
} else {
UNRECOVERABLE_IF(true);
}
@@ -244,7 +244,7 @@ uint32_t TagNode<TagType>::getImplicitGpuDependenciesCount() const {
template <typename TagType>
size_t TagNode<TagType>::getSinglePacketSize() const {
if constexpr (TagType::getTagNodeType() == TagNodeType::TimestampPacket) {
return tagForCpuAccess->getSinglePacketSize();
return TagType::getSinglePacketSize();
} else {
UNRECOVERABLE_IF(true);
}