When saving textures to the fast cache, which only supports 16x16 textures at 4 bytes per pixel, the system will force scale down textures to fit, even beyond the allowed MAX_DISCARD_LEVEL, such as 1024x1024 having Discard = 6 and 2048x2048 texture having Discard = 7 and writing it to the headers. Updated the readFromFastCache to expand invalid textures to be at the MAX_DISCARD_LEVEL(5) discard instead of at 6, 7 or 8. Scale up the 16x16 textures to match the requirements for the textures at MAX_DISCARD_LEVEL. Mostly for re-loading after high bias scenario as these can cause crashes in the KDU decoder codebase. Which can possibly lead to deadlocked threads as well as bad textures clogging up the fetch system. Example Firestorm.log output of the error in action. 2025-02-21T13:47:43Z INFO LLKDUMessage::put_text : KDU Error: Attempting to access a non-existent resolution level within some tile-component. Problem almost certainly caused by trying to discard more resolution levels than the number of DWT levels used to compress a tile-component. Exception thrown at 0x00007FFA77A1BB0A in firestorm-bin.exe: Microsoft C++ exception: boost::wrapexcept<`anonymous namespace'::KDUError> at memory location 0x000000C3985FF470. 2025-02-21T13:47:43Z WARNING LLTextureFetchWorker::callbackDecoded : DECODE FAILED: 0c699ab7-dd72-bfc9-d695-267e1a3f936a Discard: 6, reason: LLKDUMessageError::flush() 2025-02-21T13:47:43Z WARNING _ll_apr_warn_status : APR: firestorm\phoenix-firestorm-foreverfps\indra\llcommon\llapr.cpp:651 The system cannot find the file specified. 2025-02-21T13:47:43Z WARNING LLAPRFile::remove : Attempting to remove filename: AppData\Local\FirestormOS_x64\texturecache\0\0c699ab7-dd72-bfc9-d695-267e1a3f936a.texture 2025-02-21T13:47:43Z INFO LLKDUMessage::put_text : KDU Error: Kakadu Core Error: |
||
|---|---|---|
| .github | ||
| doc | ||
| etc | ||
| fsutils | ||
| indra | ||
| scripts | ||
| .clang-format | ||
| .editorconfig | ||
| .git-blame-ignore-revs | ||
| .gitattributes | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| FIRESTORM-SOURCE_LICENSE_HEADER.txt | ||
| LICENSE | ||
| README.md | ||
| autobuild.xml | ||
| build.sh | ||
| build_target.sh | ||
| buildscripts_support_functions | ||
| requirements.txt | ||
README.md
Firestorm is a free client for 3D virtual worlds such as Second Life and various OpenSim worlds where users can create, connect and chat with others from around the world.
This repository contains the official source code for the Firestorm viewer.
Open Source
Firestorm is a third party viewer derived from the official Second Life client. The client codebase has been open source since 2007 and is available under the LGPL license.
Download
Pre-built versions of the viewer releases for Windows, Mac and Linux can be downloaded from the official website.
Build Instructions
Build instructions for each operating system can be found using the links below and in the official wiki.
[!NOTE] We do not provide support for compiling the viewer or issues resulting from using a self-compiled viewer. However, there is a self-compilers group within Second Life that can be joined to ask questions related to compiling the viewer: Firestorm Self Compilers
Contribute
Help make Firestorm better! You can get involved with improvements by filing bugs and suggesting enhancements via JIRA or creating pull requests.