Skip to content

Limit Pixi atlas size - #1817

Open
KTibow wants to merge 1 commit into
facebook:mainfrom
KTibow:fix-webgl-atlas-size
Open

Limit Pixi atlas size#1817
KTibow wants to merge 1 commit into
facebook:mainfrom
KTibow:fix-webgl-atlas-size

Conversation

@KTibow

@KTibow KTibow commented Jun 16, 2026

Copy link
Copy Markdown

Summary

  • Cap Rapid's Pixi texture atlases at 2048px instead of growing them to the renderer's max texture size.
  • Remove the max-texture-size probing because the atlas size is now intentionally fixed.
  • Add a comment explaining that Pixi's current WebGL shaders use mediump fragment UVs, which cannot reliably address larger normalized atlases on true-mediump GPUs.

Closes #1815

Why

Issue #1815 reported severely pixelated imagery on an Ubuntu ARM/Snapdragon X system. The canvas/DPR setup was correct, and bypassing Rapid's atlas path with direct Pixi textures made imagery render sharply. Capping Rapid's atlas size fixed the visible pixelation.

The reduced repro points to large normalized atlas coordinates being sampled through Pixi's WebGL shader path with mediump fragment UV precision. mediump only guarantees roughly 10 bits of precision, which is not enough to reliably address large atlases such as 8192x8192 on true-mediump GPUs. Keeping atlases at 2048px avoids relying on precision that WebGL/GLES does not guarantee.

This trades some atlas packing efficiency for correct imagery on affected hardware.

Testing

  • Ran

@rapideditor/rapid@2.5.7 build
run-p build:**

@rapideditor/rapid@2.5.7 build:data
shx mkdir -p dist/data && node scripts/build_data.js

@rapideditor/rapid@2.5.7 build:css
dotenvx run --quiet -- node scripts/build_css.js

@rapideditor/rapid@2.5.7 build:bundle:modern:dev
dotenvx run --quiet -- node config/esbuild.config.modern-dev.js

🏗 Building data...

🏗 Building css...
👍 css built: 104.335ms

👍 data built: 4.148s successfully.

(And also manually previewing Rapid locally)

Disclosure

Generated by GPT 5.5 with human oversight.

@meta-cla

meta-cla Bot commented Jun 16, 2026

Copy link
Copy Markdown

Hi @KTibow!

Thank you for your pull request and welcome to our community.

Action Required

In order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you.

Process

In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!

@meta-cla meta-cla Bot added the cla signed label Jun 16, 2026
@meta-cla

meta-cla Bot commented Jun 16, 2026

Copy link
Copy Markdown

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Everything looks really pixelated

1 participant