mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
Add logic to detect if kernel is using only images as arguments.
Change-Id: Ia897a1838761c452c36c3f7821149b5867c3cd70
This commit is contained in:

committed by
sys_ocldev

parent
8123c8b08f
commit
dfd331c568
@ -1626,6 +1626,52 @@ HWTEST_F(KernelResidencyTest, givenKernelWhenMakeResidentIsCalledThenKernelIsaIs
|
||||
memoryManager->freeGraphicsMemory(pKernelInfo->kernelAllocation);
|
||||
}
|
||||
|
||||
TEST(KernelImageDetectionTests, givenKernelWithImagesOnlyWhenItIsAskedIfItHasImagesOnlyThenTrueIsReturned) {
|
||||
auto device = std::make_unique<MockDevice>(*platformDevices[0]);
|
||||
std::unique_ptr<KernelInfo> pKernelInfo(KernelInfo::create());
|
||||
|
||||
pKernelInfo->kernelArgInfo.resize(3);
|
||||
pKernelInfo->kernelArgInfo[2].isImage = true;
|
||||
pKernelInfo->kernelArgInfo[1].isMediaBlockImage = true;
|
||||
pKernelInfo->kernelArgInfo[0].isMediaImage = true;
|
||||
|
||||
MockProgram program;
|
||||
std::unique_ptr<MockKernel> kernel(new MockKernel(&program, *pKernelInfo, *device));
|
||||
EXPECT_FALSE(kernel->usesOnlyImages());
|
||||
kernel->initialize();
|
||||
EXPECT_TRUE(kernel->usesOnlyImages());
|
||||
}
|
||||
|
||||
TEST(KernelImageDetectionTests, givenKernelWithImagesAndBuffersWhenItIsAskedIfItHasImagesOnlyThenFalseIsReturned) {
|
||||
auto device = std::make_unique<MockDevice>(*platformDevices[0]);
|
||||
std::unique_ptr<KernelInfo> pKernelInfo(KernelInfo::create());
|
||||
|
||||
pKernelInfo->kernelArgInfo.resize(3);
|
||||
pKernelInfo->kernelArgInfo[2].isImage = true;
|
||||
pKernelInfo->kernelArgInfo[1].isBuffer = true;
|
||||
pKernelInfo->kernelArgInfo[0].isMediaImage = true;
|
||||
|
||||
MockProgram program;
|
||||
std::unique_ptr<MockKernel> kernel(new MockKernel(&program, *pKernelInfo, *device));
|
||||
EXPECT_FALSE(kernel->usesOnlyImages());
|
||||
kernel->initialize();
|
||||
EXPECT_FALSE(kernel->usesOnlyImages());
|
||||
}
|
||||
|
||||
TEST(KernelImageDetectionTests, givenKernelWithNoImagesWhenItIsAskedIfItHasImagesOnlyThenFalseIsReturned) {
|
||||
auto device = std::make_unique<MockDevice>(*platformDevices[0]);
|
||||
std::unique_ptr<KernelInfo> pKernelInfo(KernelInfo::create());
|
||||
|
||||
pKernelInfo->kernelArgInfo.resize(1);
|
||||
pKernelInfo->kernelArgInfo[0].isBuffer = true;
|
||||
|
||||
MockProgram program;
|
||||
std::unique_ptr<MockKernel> kernel(new MockKernel(&program, *pKernelInfo, *device));
|
||||
EXPECT_FALSE(kernel->usesOnlyImages());
|
||||
kernel->initialize();
|
||||
EXPECT_FALSE(kernel->usesOnlyImages());
|
||||
}
|
||||
|
||||
HWTEST_F(KernelResidencyTest, test_MakeArgsResidentCheckImageFromImage) {
|
||||
ASSERT_NE(nullptr, pDevice);
|
||||
|
||||
|
Reference in New Issue
Block a user