Do 2048,1024,512 etc are a must texture size?

It’s a thing about how graphics cards work.
For 3D rendering, specifically, they are optimized to draw faster pixel buffers that are sized “power of 2” bits both width and height:

0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, etc…

So you can either have a texture square 2048 x 2048 or 2048 x 512, or 256 x 4096 and etc.

Any other resolution for height or width causes the GPU to do additional internal work to render that texture in 3D space.
Something like that, I’m not graphics programmer so I don’t know for sure what exactly happens inside the GPU.