How relevant are power-of-two textures on modern hardware? Put another way, let's say I have a 1050x1020 image. Which is the better practice: to upload it as a 1050x1020 texture, or to pad it with empty texels and create a 2048x1024 texture? Does the answer depend on how many texels I am wasting? (Downscaling or otherwise modifying the image itself is not an option.)
How relevant are power-of-two textures on modern hardware?
I had the same question recently:
https://www.gamedev.net/forums/topic/704642-npot-texture-here-2n-1-disadvantages/
I'd not waste memory on a bigger texture just to keep the pot, especially not in that case when the texture is just a little bit bigger. I mean, one would also have to divide a lot on texture lookups to resize the uv-coordinates of the full texture to the part with actual data.
Mipmap generation is much simpler if the dimensions are powers of two.
Niko Suni
Mipmaps, tiled resources, compression, all kinds of processing kernels/compute shader threads and other resources are usually much easier to set up with power of 2 resources.
Bottom line profiling would give you the answer.
Personally if I have control over the assets/ pipeline, I just tend to use powers of 2, because it's not actually more work.
Crealysm game & engine development: http://www.crealysm.com
Looking for a passionate, disciplined and structured producer? PM me
If you don't mip map or anisotropic filter the texture, then using NPOT is probably better. While drivers round up internally, exactly how they do it depends on the hardware brand/architecture.
If you have control over asset creation, creating assets in POT sizes is generally better, because it will filter better, and have optimal hardware memory usage.