FQualityLevels: Strict == operator given lossy float serialization?

Scalability::FQualityLevels relies on strict equality for its members during comparisons. However, ResolutionQuality is stored as a standard float. When the engine serializes this state to disk via GConfig->SetFloat (inside SaveState) and subsequently parses it back during LoadState using FCString::Atof, it introduces subtle precision drift.

We were relying on this comparison for one of our metrics to determine if the user’s current ScalabilityQuality was the same as the auto-detected quality.

I fixed it on our side, but I was unsure if this behavior is considered an issue or if our approach simply fell outside the intended use case for the operator.

After closer inspection it does seem that the actual drift in the value was not introduced by the serialization itself but the way the values of CVar are set which essentially truncates the float to 6 significant figures which is then serialized introducing a drift between the serialized value and the benchmarked value we also store.