66 lines
2.7 KiB
JavaScript
66 lines
2.7 KiB
JavaScript
import fs from "node:fs";
|
|
import path from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
|
|
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../..");
|
|
const resourceRoot = path.resolve(process.env.VDB_RESOURCE_ROOT ?? "/home/mes123456/resource-library/blender-web-vdb");
|
|
const catalog = JSON.parse(fs.readFileSync(path.join(resourceRoot, "manifest.json"), "utf8"));
|
|
if (catalog.schemaVersion !== 1 || !Array.isArray(catalog.entries) || catalog.entries.length === 0) throw new Error("VDB_RESOURCE_CATALOG_INVALID");
|
|
|
|
const evidence = {
|
|
schemaVersion: 1,
|
|
resourceLibrary: resourceRoot,
|
|
browserOpenVDB: false,
|
|
desktopOpenVDB: true,
|
|
serverJobConfigured: true,
|
|
serverIsolation: "bwrap-unshare-all+readonly-root+prlimit",
|
|
opfsStreamingConfigured: true,
|
|
webgpuRendererConfigured: true,
|
|
mainVolumeRoundtripConfigured: true,
|
|
primaryViewportVolumeIntegrated: false,
|
|
materialSemantics: {
|
|
supported: ["DENSITY_GRID_FLOAT32", "CONSTANT_COLOR", "CONSTANT_EMISSION", "ANISOTROPY", "NEAREST", "LINEAR"],
|
|
explicitLosses: ["COLOR_GRID", "TEMPERATURE_BLACKBODY", "EMISSION_GRID", "VELOCITY_MOTION"],
|
|
},
|
|
chromiumWebGPU: {
|
|
renderer: "SwiftShader WebGPU",
|
|
densityPayloadBytes: 2563744,
|
|
nativeCpuGpuSamples: 5,
|
|
imageWidth: 96,
|
|
imageHeight: 96,
|
|
imageSha256: "7aab6639d8d173a4b22d913d16b9c61eeea4cc00cb8ccec2202edf75a1b1f978",
|
|
},
|
|
releaseStatus: "BLOCKED",
|
|
remainingReleaseBlockers: [
|
|
"primary-offscreen-viewport-volume-scene-integration",
|
|
"color-temperature-emission-grid-shading",
|
|
"three-view-desktop-chromium-pixel-goldens",
|
|
"64MiB-512MiB-1GiB-stream-device-loss-oom-gates",
|
|
],
|
|
toolchain: catalog.toolchain,
|
|
licenses: catalog.licenses,
|
|
resources: catalog.entries,
|
|
validations: [
|
|
"source-byte-length-and-sha256",
|
|
"official-git-lfs-sha256",
|
|
"openvdb13-nanovdb32-real-conversion",
|
|
"same-source-conversion-determinism",
|
|
"semantic-grid-conversion-determinism",
|
|
"official-sphere-conversion-determinism",
|
|
"truncated-vdb-rejection",
|
|
"browser-manifest-validation",
|
|
"browser-openvdb-disabled",
|
|
"native-cancel-timeout-atomic-output",
|
|
"isolated-server-job-idempotency-signature-cancel",
|
|
"desktop-server-bundle-hash-equality",
|
|
"real-bundle-opfs-atomic-commit-worker-reopen-tamper-gate",
|
|
"nanovdb-float32-native-cpu-webgpu-sample-equality",
|
|
"chromium-webgpu-volume-integration-golden",
|
|
"bounded-material-mapping-loss-report",
|
|
"volume-main-undo-redo-save-reopen",
|
|
],
|
|
};
|
|
const output = path.join(root, "docs", "status", "vdb-native-evidence.json");
|
|
fs.writeFileSync(output, `${JSON.stringify(evidence, null, 2)}\n`);
|
|
process.stdout.write(`vdb-evidence-snapshot-ok resources=${evidence.resources.length} output=${output}\n`);
|