@dcl/abgen-win32-x64 0.17.13 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BUILD-INFO.txt +4 -4
- package/README.md +24 -19
- package/abgen.exe +0 -0
- package/package.json +1 -1
package/BUILD-INFO.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
ABGEN_VERSION=0.
|
|
2
|
-
ABGEN_RELEASE=v0.
|
|
1
|
+
ABGEN_VERSION=0.18.0
|
|
2
|
+
ABGEN_RELEASE=v0.18.0
|
|
3
3
|
ABGEN_TARGET=x86_64-pc-windows-gnu
|
|
4
|
-
ABGEN_BUILD_ID=
|
|
5
|
-
ABGEN_GIT_REV=
|
|
4
|
+
ABGEN_BUILD_ID=bfcb474af457
|
|
5
|
+
ABGEN_GIT_REV=7000bd2fb9fe4c4d00e85ef84f1d907ea6a28504
|
|
6
6
|
SOURCE_DATE_EPOCH=315532800
|
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ resolves it for embedding tools - see [npm/abgen](npm/abgen/README.md)). From so
|
|
|
13
13
|
```bash
|
|
14
14
|
git clone <this-repo> abgen && cd abgen
|
|
15
15
|
cargo build --release # no postgres, no openssl, no protobuf
|
|
16
|
-
cargo build --release --examples # bundle dump tools (objdump/texdump/matdump
|
|
16
|
+
cargo build --release --examples # bundle dump tools (objdump/texdump/matdump)
|
|
17
17
|
scripts/bootstrap-runtime.sh # integrity-check the vendored runtime data
|
|
18
18
|
```
|
|
19
19
|
There is also a wasm build: `crate/abgen-wasm/` compiles the converter to wasm32 — see its README.
|
|
@@ -26,10 +26,10 @@ There is also a wasm build: `crate/abgen-wasm/` compiles the converter to wasm32
|
|
|
26
26
|
| `abgen-build` | single-file local converter CLI (glb -> bundle, `--expect-hash` verify) |
|
|
27
27
|
| `abgen-corpus` | batch corpus builder: manifest / `--entity-ids` (add `--fetch-missing` to pull content from a catalyst) / `--world <name>[,...]` (resolve + fetch + convert a world; upstream via `--worlds-url` or `ABGEN_WORLDS_URL`) / `--live-mode` / `--collection-urn` / `--from-reference`; full-corpus runbook in [docs/BATCH.md](docs/BATCH.md) |
|
|
28
28
|
| `abgen-verify` | parity differ (ours vs reference bundles, ppm-bits, `--tolerant`) |
|
|
29
|
-
| `abgen-lod` | LOD lane CLI: `bundle`, `
|
|
29
|
+
| `abgen-lod` | LOD lane CLI: `bundle`, `placements`, `assemble`, `atlas`, `simplify`, `generate`, `compare` (structural diff of two LOD bundles: materials/textures/vertices/triangles plus a per-material property diff — shader, keywords, render queue, floats, clipping colours, texture bindings; local or CDN URL), `qualify-corpus` (Genesis City + Worlds corpus build; `--reference-cdn` records the same diff against production per scene) |
|
|
30
30
|
| `abgen-lambda` | AWS Lambda handler (deployment event in, bundles + manifests to S3; from the `lambda/` workspace member) - see [lambda/README.md](lambda/README.md) |
|
|
31
31
|
|
|
32
|
-
Plus bundle-inspection examples (`texdump`, `matdump`, `objdump
|
|
32
|
+
Plus bundle-inspection examples (`texdump`, `matdump`, `objdump`) under
|
|
33
33
|
`target/release/examples/`.
|
|
34
34
|
## Server
|
|
35
35
|
```bash
|
|
@@ -59,6 +59,9 @@ header semantics, and the DB-vs-proxy source selection: [docs/ROUTES.md](docs/RO
|
|
|
59
59
|
ABGEN_ROOT="$PWD" cargo test --workspace --lib -- --test-threads=1
|
|
60
60
|
```
|
|
61
61
|
`--test-threads=1` is required: the lib tests share process-wide `ABGEN_ROOT` state.
|
|
62
|
+
LOD assembly frame conformance against the production `_1.glb` references: `cargo test --release
|
|
63
|
+
--test lod_handedness` (offline fixtures; add `-- --ignored` to assemble from the catalyst).
|
|
64
|
+
|
|
62
65
|
## wasm
|
|
63
66
|
`crate/abgen-wasm/` compiles the converter lib (default features off) to `wasm32-unknown-unknown` behind
|
|
64
67
|
a hand-rolled C ABI; the JS runtime in `crate/abgen-wasm/js/` (worker pool + WebGPU bridge) is what a
|
|
@@ -71,20 +74,17 @@ template paths in `crate/src/builder/templates.rs` assume the source layout wher
|
|
|
71
74
|
the crate — an in-repo wasm32 build needs those relative paths bumped one level (`../../template/` ->
|
|
72
75
|
`../../../template/`). No workspace target compiles for wasm32, so the divergence never touches CI.
|
|
73
76
|
## Features
|
|
74
|
-
|
|
75
|
-
(axum/tokio/sqlx and the `dcl-contents` crate); the `abgen` bin has `required-features = ["server"]`.
|
|
76
|
-
Library consumers - `lambda/`, `crate/abgen-native/`, `crate/abgen-wasm/` - build with
|
|
77
|
-
`default-features = false` and get the converter without the server stack. Under the default
|
|
78
|
-
features every capability below builds into every native binary; `wasm32` builds target-gate the
|
|
79
|
-
server, content-DB, and GPU code off automatically. Each capability is activated at runtime, not at
|
|
80
|
-
build time.
|
|
77
|
+
The default `server` feature builds the complete service. Reusable consumers should select only the lanes they need; the smallest native converter is `cargo build --release --lib --no-default-features`.
|
|
81
78
|
|
|
82
|
-
|
|
|
79
|
+
| Feature | Adds | Enabled by |
|
|
83
80
|
|---|---|---|
|
|
84
|
-
|
|
|
85
|
-
|
|
|
86
|
-
|
|
|
87
|
-
|
|
|
81
|
+
| `server` (default) | HTTP/registry stack, `gpu`, `cli`, `web-pack`, and `scene-runtime` | `abgen` server |
|
|
82
|
+
| `gpu` | native wgpu/CUDA dispatch | server, build/corpus/verify CLIs, Lambda |
|
|
83
|
+
| `web-pack` | BV WebGPU pack emission plus DDS/glTF JSON dependencies | server, build/corpus CLIs |
|
|
84
|
+
| `scene-runtime` | embedded QuickJS fallback for suspicious static LOD placements | server, LOD CLI, Lambda |
|
|
85
|
+
| `cli` | tracing subscriber and CLI logging | server and LOD CLI |
|
|
86
|
+
|
|
87
|
+
`crate/abgen-native`, `crate/abgen-node`, and converter WASM use no default features. The standalone `crate/wasm-gpu` package compiles the shared BC7/WebGPU source directly and does not depend on the full `abgen` graph; its worker ships only `gpu_init` and `gpu_encode`. Static CRDT placement interpretation remains available without `scene-runtime`; if that result is empty or suspicious, the minimal build fails explicitly instead of publishing an empty LOD.
|
|
88
88
|
|
|
89
89
|
GPU backends self-qualify per device at enable time: the selected backend (`auto` tries CUDA, then
|
|
90
90
|
wgpu) must reproduce the CPU BC7 encoder bit-for-bit on a probe matrix (sizes x srgb x perceptual x
|
|
@@ -131,6 +131,7 @@ restore it - it never fetches or re-downloads:
|
|
|
131
131
|
| `ABGEN_JIT_FAIL_TTL_S` | `60` | failure negative-cache TTL for entity JIT builds; concurrent identical requests single-flight per `{entity}:{platform}` |
|
|
132
132
|
| `ABGEN_JIT_CONTENT_DIGEST` | `0` | freshness for content servers whose declared hashes are not content-addressed (the `@dcl/sdk-commands` preview server keys them by file path). Defaults to ON when `ABGEN_CATALYST_URL` points at a loopback host (a dev preview server), OFF otherwise; explicit values always win. When on, manifest requests re-download the entity's convertible content, sha256 it, and prune stale conversions when bytes changed under an unchanged hash. Changed non-glb files (textures/`.bin`) also invalidate every glb bundle of the entity. Debounced per entity via `ABGEN_REVALIDATE_DEBOUNCE_S` (default `2`) |
|
|
133
133
|
| `ABGEN_UPSTREAM_AB_CDN` | unset | read-through to a production ab-cdn (e.g. `https://ab-cdn.decentraland.org`): manifest/bundle/LOD/ISS requests that 404 through every local and JIT lane are streamed from upstream without persisting anything locally. Lets a client point its whole optimized-assets base URL here (wearables/emotes keep working) while only local scene entities are built locally. Paths containing `b64-` preview ids are never proxied |
|
|
134
|
+
| `ABGEN_UPSTREAM_AB_REGISTRY` | see right | upstream registry URL: records for entities without local bundles are answered with its versions. Default: `asset-bundle-registry.<domain>` when the CDN is `ab-cdn.<domain>`. `off` disables |
|
|
134
135
|
| `RUST_LOG` | `abgen=info,tower_http=info` | tracing filter |
|
|
135
136
|
| `CONTENT_PG_CONNECTION_STRING` (or `POSTGRES_*` parts) | unset | content DB; URL form also mounts the signed registry routes |
|
|
136
137
|
### S3 space cache (read-through + write-back)
|
|
@@ -147,8 +148,7 @@ Uploads carry each key family's production writer's object metadata, derived fro
|
|
|
147
148
|
(cdn-uploader's comma-joined spelling), scene sources (`.js`/`.json`/`.crdt`) the direct-upload
|
|
148
149
|
spelling `public, max-age=31536000, immutable`, manifests (`manifest/…`) `application/json` +
|
|
149
150
|
`private, max-age=0, no-cache`, ISS descriptors (`lods-unity/manifests/…`)
|
|
150
|
-
`public, max-age=31536000` (lod-generator-unity's spelling)
|
|
151
|
-
`public,no-transform,max-age=31536000,immutable` + `Content-Encoding: br` (as cdn-uploader sets).
|
|
151
|
+
`public, max-age=31536000` (lod-generator-unity's spelling).
|
|
152
152
|
|
|
153
153
|
### Asset-reuse mode (upstream converter parity)
|
|
154
154
|
ON by default, matching the ab-cdn deployment's asset-reuse naming from v49 onward: scene
|
|
@@ -181,12 +181,17 @@ request waits up to the deadline, builds finish in the background. Knobs: `ABGEN
|
|
|
181
181
|
`ABGEN_INDEX_BUILD_CONCURRENCY` (default: CPU count), `ABGEN_INDEX_BUILD_DEADLINE_MS` (default
|
|
182
182
|
`20000`), `ABGEN_INDEX_BUILD_MAX_QUEUE` (default `0` = unlimited; when exceeded, new builds are skipped).
|
|
183
183
|
### LOD JIT lane
|
|
184
|
-
`ABGEN_LOD_JIT=1` enables JIT LOD builds on `GET /LOD/
|
|
184
|
+
`ABGEN_LOD_JIT=1` enables JIT LOD builds on `GET /LOD/1/...` misses (level 1 only, the production
|
|
185
|
+
shape: level 0 is the client-side ISS assembly, so `LOD/0/...` answers `lod-level-unsupported` and
|
|
186
|
+
`abgen-lod generate --level 0,1` is the offline opt-in); needs `gltfpack`
|
|
185
187
|
(`ABGEN_GLTFPACK` or `$PATH`), fails closed without it. Knobs: `ABGEN_LOD_MANIFEST_BUILDER` (unset
|
|
186
188
|
limits JIT to scenes with a published ISS descriptor), `ABGEN_LOD_CACHE_DIR` (default:
|
|
187
189
|
`ABGEN_CACHE_DIR`), `ABGEN_LOD_JIT_TIMEOUT_S` / `ABGEN_LOD_JIT_FAIL_TTL_S` (defaults `600` / `3600`),
|
|
188
190
|
`ABGEN_LOD_BUILD_CONCURRENCY` (default `1`). Builds stage in a per-build workdir; only gate-passed
|
|
189
|
-
output is promoted into the serving root, so rejected bundles are never servable.
|
|
191
|
+
output is promoted into the serving root, so rejected bundles are never servable. A passed build is
|
|
192
|
+
written back to the space with the production key set: `LOD/1/{sid}_1_{platform}`,
|
|
193
|
+
`lods-unity/manifests/{sid}_InitialSceneState.json` and the gltfpack-layout
|
|
194
|
+
`lods-unity/lods/{sid}_1.glb`.
|
|
190
195
|
### Conversion / parity knobs
|
|
191
196
|
- `ABGEN_SHADER_BUNDLE` - path to `scene_ignore_windows` (default `crate/shader/scene_ignore_windows`; siblings like `scene_ignore_mac` resolve from the same dir)
|
|
192
197
|
- `ABGEN_CONTENT_ROOT` - local sharded content store root (default `./content`)
|
package/abgen.exe
CHANGED
|
Binary file
|