Why does Unreal Engine use SDL2?

Why does Unreal Engine use SDL2?

It is a convenient compatibility library that takes care of more low level details like differences between display servers and window managers. Also, without it, cross-compilation would be harder because UE4 would need all the headers that SDL uses.

We fix and extend the library to suit our needs though, contributing the changes back to the project.