Kakadu (KDU) JPEG2000 decoder: request access from Linden Lab (TPV), measure OpenJPEG decode cost first #217

Open
opened 2026-09-30 21:58:11 +00:00 by sky_line · 1 comment
Owner

Kakadu (KDU) is a commercial JPEG2000 codec from Kakadu Software. Linden Lab licenses it for its own viewer.

How Alchemy had it

Alchemy did not include Kakadu in its source. Its autobuild.xml pulled the kdu package (8.4.1, builds for linux64, windows64 and darwin64) at build time from secondlife/3p-kdu, a private Linden Lab GitHub repository. Downloading needs a GitHub token that Linden Lab has given access to.

Slipstream never had that access:

  • The download failed in every Windows build, so Kakadu was never compiled into any Slipstream release. We've always decoded with OpenJPEG (llimagej2coj).
  • The package entry, indra/llkdu and the licence text were removed in 3542c5fdab (2026-09-30); nothing changed at runtime.
  • The code is still in git history if we get access.

Using LL's binary without permission would be redistributing licensed software, so it's off the table.

Plan

  1. Request access from Linden Lab to secondlife/3p-kdu (or the TPV terms for Kakadu) as a third-party viewer, the same route Alchemy and Firestorm presumably use. If granted: restore the package entry (linux64 / windows64; it is not Windows-only), llkdu, the licence text and credits, and keep OpenJPEG as the fallback.
  2. Fallback: license Kakadu directly from Kakadu Software (commercial).
  3. Measure, in parallel: OpenJPEG decode ms per texture and time-to-rezzed on a busy region, so we know what Kakadu would actually gain. Kakadu's benefit is decode speed at login and while a busy region rezzes, not steady-state FPS.
  4. Long-term option: our own Vulkan compute J2C decoder. It needs no licence and fits the GPU-driven direction. Worth pursuing only if step 3 shows decode is a real bottleneck.

Related: #389 (OpenJPEG 2.4 -> 2.5.4), #213 (slow login), #159-#164 (texture memory).

Kakadu (KDU) is a commercial JPEG2000 codec from Kakadu Software. Linden Lab licenses it for its own viewer. ## How Alchemy had it Alchemy did not include Kakadu in its source. Its `autobuild.xml` pulled the `kdu` package (8.4.1, builds for linux64, windows64 and darwin64) at build time from **`secondlife/3p-kdu`**, a private Linden Lab GitHub repository. Downloading needs a GitHub token that Linden Lab has given access to. Slipstream never had that access: - The download failed in every Windows build, so Kakadu was never compiled into any Slipstream release. We've always decoded with OpenJPEG (`llimagej2coj`). - The package entry, `indra/llkdu` and the licence text were removed in 3542c5fdab (2026-09-30); nothing changed at runtime. - The code is still in git history if we get access. Using LL's binary without permission would be redistributing licensed software, so it's off the table. ## Plan 1. **Request access from Linden Lab** to `secondlife/3p-kdu` (or the TPV terms for Kakadu) as a third-party viewer, the same route Alchemy and Firestorm presumably use. If granted: restore the package entry (linux64 / windows64; it is not Windows-only), `llkdu`, the licence text and credits, and keep OpenJPEG as the fallback. 2. **Fallback:** license Kakadu directly from Kakadu Software (commercial). 3. **Measure, in parallel:** OpenJPEG decode ms per texture and time-to-rezzed on a busy region, so we know what Kakadu would actually gain. Kakadu's benefit is decode speed at login and while a busy region rezzes, not steady-state FPS. 4. **Long-term option:** our own Vulkan compute J2C decoder. It needs no licence and fits the GPU-driven direction. Worth pursuing only if step 3 shows decode is a real bottleneck. Related: #389 (OpenJPEG 2.4 -> 2.5.4), #213 (slow login), #159-#164 (texture memory).
sky_line added this to the Slipstream project 2026-10-06 15:04:15 +00:00
sky_line changed title from Add back / replace Kakadu (KDU) JPEG2000 decoder to Kakadu (KDU) JPEG2000 decoder: request access from Linden Lab (TPV), measure OpenJPEG decode cost first 2026-10-10 09:24:37 +00:00
Author
Owner

Moving this back to the backlog: it waits on a reply from Linden Lab (Kakadu access) and a decode-cost measurement; nothing is being worked on.

Moving this back to the backlog: it waits on a reply from Linden Lab (Kakadu access) and a decode-cost measurement; nothing is being worked on.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#217
No description provided.