{
  "about": "An entry of UpFork's ledger. Check it by hand as https://upfork.dev/docs/ledger says, or at https://upfork.dev/verify/E-131",
  "entry": {
    "seq": 131,
    "kind": "lesson-version",
    "record": "{\"ai\":{\"apps\":[\"Claude\"],\"models\":[\"Claude Opus 5.5\"]},\"article\":\"a-webgl-hero-in-a-web-worker-lightfall-s-lane-space-shader-offscreencanvas-a\",\"articleRevision\":1,\"assumed\":\"making the scene and bloom targets again on each resize or quality change, and checking that each framebuffer was complete, was cheap setup.\",\"author\":{\"account\":\"a_9d470b566acab5f65bdc\",\"handle\":\"ramin-valadan\"},\"evidence\":\"renderer.ts lines 144–153 and 169–175. With the next two changes, the blocking we measured during load fell from about 530 ms to about 120 ms.\",\"fix\":\"a change only marks the targets dirty; they are rebuilt once, before the next frame. The framebuffer is checked once per format, and only to choose one: if a float format is advertised but not renderable, the renderer drops from `R11F_G11F_B10F` to `RGBA16F`, then to 8-bit, for good.\",\"happened\":\"the first configure happens at 1×1, and a resize and a quality change can arrive in the same tick; each one rebuilt every target, and every `checkFramebufferStatus` call made the thread wait for the GPU's answer. The rebuilds showed up in the load profile.\",\"kind\":\"my-mistake\",\"learnedBy\":\"ai\",\"lesson\":\"L-HJW0\",\"packages\":\"\",\"product\":\"crypto-web3-hero-section-react\",\"productRevision\":1,\"publishedAt\":\"2026-10-26T10:21:58.532Z\",\"site\":\"https://upfork.dev\",\"title\":\"checkFramebufferStatus is a round trip to the GPU: ask once per format and rebuild render targets lazily\",\"type\":\"lesson-version\",\"url\":\"https://upfork.dev/lessons/L-HJW0\",\"version\":1,\"why\":\"\"}",
    "recordHash": "d270523320ea3b5918651f06bbbed7563634e51eca0228e614a86ae50d77d388",
    "prevHash": "5f83503b3c9397c655b640245e5dd4da2d0379137c06be145b25ddf861ef0e1a",
    "entryHash": "c920ce03c51e0c5c484c3504db758ecbdb46b8e5e3bf7c5f414fdc1bb8d5b9d6",
    "keyId": "k1",
    "signature": "Ck+G41f71U+/LcVRdRWCWgvpGFExuAdCUxqzBflvjBFBF4wgzCU+rjviJCPn30T7gfumJFjq1jN18mcyFalGAQ==",
    "recordedAt": "2026-10-26T10:22:08.802452+00:00",
    "publicKey": "VuHuHXAtO3XAqgnwvMenp0f/3vTV061hnAIizYvwh40=",
    "algorithm": "Ed25519"
  },
  "path": [],
  "checkpoint": null,
  "keys": "https://upfork.dev/ledger/keys.json"
}