diff --git a/shared/source/device_binary_format/zebin_decoder.cpp b/shared/source/device_binary_format/zebin_decoder.cpp index 772d4ffeed..ca3065d891 100644 --- a/shared/source/device_binary_format/zebin_decoder.cpp +++ b/shared/source/device_binary_format/zebin_decoder.cpp @@ -829,6 +829,9 @@ NEO::DecodeError populateArgDescriptor(const NEO::Elf::ZebinKernelMetadata::Type outErrReason.append("Invalid or missing memory addressing mode for arg idx : " + std::to_string(src.argIndex) + " in context of : " + dst.kernelMetadata.kernelName + ".\n"); return DecodeError::InvalidBinary; case NEO::Elf::ZebinKernelMetadata::Types::Kernel::PayloadArgument::MemoryAddressingModeStateful: + if (dst.payloadMappings.explicitArgs[src.argIndex].is()) { + dst.payloadMappings.explicitArgs[src.argIndex].as(true).accessedUsingStatelessAddressingMode = false; + } break; case NEO::Elf::ZebinKernelMetadata::Types::Kernel::PayloadArgument::MemoryAddressingModeStateless: if (false == dst.payloadMappings.explicitArgs[src.argIndex].is()) { 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 4fd5605029..48b3a487da 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 @@ -4476,6 +4476,7 @@ TEST(PopulateArgDescriptorCrossthreadPalyoad, GivenPointerArgWhenMemoryAddressin switch (addressingMode.second) { default: EXPECT_EQ(AddressingMode::MemoryAddressingModeStateful, addressingMode.second); + EXPECT_FALSE(argAsPointer.accessedUsingStatelessAddressingMode); break; case AddressingMode::MemoryAddressingModeStateless: EXPECT_EQ(16, argAsPointer.stateless);