|
|
|
They are redesigning texture loading, and this project is "high priority": https://wiki.secondlife.com/wiki/Texture_Pipeline_Improvements
Really glad to hear that. I appreciate how crashes and all are serious and would have their first attention, but poor texture handling IMO is equal priority simply for the reason that if we can't SEE the world around us... doesn't really matter whether we're in-world or not.
I know there are complaints about slow texture loading from years ago. Personally amazed that this system has been in existence 8 years without someone fixing this. There's at least three stages involved in this problem - GPU/Main Memory transfers, Main Memory/Hard Drive transfers, and Hard Drive/Server transfers. Each stage needs to be looked at.
I suspect that in the GPU, each texture is stored as an uncompressed bitmap, though hopefully only once per texture before being rendered to the image buffer. A 1024x1024 texture takes 4 MB (pretty exactly, barring some housekeeping data), so on a 128MB video card, only about 30 or so will fit (to leave room for the draw window). A 1024x1024 is the equivalent of 4 512x512s, or 16 256x256s, so in any moderately complex build, you're likely to have more textures than can fit in the video card's memory at any one time. Main memory can't hold that many more - although holding them in main memory in JPEG2000 format and only decompressing them and sending them to the graphics card at need helps quite a bit. And of course, the hard drive is by FAR the part of your computer holding it back the most. You just can't get anywhere NEAR CPU data rates out of the hard drive, especially if you're doing random access. I suspect this is not going to be a simple one to solve, any time soon. After all, down the road, we're all going to want graphics "caves" with gigapixel displays making up each wall. I actually think that is far more complex than it needs to be. The first mistake would be storing the texture in bitmap rather than a compressed lossless form.
Considering that any webpage can transfer graphics pretty much instantly (so long as a decent server is involved) and even streaming video, I don't see that SL should have all that much difficulty in transferring a single texture when someone clicks on a vending machine. We understand of course, that when first entering a sim, rezzing time for a few thousand textures is going to be significant. That can be handled by simply rezzing the closest textures first (say, those within a 64m area) then moving on to most distant textures. This can easily be done by dividing the grid into logical 1024m parcels and rezzing the textures on the surrounding 4 parcels first. In addition, texture rezzing of items within the direct view of the avatar should be given top priority. If I zoom in on a sign, pretty much the only textures showing in my fiew are all that need to be rezzed. Thus, those textures should be rezzed immediately. I believe this problem needs to be handled not only from a technical aspect... but also from a client-logical aspect. Exactly what is the person looking at at this time? Whatever textures are in their immediate view and immediate vicinity... those are the ones to focus on. If they're focused on one specific texture, then that textures should have absolute top priority... especially if they cursor over or touch the prim. That alone could solve a lot of problems. If they would do nothing more than provide immediate delivery of cursor-positioned textures, that would put an end to shopping difficulties. That wouldn't take a lot of time and effort and would go a long way to fixing the immediate difficulties. Then they can fix the rest-- in high priority mode-- as time allows. Resolve as a duplicate. Please add any relevant recipes to reproduce this bug to VWR-9509 "Texture Cache Appears Ineffectve", or DEV-19402 "Downloading a single texture takes too long".
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. I think it a priority for LL to re-examine how they're handling texture deliver and if possible, rework the whole thing so that it works faster and better.
2. If that for some unimaginable reason is not possible, then at least give users the benefit of a touched item having texture loading and rezzing being given top priority. That way if we're shopping and want to see an item, even if everything else is gray, that one item will immediately rez upon touching.
But honestly, I cannot fathom why textures would take so incredibly long to rez. When we've been standing in the same sim for an hour, want to rez a texture to show our friends... and it takes a full minute for the texture to rez... something is seriously wrong.