From c15f7d52aa4f360eba2344449baa418b7608ac7c Mon Sep 17 00:00:00 2001 From: James Ward Date: Wed, 7 Dec 2022 15:38:01 +0000 Subject: Schema changes for CLAMP, PAD float attributes * Float attributes now serialized as uint8 vectors, but treated as floats at input/output to serialization Signed-off-by: James Ward Change-Id: I417b0fabe0ef11fea263fe937b57d49bbfdb00da --- src/tosa_serialization_handler.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/tosa_serialization_handler.cpp b/src/tosa_serialization_handler.cpp index a4410f2..2062522 100644 --- a/src/tosa_serialization_handler.cpp +++ b/src/tosa_serialization_handler.cpp @@ -619,6 +619,14 @@ tosa_err_t TosaSerializationHandler::Deserialize(const uint8_t* buf) return TOSA_OK; } +std::vector float_to_u8_wrapper(float f_in) +{ + const std::vector f_vec{ f_in }; + std::vector u8_out; + TosaSerializationHandler::ConvertF32toU8(f_vec, u8_out); + return u8_out; +} + tosa_err_t TosaSerializationHandler::Serialize() { // regions @@ -682,9 +690,11 @@ tosa_err_t TosaSerializationHandler::Serialize() fb_attribute = 0; break; #define DEF_ARGS_S_STR(NAME, V) , _builder.CreateString(reinterpret_cast(op->GetAttribute())->V().c_str()) +#define DEF_ARGS_S_FP_as_U8(NAME, V) \ + , _builder.CreateVector(float_to_u8_wrapper(reinterpret_cast(op->GetAttribute())->V())) #define DEF_ARGS_S_DEFAULT(NAME, V) , reinterpret_cast(op->GetAttribute())->V() #define DEF_ARGS_S_int32_t(NAME, V) DEF_ARGS_S_DEFAULT(NAME, V) -#define DEF_ARGS_S_float(NAME, V) DEF_ARGS_S_DEFAULT(NAME, V) +#define DEF_ARGS_S_float(NAME, V) DEF_ARGS_S_FP_as_U8(NAME, V) #define DEF_ARGS_S_bool(NAME, V) DEF_ARGS_S_DEFAULT(NAME, V) #define DEF_ARGS_S_ResizeMode(NAME, V) DEF_ARGS_S_DEFAULT(NAME, V) #define DEF_ARGS_S_DType(NAME, V) DEF_ARGS_S_DEFAULT(NAME, V) -- cgit v1.2.1