Skip to content

Commit 2c3a1bf

Browse files
Make calcualting explicitArgs number independent of payloadArgs size
Signed-off-by: Kacper Nowak <[email protected]>
1 parent c6a885b commit 2c3a1bf

File tree

3 files changed

+14
-14
lines changed

3 files changed

+14
-14
lines changed

shared/source/device_binary_format/zebin_decoder.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -543,7 +543,7 @@ DecodeError readZeInfoPerThreadPayloadArguments(const NEO::Yaml::YamlParser &par
543543

544544
DecodeError readZeInfoPayloadArguments(const NEO::Yaml::YamlParser &parser, const NEO::Yaml::Node &node,
545545
ZeInfoPayloadArguments &ouPayloadArguments,
546-
uint32_t &outMaxPayloadArgumentIndex,
546+
int32_t &outMaxPayloadArgumentIndex,
547547
int32_t &outMaxSamplerIndex,
548548
ConstStringRef context,
549549
std::string &outErrReason, std::string &outWarning) {
@@ -558,7 +558,7 @@ DecodeError readZeInfoPayloadArguments(const NEO::Yaml::YamlParser &parser, cons
558558
validPayload &= readEnumChecked(argTypeToken, payloadArgMetadata.argType, context, outErrReason);
559559
} else if (NEO::Elf::ZebinKernelMetadata::Tags::Kernel::PayloadArgument::argIndex == key) {
560560
validPayload &= parser.readValueChecked(payloadArgumentMemberNd, payloadArgMetadata.argIndex);
561-
outMaxPayloadArgumentIndex = std::max<uint32_t>(outMaxPayloadArgumentIndex, payloadArgMetadata.argIndex);
561+
outMaxPayloadArgumentIndex = std::max<int32_t>(outMaxPayloadArgumentIndex, payloadArgMetadata.argIndex);
562562
} else if (NEO::Elf::ZebinKernelMetadata::Tags::Kernel::PayloadArgument::offset == key) {
563563
validPayload &= readZeInfoValueChecked(parser, payloadArgumentMemberNd, payloadArgMetadata.offset, context, outErrReason);
564564
} else if (NEO::Elf::ZebinKernelMetadata::Tags::Kernel::PayloadArgument::size == key) {
@@ -971,7 +971,7 @@ NEO::DecodeError populateKernelDescriptor(NEO::ProgramInfo &dst, NEO::Elf::Elf<N
971971
}
972972
}
973973

974-
uint32_t maxArgumentIndex = 0U;
974+
int32_t maxArgumentIndex = -1;
975975
int32_t maxSamplerIndex = -1;
976976
ZeInfoPayloadArguments payloadArguments;
977977
if (false == zeInfokernelSections.payloadArgumentsNd.empty()) {

shared/source/device_binary_format/zebin_decoder.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ DecodeError readZeInfoPerThreadPayloadArguments(const NEO::Yaml::YamlParser &par
8484
using ZeInfoPayloadArguments = StackVec<NEO::Elf::ZebinKernelMetadata::Types::Kernel::PayloadArgument::PayloadArgumentBaseT, 32>;
8585
DecodeError readZeInfoPayloadArguments(const NEO::Yaml::YamlParser &parser, const NEO::Yaml::Node &node,
8686
ZeInfoPayloadArguments &ouPayloadArguments,
87-
uint32_t &outMaxPayloadArgumentIndex,
87+
int32_t &outMaxPayloadArgumentIndex,
8888
int32_t &outMaxSamplerIndex,
8989
ConstStringRef context,
9090
std::string &outErrReason, std::string &outWarning);

shared/test/unit_test/device_binary_format/zebin_decoder_tests.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1789,10 +1789,10 @@ TEST(ReadZeInfoPayloadArguments, GivenValidYamlEntriesThenSetProperMembers) {
17891789
std::string errors;
17901790
std::string warnings;
17911791
NEO::ZeInfoPayloadArguments args;
1792-
uint32_t maxArgIndex = 0U;
1792+
int32_t maxArgIndex = -1;
17931793
int32_t maxSmpIndex = -1;
17941794
auto err = NEO::readZeInfoPayloadArguments(parser, argsNode, args, maxArgIndex, maxSmpIndex, "some_kernel", errors, warnings);
1795-
EXPECT_EQ(2U, maxArgIndex);
1795+
EXPECT_EQ(2, maxArgIndex);
17961796
EXPECT_EQ(NEO::DecodeError::Success, err);
17971797
EXPECT_TRUE(errors.empty()) << errors;
17981798
EXPECT_TRUE(warnings.empty()) << warnings;
@@ -1833,7 +1833,7 @@ TEST(ReadZeInfoPayloadArguments, GivenUnknownEntryThenEmmitsWarning) {
18331833
std::string errors;
18341834
std::string warnings;
18351835
NEO::ZeInfoPayloadArguments args;
1836-
uint32_t maxArgIndex = 0U;
1836+
int32_t maxArgIndex = -1;
18371837
int32_t maxSmpIndex = -1;
18381838
auto err = NEO::readZeInfoPayloadArguments(parser, argsNode, args, maxArgIndex, maxSmpIndex, "some_kernel", errors, warnings);
18391839
EXPECT_EQ(NEO::DecodeError::Success, err);
@@ -1868,7 +1868,7 @@ TEST(ReadZeInfoBindingTableIndices, GivenInvalidValueForKnownEntryThenFails) {
18681868
std::string errors;
18691869
std::string warnings;
18701870
NEO::ZeInfoPayloadArguments args;
1871-
uint32_t maxArgIndex = 0U;
1871+
int32_t maxArgIndex = -1;
18721872
int32_t maxSmpIndex = -1;
18731873
auto err = NEO::readZeInfoPayloadArguments(parser, argsNode, args, maxArgIndex, maxSmpIndex, "some_kernel", errors, warnings);
18741874
EXPECT_EQ(NEO::DecodeError::InvalidBinary, err);
@@ -4253,7 +4253,7 @@ TEST(PopulateArgDescriptorCrossthreadPalyoad, GivenArgTypeLocalSizeWhenArgSizeVa
42534253
EXPECT_TRUE(errors.empty()) << errors;
42544254
EXPECT_TRUE(warnings.empty()) << warnings;
42554255
ASSERT_EQ(1U, programInfo.kernelInfos.size());
4256-
ASSERT_EQ(1U, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.explicitArgs.size());
4256+
ASSERT_EQ(0U, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.explicitArgs.size());
42574257
for (uint32_t i = 0; i < vectorSize / sizeof(uint32_t); ++i) {
42584258
EXPECT_EQ(16 + sizeof(uint32_t) * i, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.dispatchTraits.localWorkSize[i])
42594259
<< " vectorSize : " << vectorSize << ", idx : " << i;
@@ -4327,7 +4327,7 @@ TEST(PopulateArgDescriptorCrossThreadPayload, GivenArgTypePrivateBaseStatelessWh
43274327
EXPECT_TRUE(errors.empty()) << errors;
43284328
EXPECT_TRUE(warnings.empty()) << warnings;
43294329
ASSERT_EQ(1U, programInfo.kernelInfos.size());
4330-
ASSERT_EQ(1U, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.explicitArgs.size());
4330+
ASSERT_EQ(0U, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.explicitArgs.size());
43314331
ASSERT_EQ(16U, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.implicitArgs.privateMemoryAddress.stateless);
43324332
ASSERT_EQ(8U, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.implicitArgs.privateMemoryAddress.pointerSize);
43334333
}
@@ -4368,7 +4368,7 @@ TEST(PopulateArgDescriptorCrossthreadPalyoad, GivenArgTypeGlobaIdOffsetWhenArgSi
43684368
EXPECT_TRUE(errors.empty()) << errors;
43694369
EXPECT_TRUE(warnings.empty()) << warnings;
43704370
ASSERT_EQ(1U, programInfo.kernelInfos.size());
4371-
ASSERT_EQ(1U, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.explicitArgs.size());
4371+
ASSERT_EQ(0U, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.explicitArgs.size());
43724372
for (uint32_t i = 0; i < vectorSize / sizeof(uint32_t); ++i) {
43734373
EXPECT_EQ(16 + sizeof(uint32_t) * i, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.dispatchTraits.globalWorkOffset[i])
43744374
<< " vectorSize : " << vectorSize << ", idx : " << i;
@@ -4445,7 +4445,7 @@ TEST(PopulateArgDescriptorCrossthreadPalyoad, GivenArgTypeGroupCountWhenArgSizeV
44454445
EXPECT_TRUE(errors.empty()) << errors;
44464446
EXPECT_TRUE(warnings.empty()) << warnings;
44474447
ASSERT_EQ(1U, programInfo.kernelInfos.size());
4448-
ASSERT_EQ(1U, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.explicitArgs.size());
4448+
ASSERT_EQ(0U, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.explicitArgs.size());
44494449
for (uint32_t i = 0; i < vectorSize / sizeof(uint32_t); ++i) {
44504450
EXPECT_EQ(16 + sizeof(uint32_t) * i, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.dispatchTraits.numWorkGroups[i])
44514451
<< " vectorSize : " << vectorSize << ", idx : " << i;
@@ -4522,7 +4522,7 @@ TEST(PopulateArgDescriptorCrossthreadPalyoad, GivenArgTypeEnqueuedLocalSizeWhenA
45224522
EXPECT_TRUE(errors.empty()) << errors;
45234523
EXPECT_TRUE(warnings.empty()) << warnings;
45244524
ASSERT_EQ(1U, programInfo.kernelInfos.size());
4525-
ASSERT_EQ(1U, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.explicitArgs.size());
4525+
ASSERT_EQ(0U, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.explicitArgs.size());
45264526
for (uint32_t i = 0; i < vectorSize / sizeof(uint32_t); ++i) {
45274527
EXPECT_EQ(16 + sizeof(uint32_t) * i, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.dispatchTraits.enqueuedLocalWorkSize[i])
45284528
<< " vectorSize : " << vectorSize << ", idx : " << i;
@@ -4599,7 +4599,7 @@ TEST(PopulateArgDescriptorCrossthreadPalyoad, GivenArgTypeGlobalSizeWhenArgSizeV
45994599
EXPECT_TRUE(errors.empty()) << errors;
46004600
EXPECT_TRUE(warnings.empty()) << warnings;
46014601
ASSERT_EQ(1U, programInfo.kernelInfos.size());
4602-
ASSERT_EQ(1U, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.explicitArgs.size());
4602+
ASSERT_EQ(0U, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.explicitArgs.size());
46034603
for (uint32_t i = 0; i < vectorSize / sizeof(uint32_t); ++i) {
46044604
EXPECT_EQ(16 + sizeof(uint32_t) * i, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.dispatchTraits.globalWorkSize[i])
46054605
<< " vectorSize : " << vectorSize << ", idx : " << i;

0 commit comments

Comments
 (0)