@pixi/3d
    Preparing search index...

    Interface GraphDebugBundleSnapshotAdvanced

    WebGPU bundle state for one batch pass in one capture

    interface GraphDebugBundleSnapshot {
        bundleDirtyId: number | null;
        causes: GraphDebugBundleCause[];
        lastBundleDirtyId: number | null;
        status:
            | "first-capture"
            | "reused"
            | "invalidated"
            | "not-used"
            | "recorded";
    }
    Index
    bundleDirtyId: number | null

    Bundle cache revision requested by the renderer; null when the status is 'not-used'

    Attributed causes when the bundle was recorded or invalidated

    lastBundleDirtyId: number | null

    Revision the recorded bundle was built at; null when the status is 'not-used', -1 when nothing is recorded yet

    In the shadow pass it's the oldest across the casting lights' cascades, and a cascade recorded before the draws last rebuilt counts as -1. It includes cascades waiting for Light.refreshShadows, which status ignores, so it can trail bundleDirtyId while status reads 'reused'.

    status: "first-capture" | "reused" | "invalidated" | "not-used" | "recorded"

    What happened to the pass's bundle since the previous capture

    • 'reused': drawn again as recorded.
    • 'recorded': recorded anew; causes says why.
    • 'invalidated': still due to be recorded when the frame was captured. The shadow pass can stay here for several frames, until every cascade that its LightShadow.update rate skipped has drawn again.
    • 'first-capture': no previous capture to compare with.
    • 'not-used': the pass keeps no bundle for the batch: on WebGL, with cache: 'never' (the default for a distance sort), for a frustum-culled batch drawn with direct draws, and in a shadow pass where no visible shadow-casting light holds one.