From b3d94add4bc38d41c83a17b04aa745ad5e9d2b42 Mon Sep 17 00:00:00 2001 From: "Nowak, Kacper" Date: Tue, 14 Jun 2022 16:28:55 +0000 Subject: [PATCH] Set missing field for buffer_address kernel arg type Set missing pointerSize (basing on source size field) for buffer_address arg type. Signed-off-by: Nowak, Kacper Related-To: NEO-7048 --- shared/source/device_binary_format/zebin_decoder.cpp | 4 +++- .../unit_test/device_binary_format/zebin_decoder_tests.cpp | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/shared/source/device_binary_format/zebin_decoder.cpp b/shared/source/device_binary_format/zebin_decoder.cpp index 1a655676ec..1afafb921a 100644 --- a/shared/source/device_binary_format/zebin_decoder.cpp +++ b/shared/source/device_binary_format/zebin_decoder.cpp @@ -921,7 +921,9 @@ NEO::DecodeError populateArgDescriptor(const NEO::Elf::ZebinKernelMetadata::Type } case NEO::Elf::ZebinKernelMetadata::Types::Kernel::ArgTypeBufferAddress: { - dst.payloadMappings.explicitArgs[src.argIndex].as(true).stateless = src.offset; + auto &argAsPtr = dst.payloadMappings.explicitArgs[src.argIndex].as(true); + argAsPtr.stateless = src.offset; + argAsPtr.pointerSize = src.size; break; } diff --git a/shared/test/unit_test/device_binary_format/zebin_decoder_tests.cpp b/shared/test/unit_test/device_binary_format/zebin_decoder_tests.cpp index d5b52f61f0..913a52c954 100644 --- a/shared/test/unit_test/device_binary_format/zebin_decoder_tests.cpp +++ b/shared/test/unit_test/device_binary_format/zebin_decoder_tests.cpp @@ -5023,6 +5023,7 @@ TEST(PopulateArgDescriptorCrossthreadPayload, givenPureStatefulArgWithBufferAddr access_type: readwrite - arg_type: buffer_address offset: 32 + size: 8 arg_index: 0 binding_table_indices: - bti_value: 0 @@ -5052,6 +5053,7 @@ TEST(PopulateArgDescriptorCrossthreadPayload, givenPureStatefulArgWithBufferAddr const auto &arg = programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.explicitArgs[0].as(); EXPECT_EQ(32, arg.stateless); + EXPECT_EQ(8, arg.pointerSize); EXPECT_FALSE(arg.accessedUsingStatelessAddressingMode); EXPECT_TRUE(arg.isPureStateful()); }