Skip to content

Commit 7166dfd

Browse files
Fix debugSurface allocation for non debug kernels
Change-Id: I253968f7ea617bc68275bec0d6279f1fcf948967 Signed-off-by: Konstanty Misiak <[email protected]>
1 parent 1e7f05e commit 7166dfd

File tree

5 files changed

+22
-6
lines changed

5 files changed

+22
-6
lines changed

opencl/source/command_queue/command_queue.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -521,10 +521,6 @@ void CommandQueue::enqueueBlockedMapUnmapOperation(const cl_event *eventWaitList
521521
bool CommandQueue::setupDebugSurface(Kernel *kernel) {
522522
auto debugSurface = getGpgpuCommandStreamReceiver().getDebugSurfaceAllocation();
523523

524-
if (!debugSurface) {
525-
debugSurface = getGpgpuCommandStreamReceiver().allocateDebugSurface(SipKernel::maxDbgSurfaceSize);
526-
}
527-
528524
DEBUG_BREAK_IF(!kernel->requiresSshForBuffers());
529525

530526
auto surfaceState = ptrOffset(reinterpret_cast<uintptr_t *>(kernel->getSurfaceStateHeap()),

opencl/source/command_queue/command_queue_hw.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@ class CommandQueueHw : public CommandQueue {
7171
getGpgpuCommandStreamReceiver().enableNTo1SubmissionModel();
7272
}
7373

74+
if (device->getDevice().getDebugger()) {
75+
getGpgpuCommandStreamReceiver().allocateDebugSurface(SipKernel::maxDbgSurfaceSize);
76+
}
77+
7478
uint64_t requestedSliceCount = getCmdQueueProperties<cl_command_queue_properties>(properties, CL_QUEUE_SLICE_COUNT_INTEL);
7579
if (requestedSliceCount > 0) {
7680
sliceCount = requestedSliceCount;

opencl/test/unit_test/command_queue/command_queue_hw_tests.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1297,15 +1297,15 @@ struct MockCommandQueueHwWithOverwrittenCsr : public CommandQueueHw<GfxFamily> {
12971297

12981298
HWTEST_F(CommandQueueHwTest, givenFlushWhenFlushBatchedSubmissionsFailsThenErrorIsRetured) {
12991299

1300-
MockCommandQueueHwWithOverwrittenCsr<FamilyType> cmdQueue(context, device, nullptr, false);
1300+
MockCommandQueueHwWithOverwrittenCsr<FamilyType> cmdQueue(context, pClDevice, nullptr, false);
13011301
MockCommandStreamReceiverWithFailingFlushBatchedSubmission csr(*pDevice->executionEnvironment, 0);
13021302
cmdQueue.csr = &csr;
13031303
cl_int errorCode = cmdQueue.flush();
13041304
EXPECT_EQ(CL_OUT_OF_RESOURCES, errorCode);
13051305
}
13061306

13071307
HWTEST_F(CommandQueueHwTest, givenFinishWhenFlushBatchedSubmissionsFailsThenErrorIsRetured) {
1308-
MockCommandQueueHwWithOverwrittenCsr<FamilyType> cmdQueue(context, device, nullptr, false);
1308+
MockCommandQueueHwWithOverwrittenCsr<FamilyType> cmdQueue(context, pClDevice, nullptr, false);
13091309
MockCommandStreamReceiverWithFailingFlushBatchedSubmission csr(*pDevice->executionEnvironment, 0);
13101310
cmdQueue.csr = &csr;
13111311
cl_int errorCode = cmdQueue.finish();

opencl/test/unit_test/command_queue/command_queue_tests.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,6 +1035,7 @@ HWTEST_F(CommandQueueCommandStreamTest, givenDebugKernelWhenSetupDebugSurfaceIsC
10351035
kernel->getAllocatedKernelInfo()->usesSsh = true;
10361036
auto &commandStreamReceiver = cmdQ.getGpgpuCommandStreamReceiver();
10371037

1038+
cmdQ.getGpgpuCommandStreamReceiver().allocateDebugSurface(SipKernel::maxDbgSurfaceSize);
10381039
cmdQ.setupDebugSurface(kernel.get());
10391040

10401041
auto debugSurface = commandStreamReceiver.getDebugSurfaceAllocation();

opencl/test/unit_test/command_queue/enqueue_debug_kernel_tests.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,4 +202,19 @@ HWTEST_F(EnqueueDebugKernelSimpleTest, givenKernelFromProgramWithoutDebugEnabled
202202
mockCmdQ->enqueueKernel(kernel.get(), 1, nullptr, gws, nullptr, 0, nullptr, nullptr);
203203

204204
::testing::Mock::VerifyAndClearExpectations(mockCmdQ.get());
205+
EXPECT_EQ(nullptr, mockCmdQ->getGpgpuCommandStreamReceiver().getDebugSurfaceAllocation());
206+
}
207+
208+
using ActiveDebuggerTest = EnqueueDebugKernelTest;
209+
210+
HWTEST_F(ActiveDebuggerTest, givenKernelFromProgramWithoutDebugEnabledAndActiveDebuggerWhenEnqueuedThenDebugSurfaceIsSetup) {
211+
MockProgram program(*pDevice->getExecutionEnvironment());
212+
std::unique_ptr<MockDebugKernel> kernel(MockKernel::create<MockDebugKernel>(*pDevice, &program));
213+
kernel->setContext(&context);
214+
std::unique_ptr<CommandQueueHw<FamilyType>> cmdQ(new CommandQueueHw<FamilyType>(&context, pClDevice, nullptr, false));
215+
216+
size_t gws[] = {1, 1, 1};
217+
cmdQ->enqueueKernel(kernel.get(), 1, nullptr, gws, nullptr, 0, nullptr, nullptr);
218+
219+
EXPECT_NE(nullptr, cmdQ->getGpgpuCommandStreamReceiver().getDebugSurfaceAllocation());
205220
}

0 commit comments

Comments
 (0)