[Iris]: TArray<FVector> losing quantization-level (FVectorQuantized, FVectorQuantized10, etc) during Iris Serialization

Hey folks,

We’ve been noticing a lot of our RPC calls having to split the net object attachment. After some investigation, it seems that one of our RPCs sends a custom struct containing a TArray<FVector>, this list holds different levels of quantized FVectors (FVector_Quantized, FVector_Quantized10). This worked as expected previously since the structs have custom `NetSerialize` methods. However after moving to Iris, while serializing the array it looks like each FVector is using the default FVectorNetSerializer instead of the specific quantized serializer (FVectorQuantizedNetSerializer/FVectorQuantized10NetSerializer).

I would have expected the types to choose the correct quantized-level serializer, but according to our network traces that doesn’t seem to be the case.

We’ve found an alternate way of creating a custom net serializer which can handle choosing the right NetSerializer based on some additional enum for quantization level (based on the FRepMovementNetSerializer). After inspecting the net traces it seems to bring down our Vector sizes to what we expect.

Is there something we’re doing wrong here, or is this something that Epic is thinking about addressing in the future?

Hi,

To get a better idea of the issue, could you provide some more information on how your TArray<FVector> is set up and used?

In my own test project, I did observe the elements of my TArray<FVector> all using the FVectorNetSerializer, rather than one of the serializers derived FPackedVectorNetSerializerBase. However, without Iris enabled, the elements of this array still seem to use standard vector serialization without any quantization, and I’m not seeing them call into the quantized types’ NetSerialize functions.

Thanks,

Alex