Skip to content

fix(web-ui): skip idle render pipeline and fix FSR vertical flip#625

Merged
stackia merged 1 commit into
mainfrom
feat/fsr-flip-fix-and-pipeline-gate
Jul 5, 2026
Merged

fix(web-ui): skip idle render pipeline and fix FSR vertical flip#625
stackia merged 1 commit into
mainfrom
feat/fsr-flip-fix-and-pipeline-gate

Conversation

@stackia

@stackia stackia commented Jul 5, 2026

Copy link
Copy Markdown
Owner

Summary

  • Skip the WebGL render pipeline entirely when both auto-deinterlace and picture enhancement are off, since it would only reproduce the raw video — falls back to the plain <video> element like an ineligible resolution
  • Remove the now-redundant passthrough filter GPU pass by sampling the uploaded frame texture directly when no source stage runs
  • Fix a vertical-flip regression this exposed: EASU/RCAS fragment shaders sample gl_FragCoord directly instead of the vertex shader's v_texCoord, so the existing u_flipY uniform never reached them and raw-texture presents rendered upside down — add a matching u_flipY uniform to both fragment shaders
  • Relocate in-shader GLSL comments in fsr.ts to JSDoc above each shader constant (comments inside template literals ship raw into the production bundle)
  • Add observability logging for FSR enablement and canvas resize events

Test plan

  • pnpm run type-check:tsc / pnpm run lint:biome pass
  • Verified in browser (devlab) across all four toggle combinations, checking image orientation and console logs:
    • auto-deinterlace off + enhancement off → raw <video> fallback, pipeline stopped
    • auto-deinterlace off + enhancement on → raw texture → FSR, correct orientation (previously upside down)
    • auto-deinterlace on + enhancement off → bwdif → passthrough, correct orientation
    • auto-deinterlace on + enhancement on → bwdif → FSR, correct orientation, no regression
  • Confirmed built bundle contains no leaked shader comment text

Stop the WebGL render pipeline entirely when both auto-deinterlace and
picture enhancement are off, since it would only reproduce the raw
video; fall back to the plain <video> element like an ineligible
resolution. Also drop the now-redundant passthrough filter GPU pass by
sampling the uploaded frame texture directly when no source stage runs.

Fixes a regression this exposed: EASU/RCAS sample gl_FragCoord directly
instead of the vertex shader's v_texCoord, so the existing u_flipY
uniform never reached them and raw-texture presents rendered upside
down. Add a matching u_flipY uniform to both fragment shaders.

Also relocate in-shader GLSL comments in fsr.ts to JSDoc above each
shader (comments in template literals ship raw into the bundle), and
add observability logging for FSR enablement and canvas resize.
@github-actions

github-actions Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Documentation preview

The documentation preview has been deployed for this pull request.

@stackia stackia merged commit 29dca17 into main Jul 5, 2026
11 checks passed
@stackia stackia deleted the feat/fsr-flip-fix-and-pipeline-gate branch July 5, 2026 18:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant