# pixijs v8.20.0 - Product: pixijs (https://whatsnew.fyi/product/pixijs) - Vendor: pixijs - Date: 2026-08-20 - Version: v8.20.0 - Original notes: https://github.com/pixijs/pixijs/releases/tag/v8.20.0 - Permalink: https://whatsnew.fyi/product/pixijs/releases/v8.20.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **changed** — Replace `StructsAndGroups.isUniform` with `accessMode` property that describes both uniform and storage buffers - **fixed** — Apply render group world color and alpha to ParticleContainer so particles now inherit tint and alpha from ancestor render groups - **fixed** — Fix WebGPU front-facing winding to match GLSL behavior so `front_facing` in WGSL shaders reports correctly with `clockwiseFrontFace` - **fixed** — Align Polygon.strokeContains hit testing with the drawn stroke including proper stroke width and winding order handling - **fixed** — Fix Rectangle.containsRect edge containment to return true for identical rectangles and rects flush against container edges - **added** — Add WGSL shader overrides, depth-stencil formats, partial buffer updates and view caching - **added** — Add geometry vertexCount property, WebGPU render bundles, depth-only targets and Safari WGSL fallback - **added** — Add WebGPU-first RenderTarget attachment architecture and TextureView depth sampling - **added** — Add copyDepthTexture for render targets supporting WebGPU and WebGL2 - **added** — Add opt-in flipY render-orientation toggle via RenderOptions.flipY to invert render Y orientation - **added** — Add ability to copy depth into textures and expose resolved front-face orientation - **added** — Add object-form bind and push methods with capturable bind state - **added** — Export GPU shader layout helpers for advanced users - **fixed** — Prevent Geometry.destroy from double-freeing the index buffer - **fixed** — Support Chrome 150+ HTML-in-Canvas upload signatures - **fixed** — Harden WebGPU render targets, bind groups and pipeline/texture caching - **fixed** — Prevent double-destroy of render targets on teardown - **added** — Add persistentDeviceId to FederatedPointerEvent - **fixed** — Release mask bindings when pooled AlphaMaskEffect returns to the pool ##### 💾 Download Installation: ```bash npm install pixi.js@8.20.0 ``` Development Build: - https://cdn.jsdelivr.net/npm/pixi.js@8.20.0/dist/pixi.js - https://cdn.jsdelivr.net/npm/pixi.js@8.20.0/dist/pixi.mjs Production Build: - https://cdn.jsdelivr.net/npm/pixi.js@8.20.0/dist/pixi.min.js - https://cdn.jsdelivr.net/npm/pixi.js@8.20.0/dist/pixi.min.mjs Documentation: - https://pixijs.download/v8.20.0/docs/index.html ##### Changed https://github.com/pixijs/pixijs/compare/v8.19.0...v8.20.0 ###### 🚨 Behavior Change * feat: WGSL shader overrides, depth-stencil formats, partial buffer updates & view caching by @Zyie in https://github.com/pixijs/pixijs/pull/12089 * `StructsAndGroups.isUniform` is replaced by `accessMode`, which also describes storage buffers. This one fails quietly; the old property reads `undefined` rather than throwing. ```ts // before if (group.isUniform) { /* ... */ } // after if (group.accessMode === 'uniform') { /* ... */ } ``` * fix: apply render group world color and alpha to ParticleContainer by @TheOnlyJason in https://github.com/pixijs/pixijs/pull/12132 * `ParticleContainer` ignored the tint and alpha of any ancestor render group, staying fully opaque while everything else faded. Particles now inherit both, so scenes with a `ParticleContainer` under a tinted or faded render group will look different. Remove any manual compensation you added. * fix: WebGPU ignores clockwiseFrontFace by @koteelok in https://github.com/pixijs/pixijs/pull/12139 * `State.clockwiseFrontFace` reached the WebGPU pipeline as a cull mode rather than a winding, so `@builtin(front_facing)` in WGSL reported the opposite of `gl_FrontFacing` in GLSL. Which triangles survive culling is unchanged, but WGSL shaders branching on `front_facing` with `clockwiseFrontFace: true` now take the other branch; revert any workaround that inverted it. * fix: align Polygon.strokeContains with the drawn stroke by @Jaybhade in https://github.com/pixijs/pixijs/pull/12137 * `strokeContains` split the stroke width on the squared width and ignored winding order, so at the default `alignment: 0.5` the hit area was ~41% wider than the drawn line, and at alignment 0 or 1 it sat on the opposite side of the edge. Hit testing now matches what's drawn. ```ts const graphics = new Graphics() .poly([0, 0, 100, 0, 100, 100, 0, 100], true) .stroke({ width: 20, alignment: 0 }); graphics.containsPoint({ x: -10, y: 50 }); // now true, inside the drawn stroke graphics.containsPoint({ x: 10, y: 50 }); // now false, nothing is drawn there ``` * fix: Rectangle containsRect edge containment by @cyphercodes in https://github.com/pixijs/pixijs/pull/12083 * `containsRect` tested the right and bottom edges with a strict `<`, so identical rectangles reported `false`. Identical rects, and any rect flush against the container's right or bottom edge, now return `true`. Code using it as a strict-interior test, or branching on `false` to mean "partially outside", now takes the other branch. ###### 🎁 Added * feat: WGSL shader overrides, depth-stencil formats, partial buffer updates & view caching by @Zyie in https://github.com/pixijs/pixijs/pull/12089 * feat: geometry vertexCount, WebGPU render bundles, depth-only targets & Safari WGSL fallback by @Zyie in https://github.com/pixijs/pixijs/pull/12090 * feat: WebGPU-first RenderTarget attachment architecture & TextureView depth sampling by @Zyie in https://github.com/pixijs/pixijs/pull/12091 * feat: copyDepthTexture for render targets (WebGPU/WebGL2) by @Zyie in https://github.com/pixijs/pixijs/pull/12092 * feat: add opt-in flipY render-orientation toggle by @GoodBoyDigital in https://github.com/pixijs/pixijs/pull/12098 * `RenderOptions.flipY` inverts a render's Y orientation, flipping the projection and the winding/cull inversion together. That lets you capture a scene into a texture in screen orientation, which is what 3D geometr _[Truncated at 4000 characters — full notes: https://github.com/pixijs/pixijs/releases/tag/v8.20.0]_