Hi!
I was investigating some strange slowdowns in some MP screens when I came across the texture packing stuff.
MY QUESTION : Is texture packing really necessary ?
I has the advantage of making all texture sizes powers of two (say 2048x2048) and greatly reduce the number of textures, but in some cases it might be dangerous.
For example, my old laptop here has 32Mb (nvidia geforce go 440) of dedicated graphics memory and the skin I use takes 64Mb of data (4 texturesx2048x2048xR8G8B8A8). Im not even counting the thumbnails (skin is PM3).
In a given screen, if all the images are fetched from the 4 textures, the graphics driver will need to start swapping textures at every frame. I've experienced that with media portal.
SOLUTIONS :
1) Disable texture packing and use rectangle textures which are now commonly supported by gfx HW.
2) Enable texture compression. The code seems to be there, but commented out.
3) Limit the size of packed texture to a lower size could help. (lower than maximum supported size, instead of 4 2Kx2K, I would have 16+ 1Kx1K).
4) Pack images that will be in the same screen together. (Ex: All images references by mymusicnowplaying.xml should be in the same textures as much as possible).
5) Reduce size of the images in my skin (not really an option because it is a lot of trouble...). I tried scaling all the PNGs of the sking by 50% so I get only 1 packed texture and the GUI started running MUCH smoother. No more strange slowdowns.
What do you guys think ?
Mat
I was investigating some strange slowdowns in some MP screens when I came across the texture packing stuff.
MY QUESTION : Is texture packing really necessary ?
I has the advantage of making all texture sizes powers of two (say 2048x2048) and greatly reduce the number of textures, but in some cases it might be dangerous.
For example, my old laptop here has 32Mb (nvidia geforce go 440) of dedicated graphics memory and the skin I use takes 64Mb of data (4 texturesx2048x2048xR8G8B8A8). Im not even counting the thumbnails (skin is PM3).
In a given screen, if all the images are fetched from the 4 textures, the graphics driver will need to start swapping textures at every frame. I've experienced that with media portal.
SOLUTIONS :
1) Disable texture packing and use rectangle textures which are now commonly supported by gfx HW.
2) Enable texture compression. The code seems to be there, but commented out.
3) Limit the size of packed texture to a lower size could help. (lower than maximum supported size, instead of 4 2Kx2K, I would have 16+ 1Kx1K).
4) Pack images that will be in the same screen together. (Ex: All images references by mymusicnowplaying.xml should be in the same textures as much as possible).
5) Reduce size of the images in my skin (not really an option because it is a lot of trouble...). I tried scaling all the PNGs of the sking by 50% so I get only 1 packed texture and the GUI started running MUCH smoother. No more strange slowdowns.
What do you guys think ?
Mat