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) {
|
if (bindlessBufferAccess) {
|
||||||
dst.kernelAttributes.bufferAddressingMode = KernelDescriptor::BindlessAndStateless;
|
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) {
|
if (bindlessImageAccess) {
|
||||||
dst.kernelAttributes.imageAddressingMode = KernelDescriptor::Bindless;
|
dst.kernelAttributes.imageAddressingMode = KernelDescriptor::Bindless;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1551,6 +1551,28 @@ kernels:
|
||||||
EXPECT_EQ(KernelDescriptor::BindlessAndStateless, kernelDescriptor->kernelAttributes.bufferAddressingMode);
|
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) {
|
TEST_F(decodeZeInfoKernelEntryTest, GivenStatefulImplicitArgsWhenDecodingZeInfoThenNumberOfStatefulArgsIsCorrect) {
|
||||||
ConstStringRef zeinfo = R"===(
|
ConstStringRef zeinfo = R"===(
|
||||||
kernels:
|
kernels:
|
||||||
|
|
Loading…
Reference in New Issue