mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-09 06:23:01 +08:00
feature: assert support - decode zebin argument
Related-To: NEO-5753 Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
a4a296d59f
commit
c0794bd974
@@ -119,6 +119,7 @@ inline constexpr ConstStringRef syncBuffer("sync_buffer");
|
||||
inline constexpr ConstStringRef rtGlobalBuffer("rt_global_buffer");
|
||||
inline constexpr ConstStringRef dataConstBuffer("const_base");
|
||||
inline constexpr ConstStringRef dataGlobalBuffer("global_base");
|
||||
inline constexpr ConstStringRef assertBuffer("assert_buffer");
|
||||
|
||||
namespace Image {
|
||||
inline constexpr ConstStringRef width("image_width");
|
||||
@@ -482,6 +483,7 @@ enum ArgType : uint8_t {
|
||||
ArgTypeRtGlobalBuffer,
|
||||
ArgTypeDataConstBuffer,
|
||||
ArgTypeDataGlobalBuffer,
|
||||
ArgTypeAssertBuffer,
|
||||
ArgTypeMax
|
||||
};
|
||||
|
||||
|
||||
@@ -1205,6 +1205,10 @@ DecodeError populateKernelPayloadArgument(NEO::KernelDescriptor &dst, const Kern
|
||||
dst.kernelAttributes.flags.usesPrintf = true;
|
||||
return populateArgPointerStateless(dst.payloadMappings.implicitArgs.printfSurfaceAddress);
|
||||
|
||||
case Types::Kernel::ArgTypeAssertBuffer:
|
||||
dst.kernelAttributes.flags.usesAssert = true;
|
||||
return populateArgPointerStateless(dst.payloadMappings.implicitArgs.assertBufferAddress);
|
||||
|
||||
case Types::Kernel::ArgTypeSyncBuffer:
|
||||
dst.kernelAttributes.flags.usesSyncBuffer = true;
|
||||
return populateArgPointerStateless(dst.payloadMappings.implicitArgs.syncBufferAddress);
|
||||
|
||||
@@ -22,7 +22,7 @@ using namespace Tags::Kernel::PayloadArgument::ArgType::Sampler::Vme;
|
||||
using ArgType = Types::Kernel::ArgType;
|
||||
|
||||
inline constexpr ConstStringRef name = "argument type";
|
||||
inline constexpr LookupArray<ConstStringRef, ArgType, 38> lookup({{{packedLocalIds, ArgType::ArgTypePackedLocalIds},
|
||||
inline constexpr LookupArray<ConstStringRef, ArgType, 39> lookup({{{packedLocalIds, ArgType::ArgTypePackedLocalIds},
|
||||
{localId, ArgType::ArgTypeLocalId},
|
||||
{localSize, ArgType::ArgTypeLocalSize},
|
||||
{groupCount, ArgType::ArgTypeGroupCount},
|
||||
@@ -59,7 +59,8 @@ inline constexpr LookupArray<ConstStringRef, ArgType, 38> lookup({{{packedLocalI
|
||||
{syncBuffer, ArgType::ArgTypeSyncBuffer},
|
||||
{rtGlobalBuffer, ArgType::ArgTypeRtGlobalBuffer},
|
||||
{dataConstBuffer, ArgType::ArgTypeDataConstBuffer},
|
||||
{dataGlobalBuffer, ArgType::ArgTypeDataGlobalBuffer}}});
|
||||
{dataGlobalBuffer, ArgType::ArgTypeDataGlobalBuffer},
|
||||
{assertBuffer, ArgType::ArgTypeAssertBuffer}}});
|
||||
static_assert(lookup.size() == ArgType::ArgTypeMax - 1, "Every enum field must be present");
|
||||
} // namespace ArgType
|
||||
|
||||
|
||||
@@ -4886,6 +4886,26 @@ TEST_F(decodeZeInfoKernelEntryTest, GivenArgTypePrintfBufferWhenOffsetAndSizeIsV
|
||||
EXPECT_EQ(8U, printfSurfaceAddress.pointerSize);
|
||||
}
|
||||
|
||||
TEST_F(decodeZeInfoKernelEntryTest, GivenArgTypeAssertBufferWhenOffsetAndSizeIsValidThenPopulatesKernelDescriptor) {
|
||||
ConstStringRef zeinfo = R"===(
|
||||
kernels:
|
||||
- name : some_kernel
|
||||
execution_env:
|
||||
simd_size: 32
|
||||
payload_arguments:
|
||||
- arg_type: assert_buffer
|
||||
offset: 32
|
||||
size: 8
|
||||
)===";
|
||||
auto err = decodeZeInfoKernelEntry(zeinfo);
|
||||
EXPECT_EQ(NEO::DecodeError::Success, err);
|
||||
EXPECT_TRUE(errors.empty()) << errors;
|
||||
EXPECT_TRUE(warnings.empty()) << warnings;
|
||||
const auto assertBufferAddress = kernelDescriptor->payloadMappings.implicitArgs.assertBufferAddress;
|
||||
ASSERT_EQ(32U, assertBufferAddress.stateless);
|
||||
EXPECT_EQ(8U, assertBufferAddress.pointerSize);
|
||||
}
|
||||
|
||||
TEST_F(decodeZeInfoKernelEntryTest, GivenArgTypeSyncBufferWhenOffsetAndSizeIsValidThenPopulatesKernelDescriptor) {
|
||||
ConstStringRef zeinfo = R"===(
|
||||
kernels:
|
||||
|
||||
Reference in New Issue
Block a user