mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-30 09:58:55 +08:00
Program refactor
* decouple program_info * move global allocations relocation to linker * remove obsolete tests * initial cleanup to kernel_info kernelInfo * unified patchtoken validation Change-Id: I0567cd6d607b4f3cf44e6caf33681f6210760f76
This commit is contained in:
committed by
sys_ocldev
parent
570b09850d
commit
f057712fa7
@@ -2075,7 +2075,7 @@ HWTEST_F(KernelResidencyTest, test_MakeArgsResidentCheckImageFromImage) {
|
||||
KernelArgInfo kernelArgInfo;
|
||||
kernelArgInfo.isImage = true;
|
||||
|
||||
pKernelInfo->kernelArgInfo.push_back(kernelArgInfo);
|
||||
pKernelInfo->kernelArgInfo.push_back(std::move(kernelArgInfo));
|
||||
|
||||
auto program = std::make_unique<MockProgram>(*pDevice->getExecutionEnvironment());
|
||||
program->setContext(&context);
|
||||
@@ -2494,19 +2494,25 @@ TEST(KernelInfoTest, getArgNumByName) {
|
||||
EXPECT_EQ(-1, info.getArgNumByName(""));
|
||||
|
||||
KernelArgInfo kai;
|
||||
kai.name = "arg1";
|
||||
info.kernelArgInfo.push_back(kai);
|
||||
kai.metadataExtended = std::make_unique<ArgTypeMetadataExtended>();
|
||||
kai.metadataExtended->argName = "arg1";
|
||||
info.kernelArgInfo.push_back(std::move(kai));
|
||||
|
||||
EXPECT_EQ(-1, info.getArgNumByName(""));
|
||||
EXPECT_EQ(-1, info.getArgNumByName("arg2"));
|
||||
|
||||
EXPECT_EQ(0, info.getArgNumByName("arg1"));
|
||||
|
||||
kai.name = "arg2";
|
||||
info.kernelArgInfo.push_back(kai);
|
||||
kai = {};
|
||||
kai.metadataExtended = std::make_unique<ArgTypeMetadataExtended>();
|
||||
kai.metadataExtended->argName = "arg2";
|
||||
info.kernelArgInfo.push_back(std::move(kai));
|
||||
|
||||
EXPECT_EQ(0, info.getArgNumByName("arg1"));
|
||||
EXPECT_EQ(1, info.getArgNumByName("arg2"));
|
||||
|
||||
info.kernelArgInfo[0].metadataExtended.reset();
|
||||
EXPECT_EQ(-1, info.getArgNumByName("arg1"));
|
||||
}
|
||||
|
||||
TEST(KernelTest, getInstructionHeapSizeForExecutionModelReturnsZeroForNormalKernel) {
|
||||
@@ -2644,15 +2650,16 @@ TEST(KernelTest, givenFtrRenderCompressedBuffersWhenInitializingArgsWithNonState
|
||||
context->contextType = ContextType::CONTEXT_TYPE_UNRESTRICTIVE;
|
||||
MockKernelWithInternals kernel(*device, context.get());
|
||||
kernel.kernelInfo.kernelArgInfo.resize(1);
|
||||
kernel.kernelInfo.kernelArgInfo.at(0).typeStr = "char *";
|
||||
kernel.kernelInfo.kernelArgInfo.at(0).isBuffer = true;
|
||||
kernel.kernelInfo.kernelArgInfo[0].metadataExtended = std::make_unique<NEO::ArgTypeMetadataExtended>();
|
||||
kernel.kernelInfo.kernelArgInfo[0].metadataExtended->type = "char *";
|
||||
kernel.kernelInfo.kernelArgInfo[0].isBuffer = true;
|
||||
|
||||
capabilityTable.ftrRenderCompressedBuffers = false;
|
||||
kernel.kernelInfo.kernelArgInfo.at(0).pureStatefulBufferAccess = true;
|
||||
kernel.kernelInfo.kernelArgInfo[0].pureStatefulBufferAccess = true;
|
||||
kernel.mockKernel->initialize();
|
||||
EXPECT_FALSE(kernel.mockKernel->isAuxTranslationRequired());
|
||||
|
||||
kernel.kernelInfo.kernelArgInfo.at(0).pureStatefulBufferAccess = false;
|
||||
kernel.kernelInfo.kernelArgInfo[0].pureStatefulBufferAccess = false;
|
||||
kernel.mockKernel->initialize();
|
||||
EXPECT_FALSE(kernel.mockKernel->isAuxTranslationRequired());
|
||||
|
||||
@@ -2680,10 +2687,11 @@ TEST(KernelTest, givenDebugVariableSetWhenKernelHasStatefulBufferAccessThenMarkK
|
||||
auto context = clUniquePtr(new MockContext(device.get()));
|
||||
MockKernelWithInternals kernel(*device, context.get());
|
||||
kernel.kernelInfo.kernelArgInfo.resize(1);
|
||||
kernel.kernelInfo.kernelArgInfo.at(0).typeStr = "char *";
|
||||
kernel.kernelInfo.kernelArgInfo.at(0).isBuffer = true;
|
||||
kernel.kernelInfo.kernelArgInfo[0].metadataExtended = std::make_unique<NEO::ArgTypeMetadataExtended>();
|
||||
kernel.kernelInfo.kernelArgInfo[0].metadataExtended->type = "char *";
|
||||
kernel.kernelInfo.kernelArgInfo[0].isBuffer = true;
|
||||
|
||||
kernel.kernelInfo.kernelArgInfo.at(0).pureStatefulBufferAccess = false;
|
||||
kernel.kernelInfo.kernelArgInfo[0].pureStatefulBufferAccess = false;
|
||||
localHwInfo.capabilityTable.ftrRenderCompressedBuffers = false;
|
||||
|
||||
kernel.mockKernel->initialize();
|
||||
@@ -2702,7 +2710,8 @@ TEST(KernelTest, givenKernelWithPairArgumentWhenItIsInitializedThenPatchImmediat
|
||||
auto context = clUniquePtr(new MockContext(device.get()));
|
||||
MockKernelWithInternals kernel(*device, context.get());
|
||||
kernel.kernelInfo.kernelArgInfo.resize(1);
|
||||
kernel.kernelInfo.kernelArgInfo.at(0).typeStr = "pair<char*, int>";
|
||||
kernel.kernelInfo.kernelArgInfo[0].metadataExtended = std::make_unique<NEO::ArgTypeMetadataExtended>();
|
||||
kernel.kernelInfo.kernelArgInfo[0].metadataExtended->type = "pair<char*, int>";
|
||||
|
||||
kernel.mockKernel->initialize();
|
||||
EXPECT_EQ(&Kernel::setArgImmediate, kernel.mockKernel->kernelArgHandlers[0]);
|
||||
@@ -2800,7 +2809,7 @@ TEST(KernelTest, givenAllArgumentsAreStatefulBuffersWhenInitializingThenAllBuffe
|
||||
kernelArgInfo[1].pureStatefulBufferAccess = true;
|
||||
|
||||
MockKernelWithInternals kernel{*device};
|
||||
kernel.kernelInfo.kernelArgInfo = kernelArgInfo;
|
||||
kernel.kernelInfo.kernelArgInfo.swap(kernelArgInfo);
|
||||
|
||||
kernel.mockKernel->initialize();
|
||||
EXPECT_TRUE(kernel.mockKernel->allBufferArgsStateful);
|
||||
@@ -2816,7 +2825,7 @@ TEST(KernelTest, givenAllArgumentsAreBuffersButNotAllAreStatefulWhenInitializing
|
||||
kernelArgInfo[1].pureStatefulBufferAccess = false;
|
||||
|
||||
MockKernelWithInternals kernel{*device};
|
||||
kernel.kernelInfo.kernelArgInfo = kernelArgInfo;
|
||||
kernel.kernelInfo.kernelArgInfo.swap(kernelArgInfo);
|
||||
|
||||
kernel.mockKernel->initialize();
|
||||
EXPECT_FALSE(kernel.mockKernel->allBufferArgsStateful);
|
||||
@@ -2832,7 +2841,7 @@ TEST(KernelTest, givenNotAllArgumentsAreBuffersButAllBuffersAreStatefulWhenIniti
|
||||
kernelArgInfo[1].pureStatefulBufferAccess = false;
|
||||
|
||||
MockKernelWithInternals kernel{*device};
|
||||
kernel.kernelInfo.kernelArgInfo = kernelArgInfo;
|
||||
kernel.kernelInfo.kernelArgInfo.swap(kernelArgInfo);
|
||||
|
||||
kernel.mockKernel->initialize();
|
||||
EXPECT_TRUE(kernel.mockKernel->allBufferArgsStateful);
|
||||
@@ -3006,3 +3015,20 @@ TEST_F(KernelMultiRootDeviceTest, privateSurfaceHasCorrectRootDeviceIndex) {
|
||||
ASSERT_NE(nullptr, privateSurface);
|
||||
EXPECT_EQ(expectedRootDeviceIndex, privateSurface->getRootDeviceIndex());
|
||||
}
|
||||
|
||||
TEST(KernelCreateTest, whenInitFailedThenReturnNull) {
|
||||
struct MockProgram {
|
||||
int getDevice(int) { return 0; }
|
||||
void getSource(std::string &) {}
|
||||
} mockProgram;
|
||||
struct MockKernel {
|
||||
MockKernel(MockProgram *, const KernelInfo &, int) {}
|
||||
int initialize() { return -1; };
|
||||
};
|
||||
|
||||
KernelInfo info;
|
||||
info.gpuPointerSize = 8;
|
||||
|
||||
auto ret = Kernel::create<MockKernel>(&mockProgram, info, nullptr);
|
||||
EXPECT_EQ(nullptr, ret);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user