sRGB vs linear color space in 2D

Godot Version

4.3

Question

I have some questions about how color spaces are handled from import to rendering in Godot 2D.

  • How are 2D images encoded on import? I would expect an sRGB image to be imported as such but I saw some discussions saying 2D images are always imported in linear space such as here and here.

    • For rendering, it seems Godot always renders in sRGB space (source). So why would Godot convert sRGB images to linear on import and then back to sRGB for rendering?
  • How does enabling HDR 2D affect this process? It seems like rendering is performed in linear space but the result is converted back to sRGB before output (source).

  • On a more practical note, what color space should I create my art assets in to ensure the output colors are accurate? Is there a different recommendation for HDR enabled and disabled?

Thank you!