mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-19 06:24:51 +08:00
Fix division by zero in enqueueKernel
Change-Id: I8e7d3db39805133a5af545e65a94fb19433a2a41
This commit is contained in:
committed by
sys_ocldev
parent
99829a3319
commit
95e28faca0
@@ -86,6 +86,9 @@ cl_int CommandQueueHw<GfxFamily>::enqueueKernel(
|
||||
return CL_INVALID_WORK_GROUP_SIZE;
|
||||
}
|
||||
}
|
||||
if (localWorkSizeIn[i] == 0) {
|
||||
return CL_INVALID_WORK_GROUP_SIZE;
|
||||
}
|
||||
workGroupSize[i] = localWorkSizeIn[i];
|
||||
totalWorkItems *= localWorkSizeIn[i];
|
||||
}
|
||||
|
||||
@@ -1541,6 +1541,15 @@ TEST_F(EnqueueKernelTest, givenEnqueueCommandThatLwsExceedsDeviceCapabilitiesWhe
|
||||
EXPECT_EQ(CL_INVALID_WORK_GROUP_SIZE, status);
|
||||
}
|
||||
|
||||
TEST_F(EnqueueKernelTest, givenEnqueueCommandThatLocalWorkgroupSizeContainsZeroWhenEnqueueNDRangeKernelIsCalledThenClInvalidWorkGroupSizeIsReturned) {
|
||||
size_t globalWorkSize[3] = {1, 1, 1};
|
||||
size_t localWorkSize[3] = {1, 0, 1};
|
||||
MockKernelWithInternals mockKernel(*pDevice);
|
||||
|
||||
auto status = pCmdQ->enqueueKernel(mockKernel.mockKernel, 3, nullptr, globalWorkSize, localWorkSize, 0, nullptr, nullptr);
|
||||
EXPECT_EQ(CL_INVALID_WORK_GROUP_SIZE, status);
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueKernelTest, givenVMEKernelWhenEnqueueKernelThenDispatchFlagsHaveMediaSamplerRequired) {
|
||||
auto mockCsr = new MockCsrHw2<FamilyType>(pDevice->getHardwareInfo(), *pDevice->executionEnvironment);
|
||||
mockCsr->overrideDispatchPolicy(DispatchMode::BatchedDispatch);
|
||||
|
||||
Reference in New Issue
Block a user