FLAT_IMAGE patch tokens support
Change-Id: I9f4ea389871113842311de9ef4ac7bf74f7a46fa Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
This commit is contained in:
parent
3014b304ca
commit
8c604a6e16
|
@ -245,6 +245,18 @@ inline void decodeKernelDataParameterToken(const SPatchDataParameterBuffer *toke
|
|||
case DATA_PARAMETER_IMAGE_NUM_MIP_LEVELS:
|
||||
getKernelArg(out, argNum, ArgObjectType::Image).metadata.image.numMipLevels = token;
|
||||
break;
|
||||
case DATA_PARAMETER_FLAT_IMAGE_BASEOFFSET:
|
||||
getKernelArg(out, argNum, ArgObjectType::Image).metadata.image.flatBaseOffset = token;
|
||||
break;
|
||||
case DATA_PARAMETER_FLAT_IMAGE_WIDTH:
|
||||
getKernelArg(out, argNum, ArgObjectType::Image).metadata.image.flatWidth = token;
|
||||
break;
|
||||
case DATA_PARAMETER_FLAT_IMAGE_HEIGHT:
|
||||
getKernelArg(out, argNum, ArgObjectType::Image).metadata.image.flatHeight = token;
|
||||
break;
|
||||
case DATA_PARAMETER_FLAT_IMAGE_PITCH:
|
||||
getKernelArg(out, argNum, ArgObjectType::Image).metadata.image.flatPitch = token;
|
||||
break;
|
||||
|
||||
case DATA_PARAMETER_SAMPLER_COORDINATE_SNAP_WA_REQUIRED:
|
||||
getKernelArg(out, argNum, ArgObjectType::Sampler).metadata.sampler.coordinateSnapWaRequired = token;
|
||||
|
|
|
@ -65,6 +65,10 @@ struct KernelArgFromPatchtokens {
|
|||
const SPatchDataParameterBuffer *arraySize;
|
||||
const SPatchDataParameterBuffer *numSamples;
|
||||
const SPatchDataParameterBuffer *numMipLevels;
|
||||
const SPatchDataParameterBuffer *flatBaseOffset;
|
||||
const SPatchDataParameterBuffer *flatWidth;
|
||||
const SPatchDataParameterBuffer *flatHeight;
|
||||
const SPatchDataParameterBuffer *flatPitch;
|
||||
} image;
|
||||
struct {
|
||||
const SPatchDataParameterBuffer *bufferOffset;
|
||||
|
|
|
@ -101,6 +101,10 @@ std::string asString(DATA_PARAMETER_TOKEN dataParameter) {
|
|||
CASE_TOK_STR(DATA_PARAMETER_IMAGE_DEPTH);
|
||||
CASE_TOK_STR(DATA_PARAMETER_IMAGE_CHANNEL_DATA_TYPE);
|
||||
CASE_TOK_STR(DATA_PARAMETER_IMAGE_CHANNEL_ORDER);
|
||||
CASE_TOK_STR(DATA_PARAMETER_FLAT_IMAGE_BASEOFFSET);
|
||||
CASE_TOK_STR(DATA_PARAMETER_FLAT_IMAGE_WIDTH);
|
||||
CASE_TOK_STR(DATA_PARAMETER_FLAT_IMAGE_HEIGHT);
|
||||
CASE_TOK_STR(DATA_PARAMETER_FLAT_IMAGE_PITCH);
|
||||
CASE_TOK_STR(DATA_PARAMETER_SAMPLER_ADDRESS_MODE);
|
||||
CASE_TOK_STR(DATA_PARAMETER_SAMPLER_NORMALIZED_COORDS);
|
||||
CASE_TOK_STR(DATA_PARAMETER_GLOBAL_WORK_OFFSET);
|
||||
|
@ -856,6 +860,10 @@ std::string asString(const KernelArgFromPatchtokens &arg, const std::string &ind
|
|||
dumpOrNull(arg.metadata.image.arraySize, "", stream, indentLevel2);
|
||||
dumpOrNull(arg.metadata.image.numSamples, "", stream, indentLevel2);
|
||||
dumpOrNull(arg.metadata.image.numMipLevels, "", stream, indentLevel2);
|
||||
dumpOrNull(arg.metadata.image.flatBaseOffset, "", stream, indentLevel2);
|
||||
dumpOrNull(arg.metadata.image.flatWidth, "", stream, indentLevel2);
|
||||
dumpOrNull(arg.metadata.image.flatHeight, "", stream, indentLevel2);
|
||||
dumpOrNull(arg.metadata.image.flatPitch, "", stream, indentLevel2);
|
||||
break;
|
||||
case ArgObjectType::Sampler:
|
||||
stream << indentLevel1 << "Sampler Metadata:\n";
|
||||
|
|
|
@ -691,6 +691,10 @@ TEST(KernelDecoder, GivenKernelWithValidObjectArgMetadataPatchtokensThenDecoding
|
|||
auto arg1ImageArraySizeOff = pushBackDataParameterToken(iOpenCL::DATA_PARAMETER_IMAGE_ARRAY_SIZE, storage, 0U, 1U);
|
||||
auto arg1ImageNumSamplesOff = pushBackDataParameterToken(iOpenCL::DATA_PARAMETER_IMAGE_NUM_SAMPLES, storage, 0U, 1U);
|
||||
auto arg1ImageNumMipLevelOff = pushBackDataParameterToken(iOpenCL::DATA_PARAMETER_IMAGE_NUM_MIP_LEVELS, storage, 0U, 1U);
|
||||
auto arg1FlatImageBaseOffsetOff = pushBackDataParameterToken(iOpenCL::DATA_PARAMETER_FLAT_IMAGE_BASEOFFSET, storage, 0U, 1U);
|
||||
auto arg1FlatImageWidthOff = pushBackDataParameterToken(iOpenCL::DATA_PARAMETER_FLAT_IMAGE_WIDTH, storage, 0U, 1U);
|
||||
auto arg1FlatImageHeightOff = pushBackDataParameterToken(iOpenCL::DATA_PARAMETER_FLAT_IMAGE_HEIGHT, storage, 0U, 1U);
|
||||
auto arg1FlatImagePitchOff = pushBackDataParameterToken(iOpenCL::DATA_PARAMETER_FLAT_IMAGE_PITCH, storage, 0U, 1U);
|
||||
|
||||
auto arg2SamplerCoordinateSnapWaRequiredOff = pushBackDataParameterToken(iOpenCL::DATA_PARAMETER_SAMPLER_COORDINATE_SNAP_WA_REQUIRED, storage, 0U, 2U);
|
||||
auto arg2SamplerAddressModeOff = pushBackDataParameterToken(iOpenCL::DATA_PARAMETER_SAMPLER_ADDRESS_MODE, storage, 0U, 2U);
|
||||
|
@ -733,6 +737,10 @@ TEST(KernelDecoder, GivenKernelWithValidObjectArgMetadataPatchtokensThenDecoding
|
|||
EXPECT_TRUE(tokenOffsetMatched(base, arg1ImageArraySizeOff, decodedKernel.tokens.kernelArgs[1].metadata.image.arraySize));
|
||||
EXPECT_TRUE(tokenOffsetMatched(base, arg1ImageNumSamplesOff, decodedKernel.tokens.kernelArgs[1].metadata.image.numSamples));
|
||||
EXPECT_TRUE(tokenOffsetMatched(base, arg1ImageNumMipLevelOff, decodedKernel.tokens.kernelArgs[1].metadata.image.numMipLevels));
|
||||
EXPECT_TRUE(tokenOffsetMatched(base, arg1FlatImageBaseOffsetOff, decodedKernel.tokens.kernelArgs[1].metadata.image.flatBaseOffset));
|
||||
EXPECT_TRUE(tokenOffsetMatched(base, arg1FlatImageWidthOff, decodedKernel.tokens.kernelArgs[1].metadata.image.flatWidth));
|
||||
EXPECT_TRUE(tokenOffsetMatched(base, arg1FlatImageHeightOff, decodedKernel.tokens.kernelArgs[1].metadata.image.flatHeight));
|
||||
EXPECT_TRUE(tokenOffsetMatched(base, arg1FlatImagePitchOff, decodedKernel.tokens.kernelArgs[1].metadata.image.flatPitch));
|
||||
|
||||
EXPECT_TRUE(tokenOffsetMatched(base, arg2SamplerCoordinateSnapWaRequiredOff, decodedKernel.tokens.kernelArgs[2].metadata.sampler.coordinateSnapWaRequired));
|
||||
EXPECT_TRUE(tokenOffsetMatched(base, arg2SamplerAddressModeOff, decodedKernel.tokens.kernelArgs[2].metadata.sampler.addressMode));
|
||||
|
|
|
@ -1476,6 +1476,10 @@ TEST(KernelArgDumper, GivenImageKernelArgWithMetadataTokensThenProperlyCreatesDu
|
|||
auto arraySize = PatchTokensTestData::initDataParameterBufferToken(iOpenCL::DATA_PARAMETER_IMAGE_ARRAY_SIZE);
|
||||
auto numSamples = PatchTokensTestData::initDataParameterBufferToken(iOpenCL::DATA_PARAMETER_IMAGE_NUM_SAMPLES);
|
||||
auto numMipLevels = PatchTokensTestData::initDataParameterBufferToken(iOpenCL::DATA_PARAMETER_IMAGE_NUM_MIP_LEVELS);
|
||||
auto flatBaseOffset = PatchTokensTestData::initDataParameterBufferToken(iOpenCL::DATA_PARAMETER_FLAT_IMAGE_BASEOFFSET);
|
||||
auto flatWidth = PatchTokensTestData::initDataParameterBufferToken(iOpenCL::DATA_PARAMETER_FLAT_IMAGE_WIDTH);
|
||||
auto flatHeight = PatchTokensTestData::initDataParameterBufferToken(iOpenCL::DATA_PARAMETER_FLAT_IMAGE_HEIGHT);
|
||||
auto flatPitch = PatchTokensTestData::initDataParameterBufferToken(iOpenCL::DATA_PARAMETER_FLAT_IMAGE_PITCH);
|
||||
|
||||
kernelArg.metadata.image.width = &width;
|
||||
kernelArg.metadata.image.height = &height;
|
||||
|
@ -1485,6 +1489,10 @@ TEST(KernelArgDumper, GivenImageKernelArgWithMetadataTokensThenProperlyCreatesDu
|
|||
kernelArg.metadata.image.arraySize = &arraySize;
|
||||
kernelArg.metadata.image.numSamples = &numSamples;
|
||||
kernelArg.metadata.image.numMipLevels = &numMipLevels;
|
||||
kernelArg.metadata.image.flatBaseOffset = &flatBaseOffset;
|
||||
kernelArg.metadata.image.flatWidth = &flatWidth;
|
||||
kernelArg.metadata.image.flatHeight = &flatHeight;
|
||||
kernelArg.metadata.image.flatPitch = &flatPitch;
|
||||
auto generated = NEO::PatchTokenBinary::asString(kernelArg, " | ");
|
||||
std::stringstream expected;
|
||||
expected << R"===( | Kernel argument of type IMAGE
|
||||
|
@ -1593,6 +1601,58 @@ TEST(KernelArgDumper, GivenImageKernelArgWithMetadataTokensThenProperlyCreatesDu
|
|||
| 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;// = 44(DATA_PARAMETER_FLAT_IMAGE_BASEOFFSET)
|
||||
| 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;// = 45(DATA_PARAMETER_FLAT_IMAGE_WIDTH)
|
||||
| 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;// = 46(DATA_PARAMETER_FLAT_IMAGE_HEIGHT)
|
||||
| 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;// = 47(DATA_PARAMETER_FLAT_IMAGE_PITCH)
|
||||
| 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());
|
||||
}
|
||||
|
@ -1828,4 +1888,4 @@ TEST(PatchTokenDumper, GivenAnyTokenThenDumpingIsHandled) {
|
|||
EXPECT_NE(std::string::npos, dump.find("Type;// = " + std::to_string(i) + "(")) << "Update patchtokens_dumper.cpp with definition of SPatchDataParameterBuffer with type :" << i;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue