Posts: 3,956
Joined: Dec 2008
Reputation:
62
Hi guys,
what are recommendations regarding large images 1280x720 - to pack or not to pack?
Texture packer is storing them as 2048x2048 if I understand it right? This seams as graphics memory waste IF the skin performance does not benefit from it regardless of bigger size?
Thanks.
Posts: 4,549
Joined: Dec 2007
Reputation:
17
topfs2
Team-Kodi Developer
Posts: 4,549
Texturepacker will also store it as ARGB, so it will take quite a bit more space also.
I'd say that big images which are background loaded no matter might aswell be stored outside the texture bundle. Obviously this is only if you don't want the big textures to be compressed (as in GPU compression algorithms).
If you have problems please read
this before posting
Always read the
XBMC online-manual,
FAQ and
search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the
forum rules.
For troubleshooting and bug reporting please make sure you
read this first.
"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
Posts: 4,549
Joined: Dec 2007
Reputation:
17
topfs2
Team-Kodi Developer
Posts: 4,549
Well for ATV2 there is no GPU compression available (yet). GPU Compression doesn't increase performance generally but limits the needed bw and space for the GPU. Using GPU compression can sometimes lead to higher performance since it may be better optimized (with regards to texture fetching and such). its hard to say and generally best to just try it out and see what works, one of the reasons one need to optimize to a specific piece of hardware in these cases.
With larger images, if you store them as BMP that ought to be very close to whats in texture packer, its uncompressed with a little header essentially. The benefit with that is that it stores it in rgb if you want to. So I'd say do some tests, it will load faster but the performance when rendering will be the same.
If you have problems please read
this before posting
Always read the
XBMC online-manual,
FAQ and
search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the
forum rules.
For troubleshooting and bug reporting please make sure you
read this first.
"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
Posts: 12,706
Joined: Nov 2003
Reputation:
129
spiff
Team-Kodi Member
Posts: 12,706
afaik we use the hw jpeg decoder on atv2, so jpeg should be snappy as well.
Posts: 4,549
Joined: Dec 2007
Reputation:
17
topfs2
Team-Kodi Developer
Posts: 4,549
Oh right forgot about that.
Ideally a skinner shouldn't need to think about this all to much IMO, on systems where decoding jpg is super slow we should cache decoded on disk.
If you have problems please read
this before posting
Always read the
XBMC online-manual,
FAQ and
search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the
forum rules.
For troubleshooting and bug reporting please make sure you
read this first.
"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
Posts: 3,956
Joined: Dec 2008
Reputation:
62
Thanks, in that case it seams reasonable to leave them out of Xbt.
Posts: 26,215
Joined: Oct 2003
Reputation:
187
Just to correct a detail:
TexturePacker does NOT store 1280x720 images as a 2048x2048 texture. It will store it as a 1280x720 ARGB texture in general, or (if it decides it can compress to DXTn without losing too much MSE) it will compress to 1280x720 DXTn.
The main reason for leaving large images out of the texture bundle is that they're loaded in a background thread then, which means the UI doesn't stall while it loads.
Posts: 26,215
Joined: Oct 2003
Reputation:
187
No reason anymore (there used to be one)
Posts: 26,215
Joined: Oct 2003
Reputation:
187
That's the reason why some images should NOT be background loaded, yes.
That's not the reason why images in the XBT cannot be background loaded, however.
The reason was that xbox had shared mem, so the XBT loader used to dump the texture straight into memory, tack on the texture header and register the texture. This had to be done in the app thread.
This is no longer the case, so allowing some textures in XBT to be background loaded is fine - as you say, for the majority of images that we deal with in XBTs, it doesn't make sense anyway as you want 'em loaded all at once for animation timing etc.
Cheers,
Jonathan