fix: assume stateless access to buffers
- if buffers are not bindful or bindless, set stateless addressing mode for buffers Related-To: NEO-12800 Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
parent
a258c9b010
commit
44264b2b5c
|
@ -1046,7 +1046,11 @@ DecodeError decodeZeInfoKernelPayloadArguments(KernelDescriptor &dst, Yaml::Yaml
|
|||
|
||||
if (bindlessBufferAccess) {
|
||||
dst.kernelAttributes.bufferAddressingMode = KernelDescriptor::BindlessAndStateless;
|
||||
} else if (!bindfulBufferAccess) {
|
||||
DEBUG_BREAK_IF(dst.kernelAttributes.numArgsStateful != 0 && !dst.kernelAttributes.flags.usesImages);
|
||||
dst.kernelAttributes.bufferAddressingMode = KernelDescriptor::Stateless;
|
||||
}
|
||||
|
||||
if (bindlessImageAccess) {
|
||||
dst.kernelAttributes.imageAddressingMode = KernelDescriptor::Bindless;
|
||||
}
|
||||
|
|
|
@ -1551,6 +1551,28 @@ kernels:
|
|||
EXPECT_EQ(KernelDescriptor::BindlessAndStateless, kernelDescriptor->kernelAttributes.bufferAddressingMode);
|
||||
}
|
||||
|
||||
TEST_F(decodeZeInfoKernelEntryTest, GivenStatelessArgBufferAndMissingHas4GbBuffersInExecEnvWhenDecodingZeInfoThenAssumeBuffersAccessedInStatelessMode) {
|
||||
ConstStringRef zeinfo = R"===(
|
||||
kernels:
|
||||
- name : some_kernel
|
||||
execution_env:
|
||||
simd_size: 8
|
||||
payload_arguments:
|
||||
- arg_type: arg_bypointer
|
||||
offset: 0
|
||||
size: 8
|
||||
arg_index: 0
|
||||
addrmode: stateless
|
||||
addrspace: global
|
||||
access_type: readwrite
|
||||
...
|
||||
)===";
|
||||
auto err = decodeZeInfoKernelEntry(zeinfo);
|
||||
EXPECT_EQ(NEO::DecodeError::success, err);
|
||||
|
||||
EXPECT_EQ(KernelDescriptor::Stateless, kernelDescriptor->kernelAttributes.bufferAddressingMode);
|
||||
}
|
||||
|
||||
TEST_F(decodeZeInfoKernelEntryTest, GivenStatefulImplicitArgsWhenDecodingZeInfoThenNumberOfStatefulArgsIsCorrect) {
|
||||
ConstStringRef zeinfo = R"===(
|
||||
kernels:
|
||||
|
|
Loading…
Reference in New Issue