mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-09 22:43:00 +08:00
Add support for zeKernelGetName
Change-Id: I167cc202436b6a76841c56e46baa684e7be90132 Signed-off: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
3eafb466f6
commit
169089347f
@@ -106,6 +106,7 @@ struct Kernel : _ze_kernel_handle_t, virtual NEO::DispatchKernelEncoderI {
|
||||
virtual ze_result_t suggestGroupSize(uint32_t globalSizeX, uint32_t globalSizeY,
|
||||
uint32_t globalSizeZ, uint32_t *groupSizeX,
|
||||
uint32_t *groupSizeY, uint32_t *groupSizeZ) = 0;
|
||||
virtual ze_result_t getKernelName(size_t *pSize, char *pName) = 0;
|
||||
|
||||
virtual ze_result_t suggestMaxCooperativeGroupCount(uint32_t *totalGroupCount) = 0;
|
||||
|
||||
|
||||
@@ -565,6 +565,20 @@ ze_result_t KernelImp::getProperties(ze_kernel_properties_t *pKernelProperties)
|
||||
return ZE_RESULT_SUCCESS;
|
||||
}
|
||||
|
||||
ze_result_t KernelImp::getKernelName(size_t *pSize, char *pName) {
|
||||
size_t kernelNameSize = this->kernelImmData->getDescriptor().kernelMetadata.kernelName.size() + 1;
|
||||
if (0 == *pSize || nullptr == pName) {
|
||||
*pSize = kernelNameSize;
|
||||
return ZE_RESULT_SUCCESS;
|
||||
}
|
||||
|
||||
*pSize = std::min(*pSize, kernelNameSize);
|
||||
strncpy_s(pName, *pSize,
|
||||
this->kernelImmData->getDescriptor().kernelMetadata.kernelName.c_str(), kernelNameSize);
|
||||
|
||||
return ZE_RESULT_SUCCESS;
|
||||
}
|
||||
|
||||
ze_result_t KernelImp::getPropertiesExt(ze_kernel_propertiesExt_t *pKernelProperties) {
|
||||
size_t kernelNameSize = std::min(this->kernelImmData->getDescriptor().kernelMetadata.kernelName.size(),
|
||||
(static_cast<size_t>(ZE_MAX_KERNEL_NAME) - 1));
|
||||
|
||||
@@ -51,6 +51,8 @@ struct KernelImp : Kernel {
|
||||
uint32_t *groupSizeX, uint32_t *groupSizeY,
|
||||
uint32_t *groupSizeZ) override;
|
||||
|
||||
ze_result_t getKernelName(size_t *pSize, char *pName) override;
|
||||
|
||||
ze_result_t suggestMaxCooperativeGroupCount(uint32_t *totalGroupCount) override;
|
||||
|
||||
const uint8_t *getCrossThreadData() const override { return crossThreadData.get(); }
|
||||
|
||||
@@ -202,6 +202,39 @@ HWTEST2_F(SetKernelArg, givenBufferArgumentWhichHasNotBeenAllocatedByRuntimeThen
|
||||
|
||||
using KernelPropertiesTest = Test<ModuleFixture>;
|
||||
|
||||
HWTEST_F(KernelPropertiesTest, givenKernelThenCorrectNameIsRetrieved) {
|
||||
ze_kernel_handle_t kernelHandle;
|
||||
|
||||
ze_kernel_desc_t kernelDesc = {};
|
||||
kernelDesc.version = ZE_KERNEL_DESC_VERSION_CURRENT;
|
||||
kernelDesc.flags = ZE_KERNEL_FLAG_NONE;
|
||||
kernelDesc.pKernelName = kernelName.c_str();
|
||||
|
||||
ze_result_t res = module->createKernel(&kernelDesc, &kernelHandle);
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
|
||||
|
||||
auto kernel = L0::Kernel::fromHandle(kernelHandle);
|
||||
|
||||
size_t kernelSize = 0;
|
||||
res = kernel->getKernelName(&kernelSize, nullptr);
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
|
||||
EXPECT_EQ(kernelSize, kernelName.length() + 1);
|
||||
|
||||
size_t alteredKernelSize = kernelSize * 2;
|
||||
res = kernel->getKernelName(&alteredKernelSize, nullptr);
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
|
||||
EXPECT_EQ(alteredKernelSize, kernelSize);
|
||||
|
||||
char *kernelNameRetrieved = new char[kernelSize];
|
||||
res = kernel->getKernelName(&kernelSize, kernelNameRetrieved);
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
|
||||
|
||||
EXPECT_EQ(0, strncmp(kernelName.c_str(), kernelNameRetrieved, kernelSize));
|
||||
|
||||
delete[] kernelNameRetrieved;
|
||||
Kernel::fromHandle(kernelHandle)->destroy();
|
||||
}
|
||||
|
||||
HWTEST_F(KernelPropertiesTest, givenKernelThenPropertiesAreRetrieved) {
|
||||
ze_kernel_handle_t kernelHandle;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user