refactor: remove not needed logic related to vme

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski
2025-07-11 10:32:22 +00:00
committed by Compute-Runtime-Automation
parent 490d3ad0ee
commit 5e43ee905d
19 changed files with 11 additions and 454 deletions

View File

@@ -496,28 +496,22 @@ TEST(KernelDecoder, GivenKernelWithValidObjectArgPatchtokensThenDecodingSucceeds
ASSERT_EQ(6U, decodedKernel.tokens.kernelArgs.size());
EXPECT_TRUE(tokenOffsetMatched(base, samplerOff, decodedKernel.tokens.kernelArgs[samplerTok.ArgumentNumber].objectArg));
EXPECT_EQ(NEO::PatchTokenBinary::ArgObjectType::sampler, decodedKernel.tokens.kernelArgs[samplerTok.ArgumentNumber].objectType);
EXPECT_EQ(NEO::PatchTokenBinary::ArgObjectTypeSpecialized::none, decodedKernel.tokens.kernelArgs[samplerTok.ArgumentNumber].objectTypeSpecialized);
EXPECT_TRUE(tokenOffsetMatched(base, imageOff, decodedKernel.tokens.kernelArgs[imageTok.ArgumentNumber].objectArg));
EXPECT_EQ(NEO::PatchTokenBinary::ArgObjectType::image, decodedKernel.tokens.kernelArgs[imageTok.ArgumentNumber].objectType);
EXPECT_EQ(NEO::PatchTokenBinary::ArgObjectTypeSpecialized::none, decodedKernel.tokens.kernelArgs[imageTok.ArgumentNumber].objectTypeSpecialized);
EXPECT_TRUE(tokenOffsetMatched(base, globalMemOff, decodedKernel.tokens.kernelArgs[globalMemTok.ArgumentNumber].objectArg));
EXPECT_EQ(NEO::PatchTokenBinary::ArgObjectType::buffer, decodedKernel.tokens.kernelArgs[globalMemTok.ArgumentNumber].objectType);
EXPECT_EQ(NEO::PatchTokenBinary::ArgObjectTypeSpecialized::none, decodedKernel.tokens.kernelArgs[globalMemTok.ArgumentNumber].objectTypeSpecialized);
EXPECT_TRUE(tokenOffsetMatched(base, statelessGlobalMemOff, decodedKernel.tokens.kernelArgs[statelessGlobalMemTok.ArgumentNumber].objectArg));
EXPECT_EQ(NEO::PatchTokenBinary::ArgObjectType::buffer, decodedKernel.tokens.kernelArgs[statelessGlobalMemTok.ArgumentNumber].objectType);
EXPECT_EQ(NEO::PatchTokenBinary::ArgObjectTypeSpecialized::none, decodedKernel.tokens.kernelArgs[statelessGlobalMemTok.ArgumentNumber].objectTypeSpecialized);
EXPECT_TRUE(tokenOffsetMatched(base, statelessConstantMemOff, decodedKernel.tokens.kernelArgs[statelessConstantMemTok.ArgumentNumber].objectArg));
EXPECT_EQ(NEO::PatchTokenBinary::ArgObjectType::buffer, decodedKernel.tokens.kernelArgs[statelessConstantMemTok.ArgumentNumber].objectType);
EXPECT_EQ(NEO::PatchTokenBinary::ArgObjectTypeSpecialized::none, decodedKernel.tokens.kernelArgs[statelessConstantMemTok.ArgumentNumber].objectTypeSpecialized);
for (int i = 0; i < 6; ++i) {
EXPECT_EQ(nullptr, decodedKernel.tokens.kernelArgs[i].argInfo);
EXPECT_EQ(0U, decodedKernel.tokens.kernelArgs[i].byValMap.size());
EXPECT_EQ(NEO::PatchTokenBinary::ArgObjectTypeSpecialized::none, decodedKernel.tokens.kernelArgs[i].objectTypeSpecialized);
}
}
@@ -695,11 +689,6 @@ TEST(KernelDecoder, GivenKernelWithValidObjectArgMetadataPatchtokensThenDecoding
ASSERT_EQ(NEO::PatchTokenBinary::ArgObjectType::sampler, decodedKernel.tokens.kernelArgs[2].objectType);
ASSERT_EQ(NEO::PatchTokenBinary::ArgObjectType::slm, decodedKernel.tokens.kernelArgs[3].objectType);
EXPECT_EQ(NEO::PatchTokenBinary::ArgObjectTypeSpecialized::none, decodedKernel.tokens.kernelArgs[0].objectTypeSpecialized);
EXPECT_EQ(NEO::PatchTokenBinary::ArgObjectTypeSpecialized::none, decodedKernel.tokens.kernelArgs[1].objectTypeSpecialized);
EXPECT_EQ(NEO::PatchTokenBinary::ArgObjectTypeSpecialized::none, decodedKernel.tokens.kernelArgs[2].objectTypeSpecialized);
EXPECT_EQ(NEO::PatchTokenBinary::ArgObjectTypeSpecialized::none, decodedKernel.tokens.kernelArgs[3].objectTypeSpecialized);
auto base = storage.data();
EXPECT_TRUE(tokenOffsetMatched(base, arg0BufferOffsetOff, decodedKernel.tokens.kernelArgs[0].metadata.buffer.bufferOffset));
EXPECT_TRUE(tokenOffsetMatched(base, arg0BufferStatefulOff, decodedKernel.tokens.kernelArgs[0].metadata.buffer.pureStateful));
@@ -889,40 +878,6 @@ TEST(KernelDecoder, GivenKernelWithByValArgMetadataPatchtokensThenDecodingSuccee
EXPECT_TRUE(tokenOffsetMatched(base, arg1SlmOff, decodedKernel.tokens.kernelArgs[1].byValMap[0]));
}
TEST(KernelDecoder, GivenKernelWithVmeMetadataPatchtokensThenDecodingSucceedsAndTokensAreProperlyAssigned) {
std::vector<uint8_t> storage;
storage.reserve(128);
auto kernelToEncode = PatchTokensTestData::ValidEmptyKernel::create(storage);
auto patchListOffset = ptrDiff(kernelToEncode.blobs.patchList.begin(), storage.data());
auto arg0VmeBlockTypeOff = pushBackDataParameterToken(iOpenCL::DATA_PARAMETER_VME_MB_BLOCK_TYPE, storage, 0U, 0U);
auto arg0VmeSubpixelModeOff = pushBackDataParameterToken(iOpenCL::DATA_PARAMETER_VME_SUBPIXEL_MODE, storage, 0U, 0U);
auto arg0VmeSadAdjustModeOff = pushBackDataParameterToken(iOpenCL::DATA_PARAMETER_VME_SAD_ADJUST_MODE, storage, 0U, 0U);
auto arg0VmeSearchPathTypeOff = pushBackDataParameterToken(iOpenCL::DATA_PARAMETER_VME_SEARCH_PATH_TYPE, storage, 0U, 0U);
ASSERT_EQ(storage.data(), kernelToEncode.blobs.kernelInfo.begin());
auto kernelHeader = reinterpret_cast<iOpenCL::SKernelBinaryHeaderCommon *>(storage.data());
kernelHeader->PatchListSize = static_cast<uint32_t>(storage.size() - patchListOffset);
NEO::PatchTokenBinary::KernelFromPatchtokens decodedKernel;
bool decodeSuccess = NEO::PatchTokenBinary::decodeKernelFromPatchtokensBlob(storage, decodedKernel);
EXPECT_TRUE(decodeSuccess);
EXPECT_EQ(NEO::DecodeError::success, decodedKernel.decodeStatus);
EXPECT_TRUE(decodedKernel.unhandledTokens.empty());
ASSERT_EQ(1U, decodedKernel.tokens.kernelArgs.size());
EXPECT_EQ(NEO::PatchTokenBinary::ArgObjectType::none, decodedKernel.tokens.kernelArgs[0].objectType);
EXPECT_EQ(NEO::PatchTokenBinary::ArgObjectTypeSpecialized::vme, decodedKernel.tokens.kernelArgs[0].objectTypeSpecialized);
;
auto base = storage.data();
EXPECT_TRUE(tokenOffsetMatched(base, arg0VmeBlockTypeOff, decodedKernel.tokens.kernelArgs[0].metadataSpecialized.vme.mbBlockType));
EXPECT_TRUE(tokenOffsetMatched(base, arg0VmeSubpixelModeOff, decodedKernel.tokens.kernelArgs[0].metadataSpecialized.vme.subpixelMode));
EXPECT_TRUE(tokenOffsetMatched(base, arg0VmeSadAdjustModeOff, decodedKernel.tokens.kernelArgs[0].metadataSpecialized.vme.sadAdjustMode));
EXPECT_TRUE(tokenOffsetMatched(base, arg0VmeSearchPathTypeOff, decodedKernel.tokens.kernelArgs[0].metadataSpecialized.vme.searchPathType));
}
TEST(KernelDecoder, GivenKernelWithOutOfBoundsTokenThenDecodingFails) {
std::vector<uint8_t> storage;
storage.reserve(128);

View File

@@ -1855,80 +1855,6 @@ TEST(KernelArgDumper, givenSlmKernelArgWithMetadataTokensThenProperlyCreatesDump
EXPECT_STREQ(expected.str().c_str(), generated.c_str());
}
TEST(KernelArgDumper, givenVmeKernelArgWithMetadataTokensThenProperlyCreatesDump) {
NEO::PatchTokenBinary::KernelArgFromPatchtokens kernelArg = {};
kernelArg.objectType = NEO::PatchTokenBinary::ArgObjectType::image;
kernelArg.objectTypeSpecialized = NEO::PatchTokenBinary::ArgObjectTypeSpecialized::vme;
auto mbBlockType = PatchTokensTestData::initDataParameterBufferToken(iOpenCL::DATA_PARAMETER_VME_MB_BLOCK_TYPE);
auto subpixelMode = PatchTokensTestData::initDataParameterBufferToken(iOpenCL::DATA_PARAMETER_VME_SUBPIXEL_MODE);
auto sadAdjustMode = PatchTokensTestData::initDataParameterBufferToken(iOpenCL::DATA_PARAMETER_VME_SAD_ADJUST_MODE);
auto searchPathType = PatchTokensTestData::initDataParameterBufferToken(iOpenCL::DATA_PARAMETER_VME_SEARCH_PATH_TYPE);
kernelArg.metadataSpecialized.vme.mbBlockType = &mbBlockType;
kernelArg.metadataSpecialized.vme.subpixelMode = &subpixelMode;
kernelArg.metadataSpecialized.vme.sadAdjustMode = &sadAdjustMode;
kernelArg.metadataSpecialized.vme.searchPathType = &searchPathType;
auto generated = NEO::PatchTokenBinary::asString(kernelArg, " | ");
std::stringstream expected;
expected << R"===( | Kernel argument of type IMAGE [ VME ]
| Image Metadata:
| Vme Metadata:
| struct SPatchDataParameterBuffer :
| SPatchItemHeader (Token=17(PATCH_TOKEN_DATA_PARAMETER_BUFFER), Size=)==="
<< sizeof(iOpenCL::SPatchDataParameterBuffer) << R"===()
| {
| uint32_t Type;// = 23(DATA_PARAMETER_VME_MB_BLOCK_TYPE)
| uint32_t ArgumentNumber;// = 0
| uint32_t Offset;// = 0
| uint32_t DataSize;// = 0
| uint32_t SourceOffset;// = 0
| uint32_t LocationIndex;// = 0
| uint32_t LocationIndex2;// = 0
| uint32_t IsEmulationArgument;// = 0
| }
| struct SPatchDataParameterBuffer :
| SPatchItemHeader (Token=17(PATCH_TOKEN_DATA_PARAMETER_BUFFER), Size=)==="
<< sizeof(iOpenCL::SPatchDataParameterBuffer) << R"===()
| {
| uint32_t Type;// = 25(DATA_PARAMETER_VME_SAD_ADJUST_MODE)
| uint32_t ArgumentNumber;// = 0
| uint32_t Offset;// = 0
| uint32_t DataSize;// = 0
| uint32_t SourceOffset;// = 0
| uint32_t LocationIndex;// = 0
| uint32_t LocationIndex2;// = 0
| uint32_t IsEmulationArgument;// = 0
| }
| struct SPatchDataParameterBuffer :
| SPatchItemHeader (Token=17(PATCH_TOKEN_DATA_PARAMETER_BUFFER), Size=)==="
<< sizeof(iOpenCL::SPatchDataParameterBuffer) << R"===()
| {
| uint32_t Type;// = 26(DATA_PARAMETER_VME_SEARCH_PATH_TYPE)
| uint32_t ArgumentNumber;// = 0
| uint32_t Offset;// = 0
| uint32_t DataSize;// = 0
| uint32_t SourceOffset;// = 0
| uint32_t LocationIndex;// = 0
| uint32_t LocationIndex2;// = 0
| uint32_t IsEmulationArgument;// = 0
| }
| struct SPatchDataParameterBuffer :
| SPatchItemHeader (Token=17(PATCH_TOKEN_DATA_PARAMETER_BUFFER), Size=)==="
<< sizeof(iOpenCL::SPatchDataParameterBuffer) << R"===()
| {
| uint32_t Type;// = 24(DATA_PARAMETER_VME_SUBPIXEL_MODE)
| uint32_t ArgumentNumber;// = 0
| uint32_t Offset;// = 0
| uint32_t DataSize;// = 0
| uint32_t SourceOffset;// = 0
| uint32_t LocationIndex;// = 0
| uint32_t LocationIndex2;// = 0
| uint32_t IsEmulationArgument;// = 0
| }
)===";
EXPECT_STREQ(expected.str().c_str(), generated.c_str());
}
TEST(PatchTokenDumper, givenAnyTokenThenDumpingIsHandled) {
constexpr uint32_t maxTokenSize = 4096;
@@ -2004,7 +1930,14 @@ TEST(PatchTokenDumper, givenAnyTokenThenDumpingIsHandled) {
iOpenCL::DATA_PARAMETER_STAGE_IN_GRID_ORIGIN,
iOpenCL::DATA_PARAMETER_STAGE_IN_GRID_SIZE};
auto ignoreToken = [](int token) { return token == iOpenCL::DATA_PARAMETER_VME_MB_BLOCK_TYPE ||
token == iOpenCL::DATA_PARAMETER_VME_SUBPIXEL_MODE ||
token == iOpenCL::DATA_PARAMETER_VME_SAD_ADJUST_MODE ||
token == iOpenCL::DATA_PARAMETER_VME_SEARCH_PATH_TYPE; };
for (int i = 0; i < iOpenCL::NUM_DATA_PARAMETER_TOKENS; ++i) {
if (ignoreToken(i)) {
continue;
}
kernelDataParamToken->Type = i;
decodedKernel = {};
NEO::PatchTokenBinary::decodeKernelFromPatchtokensBlob(kernelToDecode.blobs.kernelInfo, decodedKernel);

View File

@@ -16,7 +16,6 @@
#include "shared/source/helpers/hw_info.h"
#include "shared/source/helpers/ptr_math.h"
#include "shared/source/helpers/string.h"
#include "shared/source/kernel/kernel_arg_descriptor_extended_vme.h"
#include "shared/source/program/kernel_info.h"
#include "shared/source/program/program_info.h"
#include "shared/test/common/helpers/debug_manager_state_restore.h"
@@ -5813,30 +5812,6 @@ TEST_F(decodeZeInfoKernelEntryTest, GivenValidSamplerArgumentWithMetadataThenPop
offset: 8
size: 4
arg_index: 2
- arg_type: arg_bypointer
offset: 12
size: 0
arg_index: 3
addrmode: bindless
addrspace: sampler
access_type: readwrite
sampler_type: vme
- arg_type: vme_mb_block_type
offset: 20
size: 4
arg_index: 3
- arg_type: vme_subpixel_mode
offset: 24
size: 4
arg_index: 3
- arg_type: vme_sad_adjust_mode
offset: 28
size: 4
arg_index: 3
- arg_type: vme_search_path_type
offset: 32
size: 4
arg_index: 3
)===";
auto err = decodeZeInfoKernelEntry(zeinfo);
EXPECT_EQ(NEO::DecodeError::success, err);
@@ -5864,17 +5839,8 @@ TEST_F(decodeZeInfoKernelEntryTest, GivenValidSamplerArgumentWithMetadataThenPop
EXPECT_EQ(2U, sampler2.index);
EXPECT_EQ(undefined<uint8_t>, sampler2.size);
auto &sampler3 = args[3].as<ArgDescSampler>();
EXPECT_TRUE(args[3].getExtendedTypeInfo().hasVmeExtendedDescriptor);
EXPECT_EQ(12U, sampler3.bindless);
auto vmePayload = static_cast<NEO::ArgDescVme *>(kd.payloadMappings.explicitArgsExtendedDescriptors[3].get());
EXPECT_EQ(20U, vmePayload->mbBlockType);
EXPECT_EQ(24U, vmePayload->subpixelMode);
EXPECT_EQ(28U, vmePayload->sadAdjustMode);
EXPECT_EQ(32U, vmePayload->searchPathType);
EXPECT_TRUE(kd.kernelAttributes.flags.usesSamplers);
EXPECT_TRUE(kd.kernelAttributes.flags.usesVme);
EXPECT_FALSE(kd.kernelAttributes.flags.usesVme);
}
TEST_F(decodeZeInfoKernelEntryTest, GivenBindlessSamplerArgumentWithMetadataThenKernelDescriptorIsPopulated) {

View File

@@ -7,7 +7,6 @@
#include "shared/source/device_binary_format/patchtokens_decoder.h"
#include "shared/source/helpers/aligned_memory.h"
#include "shared/source/kernel/kernel_arg_descriptor_extended_vme.h"
#include "shared/source/kernel/kernel_descriptor.h"
#include "shared/source/kernel/kernel_descriptor_from_patchtokens.h"
#include "shared/test/common/device_binary_format/patchtokens_tests.h"
@@ -1014,49 +1013,6 @@ TEST(KernelDescriptorFromPatchtokens, GivenKernelWithSlmArgumentAndMetadataThenK
}
}
TEST(KernelDescriptorFromPatchtokens, GivenKernelWithSamplerArgumentAndMetadataWhenSamplerTypeIsVmeThenKernelDescriptorIsProperlyPopulated) {
std::vector<uint8_t> storage;
NEO::PatchTokenBinary::KernelFromPatchtokens kernelTokens = PatchTokensTestData::ValidEmptyKernel::create(storage);
kernelTokens.tokens.kernelArgs.resize(1);
kernelTokens.tokens.kernelArgs[0].objectType = NEO::PatchTokenBinary::ArgObjectType::sampler;
{
NEO::KernelDescriptor dst = {};
NEO::populateKernelDescriptor(dst, kernelTokens, sizeof(void *));
EXPECT_TRUE(dst.payloadMappings.explicitArgs[0].is<NEO::ArgDescriptor::argTSampler>());
EXPECT_TRUE(dst.kernelAttributes.flags.usesSamplers);
EXPECT_FALSE(dst.payloadMappings.explicitArgs[0].getExtendedTypeInfo().hasVmeExtendedDescriptor);
EXPECT_TRUE(dst.payloadMappings.explicitArgsExtendedDescriptors.empty());
}
{
kernelTokens.tokens.kernelArgs[0].objectTypeSpecialized = NEO::PatchTokenBinary::ArgObjectTypeSpecialized::vme;
iOpenCL::SPatchDataParameterBuffer mbBlockType = {};
iOpenCL::SPatchDataParameterBuffer subpixelMode = {};
iOpenCL::SPatchDataParameterBuffer sadAdjustMode = {};
iOpenCL::SPatchDataParameterBuffer searchPathType = {};
mbBlockType.Offset = 2;
subpixelMode.Offset = 3;
sadAdjustMode.Offset = 5;
searchPathType.Offset = 7;
kernelTokens.tokens.kernelArgs[0].metadataSpecialized.vme.mbBlockType = &mbBlockType;
kernelTokens.tokens.kernelArgs[0].metadataSpecialized.vme.subpixelMode = &subpixelMode;
kernelTokens.tokens.kernelArgs[0].metadataSpecialized.vme.sadAdjustMode = &sadAdjustMode;
kernelTokens.tokens.kernelArgs[0].metadataSpecialized.vme.searchPathType = &searchPathType;
NEO::KernelDescriptor dst = {};
NEO::populateKernelDescriptor(dst, kernelTokens, sizeof(void *));
EXPECT_TRUE(dst.payloadMappings.explicitArgs[0].is<NEO::ArgDescriptor::argTSampler>());
EXPECT_TRUE(dst.kernelAttributes.flags.usesSamplers);
EXPECT_TRUE(dst.payloadMappings.explicitArgs[0].getExtendedTypeInfo().hasVmeExtendedDescriptor);
ASSERT_EQ(1U, dst.payloadMappings.explicitArgsExtendedDescriptors.size());
auto argVme = reinterpret_cast<NEO::ArgDescVme *>(dst.payloadMappings.explicitArgsExtendedDescriptors[0].get());
EXPECT_EQ(mbBlockType.Offset, argVme->mbBlockType);
EXPECT_EQ(subpixelMode.Offset, argVme->subpixelMode);
EXPECT_EQ(sadAdjustMode.Offset, argVme->sadAdjustMode);
EXPECT_EQ(searchPathType.Offset, argVme->searchPathType);
}
}
TEST(KernelDescriptorFromPatchtokens, GivenKernelWithInlineVmeThenKernelDescriptorIsProperlyPopulated) {
std::vector<uint8_t> storage;
NEO::PatchTokenBinary::KernelFromPatchtokens kernelTokens = PatchTokensTestData::ValidEmptyKernel::create(storage);

View File

@@ -79,8 +79,6 @@ TEST(KernelDescriptor, WhenDefaultInitializedThenValuesAreCleared) {
EXPECT_EQ(NEO::undefined<NEO::CrossThreadDataOffset>, desc.payloadMappings.implicitArgs.localMemoryStatelessWindowSize);
EXPECT_EQ(NEO::undefined<NEO::CrossThreadDataOffset>, desc.payloadMappings.implicitArgs.localMemoryStatelessWindowStartAddres);
EXPECT_EQ(0U, desc.payloadMappings.explicitArgsExtendedDescriptors.size());
EXPECT_TRUE(desc.kernelMetadata.kernelName.empty());
EXPECT_TRUE(desc.kernelMetadata.kernelLanguageAttributes.empty());
EXPECT_TRUE(desc.kernelMetadata.printfStringsMap.empty());