Files
compute-runtime/shared/source/helpers/timestamp_packet_container.h
Compute-Runtime-Validation 8342c0ae2f Revert "fix: add cache flush as dependency for bcs ccs synchronization"
This reverts commit 5e57bb2a32.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2024-05-01 03:05:47 +02:00

46 lines
1.5 KiB
C++

/*
* Copyright (C) 2023-2024 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include "shared/source/helpers/non_copyable_or_moveable.h"
#include "shared/source/utilities/stackvec.h"
namespace NEO {
class CommandStreamReceiver;
class TagNodeBase;
class TimestampPacketContainer : public NonCopyableClass {
public:
TimestampPacketContainer() = default;
TimestampPacketContainer(TimestampPacketContainer &&) = default;
TimestampPacketContainer &operator=(TimestampPacketContainer &&) = default;
MOCKABLE_VIRTUAL ~TimestampPacketContainer();
const StackVec<TagNodeBase *, 32u> &peekNodes() const { return timestampPacketNodes; }
void add(TagNodeBase *timestampPacketNode);
void swapNodes(TimestampPacketContainer &timestampPacketContainer);
void assignAndIncrementNodesRefCounts(const TimestampPacketContainer &inputTimestampPacketContainer);
void makeResident(CommandStreamReceiver &commandStreamReceiver);
void moveNodesToNewContainer(TimestampPacketContainer &timestampPacketContainer);
void releaseNodes();
protected:
StackVec<TagNodeBase *, 32u> timestampPacketNodes;
};
struct TimestampPacketDependencies : public NonCopyableClass {
TimestampPacketContainer cacheFlushNodes;
TimestampPacketContainer previousEnqueueNodes;
TimestampPacketContainer barrierNodes;
TimestampPacketContainer auxToNonAuxNodes;
TimestampPacketContainer nonAuxToAuxNodes;
void moveNodesToNewContainer(TimestampPacketContainer &timestampPacketContainer);
};
} // namespace NEO