Skip to content

Commit 43fd32b

Browse files
Enable aggregating command buffers with multiple osContexts
- Store inspectionId for each osContext in GraphicsAllocation - Pass osContextId to aggregateCommandBuffer and use it to select inspectionId Change-Id: I2c377ad7577a8c882cc89c1205430cb581c2c0d5 Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
1 parent a35e3b7 commit 43fd32b

File tree

8 files changed

+102
-30
lines changed

8 files changed

+102
-30
lines changed

runtime/command_stream/command_stream_receiver_hw.inl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -505,7 +505,7 @@ inline void CommandStreamReceiverHw<GfxFamily>::flushBatchedSubmissions() {
505505

506506
auto &commandBufferList = this->submissionAggregator->peekCmdBufferList();
507507
if (!commandBufferList.peekIsEmpty()) {
508-
auto &device = commandBufferList.peekHead()->device;
508+
const auto totalMemoryBudget = static_cast<size_t>(commandBufferList.peekHead()->device.getDeviceInfo().globalMemSize / 2);
509509

510510
ResidencyContainer surfacesForSubmit;
511511
ResourcePackage resourcePackage;
@@ -515,7 +515,7 @@ inline void CommandStreamReceiverHw<GfxFamily>::flushBatchedSubmissions() {
515515

516516
while (!commandBufferList.peekIsEmpty()) {
517517
size_t totalUsedSize = 0u;
518-
this->submissionAggregator->aggregateCommandBuffers(resourcePackage, totalUsedSize, (size_t)device.getDeviceInfo().globalMemSize * 5 / 10);
518+
this->submissionAggregator->aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget, osContext->getContextId());
519519
auto primaryCmdBuffer = commandBufferList.removeFrontOne();
520520
auto nextCommandBuffer = commandBufferList.peekHead();
521521
auto currentBBendLocation = primaryCmdBuffer->batchBufferEndLocation;

runtime/command_stream/submissions_aggregator.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ void OCLRT::SubmissionAggregator::recordCommandBuffer(CommandBuffer *commandBuff
1313
this->cmdBuffers.pushTailOne(*commandBuffer);
1414
}
1515

16-
void OCLRT::SubmissionAggregator::aggregateCommandBuffers(ResourcePackage &resourcePackage, size_t &totalUsedSize, size_t totalMemoryBudget) {
16+
void OCLRT::SubmissionAggregator::aggregateCommandBuffers(ResourcePackage &resourcePackage, size_t &totalUsedSize, size_t totalMemoryBudget, uint32_t osContextId) {
1717
auto primaryCommandBuffer = this->cmdBuffers.peekHead();
1818
auto currentInspection = this->inspectionId;
1919

@@ -27,8 +27,8 @@ void OCLRT::SubmissionAggregator::aggregateCommandBuffers(ResourcePackage &resou
2727

2828
//primary command buffers must fix to budget
2929
for (auto &graphicsAllocation : primaryCommandBuffer->surfaces) {
30-
if (graphicsAllocation->inspectionId < currentInspection) {
31-
graphicsAllocation->inspectionId = currentInspection;
30+
if (graphicsAllocation->getInspectionId(osContextId) < currentInspection) {
31+
graphicsAllocation->setInspectionId(currentInspection, osContextId);
3232
resourcePackage.push_back(graphicsAllocation);
3333
totalUsedSize += graphicsAllocation->getUnderlyingBufferSize();
3434
}
@@ -62,16 +62,16 @@ void OCLRT::SubmissionAggregator::aggregateCommandBuffers(ResourcePackage &resou
6262
if (graphicsAllocation == primaryBatchGraphicsAllocation) {
6363
continue;
6464
}
65-
if (graphicsAllocation->inspectionId < currentInspection) {
66-
graphicsAllocation->inspectionId = currentInspection;
65+
if (graphicsAllocation->getInspectionId(osContextId) < currentInspection) {
66+
graphicsAllocation->setInspectionId(currentInspection, osContextId);
6767
newResources.push_back(graphicsAllocation);
6868
nextCommandBufferNewResourcesSize += graphicsAllocation->getUnderlyingBufferSize();
6969
}
7070
}
7171

7272
if (nextCommandBuffer->batchBuffer.commandBufferAllocation && (nextCommandBuffer->batchBuffer.commandBufferAllocation != primaryBatchGraphicsAllocation)) {
73-
if (nextCommandBuffer->batchBuffer.commandBufferAllocation->inspectionId < currentInspection) {
74-
nextCommandBuffer->batchBuffer.commandBufferAllocation->inspectionId = currentInspection;
73+
if (nextCommandBuffer->batchBuffer.commandBufferAllocation->getInspectionId(osContextId) < currentInspection) {
74+
nextCommandBuffer->batchBuffer.commandBufferAllocation->setInspectionId(currentInspection, osContextId);
7575
newResources.push_back(nextCommandBuffer->batchBuffer.commandBufferAllocation);
7676
nextCommandBufferNewResourcesSize += nextCommandBuffer->batchBuffer.commandBufferAllocation->getUnderlyingBufferSize();
7777
}

runtime/command_stream/submissions_aggregator.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ struct BatchBuffer {
4343
};
4444

4545
struct CommandBuffer : public IDNode<CommandBuffer> {
46-
CommandBuffer(Device &);
46+
CommandBuffer(Device &device);
4747
ResidencyContainer surfaces;
4848
BatchBuffer batchBuffer;
4949
void *batchBufferEndLocation = nullptr;
@@ -62,7 +62,7 @@ using ResourcePackage = StackVec<GraphicsAllocation *, 128>;
6262
class SubmissionAggregator {
6363
public:
6464
void recordCommandBuffer(CommandBuffer *commandBuffer);
65-
void aggregateCommandBuffers(ResourcePackage &resourcePackage, size_t &totalUsedSize, size_t totalMemoryBudget);
65+
void aggregateCommandBuffers(ResourcePackage &resourcePackage, size_t &totalUsedSize, size_t totalMemoryBudget, uint32_t osContextId);
6666
CommandBufferList &peekCmdBufferList() { return cmdBuffers; }
6767

6868
protected:

runtime/memory_manager/graphics_allocation.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ class GraphicsAllocation : public IDNode<GraphicsAllocation> {
123123
void updateTaskCount(uint32_t newTaskCount, uint32_t contextId);
124124
uint32_t getTaskCount(uint32_t contextId) const { return usageInfos[contextId].taskCount; }
125125
void resetTaskCount(uint32_t contextId) { updateTaskCount(objectNotUsed, contextId); }
126+
uint32_t getInspectionId(uint32_t contextId) { return usageInfos[contextId].inspectionId; }
127+
void setInspectionId(uint32_t newInspectionId, uint32_t contextId) { usageInfos[contextId].inspectionId = newInspectionId; }
126128

127129
void updateResidencyTaskCount(uint32_t newTaskCount, uint32_t contextId) { usageInfos[contextId].residencyTaskCount = newTaskCount; }
128130
uint32_t getResidencyTaskCount(uint32_t contextId) const { return usageInfos[contextId].residencyTaskCount; }
@@ -135,6 +137,7 @@ class GraphicsAllocation : public IDNode<GraphicsAllocation> {
135137
struct UsageInfo {
136138
uint32_t taskCount = objectNotUsed;
137139
uint32_t residencyTaskCount = objectNotResident;
140+
uint32_t inspectionId = 0u;
138141
};
139142

140143
//this variable can only be modified from SubmissionAggregator
@@ -148,7 +151,6 @@ class GraphicsAllocation : public IDNode<GraphicsAllocation> {
148151
uint32_t reuseCount = 0; // GraphicsAllocation can be reused by shared resources
149152
bool evictable = true;
150153
MemoryPool::Type memoryPool = MemoryPool::MemoryNull;
151-
uint32_t inspectionId = 0;
152154
AllocationType allocationType = AllocationType::UNKNOWN;
153155
bool aubWritable = true;
154156
bool allocDumpable = false;

unit_tests/command_stream/submissions_aggregator_tests.cpp

Lines changed: 73 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,13 @@ TEST(SubmissionsAggregator, givenTwoCommandBuffersWhenMergeResourcesIsCalledThen
7272
size_t totalMemoryBudget = -1;
7373
ResourcePackage resourcePackage;
7474

75-
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget);
75+
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget, 0u);
7676

7777
EXPECT_EQ(0u, totalUsedSize);
7878

7979
submissionsAggregator.recordCommandBuffer(cmdBuffer);
8080

81-
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget);
81+
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget, 0u);
8282

8383
EXPECT_EQ(15u, totalUsedSize);
8484
totalUsedSize = 0;
@@ -92,7 +92,7 @@ TEST(SubmissionsAggregator, givenTwoCommandBuffersWhenMergeResourcesIsCalledThen
9292
EXPECT_EQ(5u, cmdBuffer->surfaces.size());
9393
EXPECT_EQ(4u, cmdBuffer2->surfaces.size());
9494

95-
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget);
95+
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget, 0u);
9696

9797
//command buffer 2 is aggregated to command buffer 1
9898
auto primaryBatchInstepctionId = submissionsAggregator.peekCommandBuffersList().peekHead()->inspectionId;
@@ -153,7 +153,7 @@ TEST(SubmissionsAggregator, givenSubmissionAggregatorWhenThreeCommandBuffersAreS
153153
EXPECT_EQ(4u, cmdBuffer2->surfaces.size());
154154
EXPECT_EQ(2u, cmdBuffer3->surfaces.size());
155155

156-
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget);
156+
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget, 0u);
157157

158158
//command buffer 3 and 2 is aggregated to command buffer 1
159159
auto primaryBatchInstepctionId = submissionsAggregator.peekCommandBuffersList().peekHead()->inspectionId;
@@ -207,7 +207,7 @@ TEST(SubmissionsAggregator, givenMultipleCommandBuffersWhenTheyAreAggreagateWith
207207
submissionsAggregator.recordCommandBuffer(cmdBuffer2);
208208
submissionsAggregator.recordCommandBuffer(cmdBuffer3);
209209

210-
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget);
210+
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget, 0u);
211211

212212
//command buffer 2 is aggregated to command buffer 1, comand buffer 3 becomes command buffer 2
213213
EXPECT_EQ(submissionsAggregator.peekCommandBuffersList().peekHead(), cmdBuffer);
@@ -263,7 +263,7 @@ TEST(SubmissionsAggregator, givenMultipleCommandBuffersWhenAggregateIsCalledMult
263263
submissionsAggregator.recordCommandBuffer(cmdBuffer2);
264264
submissionsAggregator.recordCommandBuffer(cmdBuffer3);
265265

266-
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget);
266+
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget, 0u);
267267

268268
//command buffers not aggregated due to too low limit
269269
EXPECT_EQ(submissionsAggregator.peekCommandBuffersList().peekHead(), cmdBuffer);
@@ -275,7 +275,7 @@ TEST(SubmissionsAggregator, givenMultipleCommandBuffersWhenAggregateIsCalledMult
275275
resourcePackage.clear();
276276
totalUsedSize = 0;
277277

278-
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget);
278+
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget, 0u);
279279
//all cmd buffers are merged to 1
280280
EXPECT_EQ(cmdBuffer3->inspectionId, cmdBuffer2->inspectionId);
281281
EXPECT_EQ(cmdBuffer->inspectionId, cmdBuffer2->inspectionId);
@@ -313,7 +313,7 @@ TEST(SubmissionsAggregator, givenMultipleCommandBuffersWithDifferentGraphicsAllo
313313
submissionsAggregator.recordCommandBuffer(cmdBuffer);
314314
submissionsAggregator.recordCommandBuffer(cmdBuffer2);
315315

316-
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget);
316+
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget, 0u);
317317

318318
EXPECT_EQ(4u, resourcePackage.size());
319319
EXPECT_EQ(15u, totalUsedSize);
@@ -347,7 +347,7 @@ TEST(SubmissionsAggregator, givenTwoCommandBufferWhereSecondContainsFirstOnResou
347347
submissionsAggregator.recordCommandBuffer(cmdBuffer);
348348
submissionsAggregator.recordCommandBuffer(cmdBuffer2);
349349

350-
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget);
350+
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget, 0u);
351351

352352
//resource pack shuold have 3 surfaces
353353
EXPECT_EQ(3u, resourcePackage.size());
@@ -379,7 +379,7 @@ TEST(SubmissionsAggregator, givenTwoCommandBufferWhereSecondContainsTheFirstComm
379379
submissionsAggregator.recordCommandBuffer(cmdBuffer);
380380
submissionsAggregator.recordCommandBuffer(cmdBuffer2);
381381

382-
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget);
382+
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget, 0u);
383383

384384
//resource pack shuold have 3 surfaces
385385
EXPECT_EQ(2u, resourcePackage.size());
@@ -408,7 +408,7 @@ TEST(SubmissionsAggregator, givenCommandBuffersRequiringDifferentCoherencySettin
408408
ResourcePackage resourcePackage;
409409
size_t totalUsedSize = 0;
410410
size_t totalMemoryBudget = 200;
411-
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget);
411+
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget, 0u);
412412
EXPECT_EQ(1u, totalUsedSize);
413413
EXPECT_EQ(1u, resourcePackage.size());
414414
EXPECT_NE(cmdBuffer->inspectionId, cmdBuffer2->inspectionId);
@@ -437,7 +437,7 @@ TEST(SubmissionsAggregator, givenCommandBuffersRequiringDifferentThrottleSetting
437437
ResourcePackage resourcePackage;
438438
size_t totalUsedSize = 0;
439439
size_t totalMemoryBudget = 200;
440-
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget);
440+
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget, 0u);
441441
EXPECT_EQ(1u, totalUsedSize);
442442
EXPECT_EQ(1u, resourcePackage.size());
443443
EXPECT_NE(cmdBuffer->inspectionId, cmdBuffer2->inspectionId);
@@ -466,7 +466,7 @@ TEST(SubmissionsAggregator, givenCommandBuffersRequiringDifferentPrioritySetting
466466
ResourcePackage resourcePackage;
467467
size_t totalUsedSize = 0;
468468
size_t totalMemoryBudget = 200;
469-
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget);
469+
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget, 0u);
470470
EXPECT_EQ(1u, totalUsedSize);
471471
EXPECT_EQ(1u, resourcePackage.size());
472472
EXPECT_NE(cmdBuffer->inspectionId, cmdBuffer2->inspectionId);
@@ -479,14 +479,72 @@ TEST(SubmissionsAggregator, dontAllocateFlushStamp) {
479479
EXPECT_EQ(nullptr, cmdBuffer.flushStamp->getStampReference());
480480
}
481481

482+
TEST(SubmissionsAggregator, givenMultipleOsContextsWhenAggregatingGraphicsAllocationsThenUseInspectionIdCorrespondingWithOsContextId) {
483+
SubmissionAggregator submissionsAggregator;
484+
ResourcePackage resourcePackage;
485+
const auto totalMemoryBudget = 3u;
486+
size_t totalUsedSize = 0;
487+
std::unique_ptr<Device> device(MockDevice::createWithNewExecutionEnvironment<MockDevice>(nullptr));
488+
CommandBuffer *cmdBuffer0 = new CommandBuffer(*device);
489+
CommandBuffer *cmdBuffer1 = new CommandBuffer(*device);
490+
491+
MockGraphicsAllocation alloc0(nullptr, 1);
492+
MockGraphicsAllocation alloc1(nullptr, 1);
493+
MockGraphicsAllocation alloc2(nullptr, 1);
494+
MockGraphicsAllocation alloc3(nullptr, 1);
495+
496+
cmdBuffer0->surfaces.push_back(&alloc0);
497+
cmdBuffer0->surfaces.push_back(&alloc1);
498+
cmdBuffer1->surfaces.push_back(&alloc2);
499+
cmdBuffer1->surfaces.push_back(&alloc3);
500+
501+
submissionsAggregator.recordCommandBuffer(cmdBuffer0);
502+
submissionsAggregator.recordCommandBuffer(cmdBuffer1);
503+
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget, 3u);
504+
EXPECT_EQ(1u, alloc0.getInspectionId(3u));
505+
EXPECT_EQ(1u, alloc1.getInspectionId(3u));
506+
EXPECT_EQ(1u, alloc2.getInspectionId(3u));
507+
EXPECT_EQ(1u, alloc3.getInspectionId(3u));
508+
}
509+
510+
TEST(SubmissionsAggregator, givenMultipleOsContextsWhenAggregatingGraphicsAllocationsThenDoNotUpdateInspectionIdsOfOtherContexts) {
511+
SubmissionAggregator submissionsAggregator;
512+
ResourcePackage resourcePackage;
513+
const auto totalMemoryBudget = 2u;
514+
size_t totalUsedSize = 0;
515+
std::unique_ptr<Device> device(MockDevice::createWithNewExecutionEnvironment<MockDevice>(nullptr));
516+
CommandBuffer *cmdBuffer0 = new CommandBuffer(*device);
517+
CommandBuffer *cmdBuffer1 = new CommandBuffer(*device);
518+
519+
MockGraphicsAllocation alloc0(nullptr, 1);
520+
MockGraphicsAllocation alloc1(nullptr, 1);
521+
522+
cmdBuffer0->surfaces.push_back(&alloc0);
523+
cmdBuffer0->surfaces.push_back(&alloc1);
524+
525+
submissionsAggregator.recordCommandBuffer(cmdBuffer0);
526+
submissionsAggregator.recordCommandBuffer(cmdBuffer1);
527+
submissionsAggregator.aggregateCommandBuffers(resourcePackage, totalUsedSize, totalMemoryBudget, 3u);
528+
529+
for (auto osContextId = 0u; osContextId < alloc1.usageInfos.size(); osContextId++) {
530+
if (osContextId != 3u) {
531+
EXPECT_EQ(0u, alloc0.getInspectionId(osContextId));
532+
}
533+
}
534+
for (auto osContextId = 0u; osContextId < alloc0.usageInfos.size(); osContextId++) {
535+
if (osContextId != 3u) {
536+
EXPECT_EQ(0u, alloc0.getInspectionId(osContextId));
537+
}
538+
}
539+
}
540+
482541
struct SubmissionsAggregatorTests : public ::testing::Test {
483542
void SetUp() override {
484543
device.reset(MockDevice::createWithNewExecutionEnvironment<MockDevice>(platformDevices[0]));
485544
context.reset(new MockContext(device.get()));
486545
}
487546

488-
template <typename T>
489-
void overrideCsr(T *newCsr) {
547+
void overrideCsr(CommandStreamReceiver *newCsr) {
490548
device->resetCommandStreamReceiver(newCsr);
491549
newCsr->overrideDispatchPolicy(DispatchMode::BatchedDispatch);
492550
}

unit_tests/memory_manager/graphics_allocation_tests.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@
1010

1111
using namespace OCLRT;
1212

13+
TEST(GraphicsAllocationTest, givenGraphicsAllocationWhenIsCreatedThenAllInspectionIdsAreSetToZero) {
14+
MockGraphicsAllocation graphicsAllocation(nullptr, 0u, 0u, maxOsContextCount, true);
15+
for (auto i = 0u; i < maxOsContextCount; i++) {
16+
EXPECT_EQ(0u, graphicsAllocation.getInspectionId(i));
17+
}
18+
}
19+
1320
TEST(GraphicsAllocationTest, givenGraphicsAllocationWhenIsCreatedThenTaskCountsAreInitializedProperly) {
1421
GraphicsAllocation graphicsAllocation1(nullptr, 0u, 0u, 0u, maxOsContextCount, true);
1522
GraphicsAllocation graphicsAllocation2(nullptr, 0u, 0u, maxOsContextCount, true);

unit_tests/mocks/mock_graphics_allocation.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,19 @@ class MockGraphicsAllocation : public GraphicsAllocation {
1414
using GraphicsAllocation::GraphicsAllocation;
1515
using GraphicsAllocation::objectNotResident;
1616
using GraphicsAllocation::objectNotUsed;
17+
using GraphicsAllocation::usageInfos;
1718

1819
MockGraphicsAllocation() : MockGraphicsAllocation(true) {}
1920
MockGraphicsAllocation(bool shareable) : GraphicsAllocation(nullptr, 0u, 0, maxOsContextCount, shareable) {}
2021
MockGraphicsAllocation(void *buffer, size_t sizeIn) : GraphicsAllocation(buffer, castToUint64(buffer), 0llu, sizeIn, maxOsContextCount, false) {
2122
}
22-
void resetInspectionId() {
23-
this->inspectionId = 0;
23+
24+
void resetInspectionIds() {
25+
for (auto &usageInfo : usageInfos) {
26+
usageInfo.inspectionId = 0u;
27+
}
2428
}
29+
2530
void overrideMemoryPool(MemoryPool::Type pool) {
2631
this->memoryPool = pool;
2732
}

unit_tests/mocks/mock_program.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ void GlobalMockSipProgram::resetAllocationState() {
3636
for (uint32_t index = 0u; index < maxOsContextCount; index++) {
3737
this->kernelInfoArray[0]->kernelAllocation->resetResidencyTaskCount(index);
3838
}
39-
static_cast<MockGraphicsAllocation *>(this->kernelInfoArray[0]->kernelAllocation)->resetInspectionId();
39+
static_cast<MockGraphicsAllocation *>(this->kernelInfoArray[0]->kernelAllocation)->resetInspectionIds();
4040
}
4141
void GlobalMockSipProgram::initSipProgram() {
4242
cl_int retVal = 0;

0 commit comments

Comments
 (0)