Hi, I worked some more on the "gray world on Mac" problem and the plot thickened really as I drilled down the code. At that time, I do have a reproable case of "gray world" on Mac and no less than 3 ways of fixing it, each corresponding to a bona fide bug or, at least, oddity. So let's review them:
1- Missing skins/default/textures/ files: as explained earlier in this thread, my initial problem was fixed by simply adding the new and missing media_*.png textures to the skin (those are used by the new media browsing UI). The thinking was that missing textures should not result in such catastrophic failure but, heck... AimeeT though reported that this was not her problem (she had the textures) and, anyway, those were missing also on my Windows built and no such effect resulted. So, not the solution though there's still one action item for me: Action: make sure media_*.png textures are correctly exported in the artwork bundle. 2- Inexisting IMG_DEFAULT asset: I went to explore what happens when a local texture file is missing. It turns out that, in that case, an IMG_DEFAULT file is loaded to replace the missing file. Las, that file is not in the skins/default/texture folder either so it creates a fetch worker that tries to download this. Since we load the UI textures at launch, that might be a problem. Clearly, this is not a problem on Windows either though I tracked the fetch worker for this asset and it turns out that it never ever completes. On Mac though, this fetch worker sucks up the entire resource of the fetch thread and prevents any other worker to do anything. If I modify the UUID of IMG_DEFAULT to point to some existing file in the skins, everything works fine (AimeeT hasn't confirmed yet if this works for her). On Windows, even if such a dramatic effect is not observed, we have this fetch worker in the queue for the whole session. Not dramatic but still, wasteful. So, next action: Action: points IMG_DEFAULT to an existing asset, preferably one that is part of the skins folder. This is likely also a problem in the official viewer. 3- Badly initialized image priority: So there's still this mystery of why the Mac fetching of this inexisting asset starves the queue. It turns out that the priority for the first image fetched is an absurdly high number on Mac while it's a more reasonable (expected) one on Windows. There are several values that carry priorities around and it's quite messy. Clearly, one is not initialized correctly somewhere and it happens to work on Windows by chance and not on Mac. Adding a simple cap to decode_priority in LLViewerImage::updateFetch() break the vicious circle and things go back to normal (see patch in SNOW-222). Still, one more action item: Action: fix the initialization of image priority levels. I hope I'll get confirmation from AimeeT or other Mac devs that, indeed, we got to the bottom of that one so that we'll be able to commit that feature soon. Cheers, - Merov
_______________________________________________ Policies and (un)subscribe information available here: http://wiki.secondlife.com/wiki/SLDev Please read the policies before posting to keep unmoderated posting privileges
