Skip to content

Commit 51dccca

Browse files
Create timestamp packet container for events if command queue created it
Related-To: NEO-5120 Change-Id: I00505647343da1876b25290b95a2009b5e4041d6 Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
1 parent 9f9bf38 commit 51dccca

File tree

4 files changed

+21
-1
lines changed

4 files changed

+21
-1
lines changed

opencl/source/command_queue/command_queue.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,10 @@ class CommandQueue : public BaseObject<_cl_command_queue> {
282282
return throttle;
283283
}
284284

285+
const TimestampPacketContainer *getTimestampPacketContainer() const {
286+
return timestampPacketContainer.get();
287+
}
288+
285289
const std::vector<uint64_t> &getPropertiesVector() const { return propertiesVector; }
286290

287291
void enqueueBlockedMapUnmapOperation(const cl_event *eventWaitList,

opencl/source/event/event.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ Event::Event(
6565

6666
if ((this->ctx == nullptr) && (cmdQueue != nullptr)) {
6767
this->ctx = &cmdQueue->getContext();
68-
if (cmdQueue->getGpgpuCommandStreamReceiver().peekTimestampPacketWriteEnabled()) {
68+
if (cmdQueue->getTimestampPacketContainer()) {
6969
timestampPacketContainer = std::make_unique<TimestampPacketContainer>();
7070
}
7171
}

opencl/test/unit_test/event/event_tests.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1555,3 +1555,17 @@ TEST(EventsDebug, givenEventWhenTrackingOfParentsIsOffThenDoNotTrackParents) {
15551555
EXPECT_EQ(0u, parentEvents2.size());
15561556
event.setStatus(CL_COMPLETE);
15571557
}
1558+
1559+
TEST(CommandQueue, givenTimestampPacketWritesDisabledAndQueueHasTimestampPacketContainerThenCreateTheContainerForEvent) {
1560+
DebugManagerStateRestore stateRestore;
1561+
DebugManager.flags.EnableTimestampPacket.set(0);
1562+
1563+
MockContext context{};
1564+
MockCommandQueue queue{&context, context.getDevice(0), nullptr};
1565+
ASSERT_FALSE(queue.getGpgpuCommandStreamReceiver().peekTimestampPacketWriteEnabled());
1566+
ASSERT_EQ(nullptr, queue.timestampPacketContainer.get());
1567+
queue.timestampPacketContainer = std::make_unique<TimestampPacketContainer>();
1568+
1569+
MockEvent<Event> event{&queue, CL_COMMAND_MARKER, 0, 0};
1570+
EXPECT_NE(nullptr, event.timestampPacketContainer);
1571+
}

opencl/test/unit_test/helpers/timestamp_packet_tests.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ struct TimestampPacketTests : public TimestampPacketSimpleTests {
5757
};
5858

5959
void SetUp() override {
60+
DebugManager.flags.EnableTimestampPacket.set(1);
61+
6062
executionEnvironment = platform()->peekExecutionEnvironment();
6163
executionEnvironment->prepareRootDeviceEnvironments(2);
6264
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {

0 commit comments

Comments
 (0)