Regarding GPUs being only able to accept square or POT textures, both of those no longer apply today. The square texture requirement was really long long ago and hasn’t been relevant for a long while. The POT requirement is a bit more recent but with D3D11 and Vulkan/Metal this is also a thing of the past. If you don’t want to develop a retro game that runs on vintage hardware, these GPU requirements are no longer relevant today.
However, you still cannot run free with your texture sizes today, there are still limitations imposed from other sources. Sticking to POT (non-square) textures is probably a good baseline to avoid issues.
e.g. some limitations:
- Crunch texture compression in Unity requires texture sizes be a multiple of 4
- Using mip-maps, only POT textures can be compressed
- PVRTC requires POT as well, though ASTC works with NPOT and is well supported today