In libsodium, there're 3 symmetric encryption(stream cipher) which are AES256-GCM(Hardware-accelerated), XSalsa20Poly1305 and XChaCha20Poly1305(uncertain which version of libsodium add support to XChaCha20Poly1305).
Considering that AES256-GCM will be a primary choice if hardware supports it as it's an industry standard which commonly seen in file storage or any other applicable platform.
AES256-GCM was commonly seen in file storage as the server will request user's secret such as passwords/passphrase to derive a key then perform encryption/decryption.
In scenario where it uses total endpoint encryption(does not send any user's secret to the server), the encryption was done on devices instead of server.
If the device is unable to support AES256-GCM (hardware accelerated), how to choose between XSalsa20Poly1305(crypto_secretbox_easy) and XChaCha20Poly1305(secretbox_xchacha20poly1305)?