Skip to content

feat: Add AMD FSR 1.0 Upscaling & Fix Alert Bug - #17

Merged
Wei-1 merged 3 commits into
OpenLive3D:mainfrom
Ghostkwebb:feat/fsr-upscaling
May 22, 2026
Merged

feat: Add AMD FSR 1.0 Upscaling & Fix Alert Bug#17
Wei-1 merged 3 commits into
OpenLive3D:mainfrom
Ghostkwebb:feat/fsr-upscaling

Conversation

@Ghostkwebb

Copy link
Copy Markdown
Contributor

Description

Implemented AMD FidelityFX Super Resolution (FSR 1.0) to improve performance on low-end hardware without sacrificing visual quality. Also includes a bug fix for the performance alert tooltip.

Changes

  • FSR 1.0 (EASU + RCAS): Added screen-space upscaling and sharpening passes via WebGL2 RawShaderMaterial.
  • UI Config: Added UPSCALING_PRESET and FSR_SHARPNESS to rendering settings. Automatically hides native resolution slider when a preset is active.
  • Alpha Channel Fix: Maintained rgba alpha pass-through in FSR shaders to ensure OBS transparency does not render as a black background.
  • Resize Fix: Patched updatePostProcessingSize() to scale FSR intermediate render targets correctly on window resize.
  • Alert Bug Fix: Fixed a typo in raiseAlert() where checking an undefined HAND_TRACKING variable caused the performance warning box to render empty text during Heavy/Upper-Body tracking.

Testing

  • Tested FSR Ultra Quality -> Performance scaling.
  • Tested window resize target bounds.
  • Verified OBS transparent background works with FSR active.

@Wei-1 Wei-1 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will actually test the PR this weekend. Here are some question when I go through the code for now though.

Comment thread js/gui/gui-layout.js
Comment thread js/config/config-manager.js Outdated

@Wei-1 Wei-1 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested the Code, has 2 comments
But should be fine in most cases though!
Will merge after adjustment!

Comment thread js/gui/gui-layout.js Outdated
ppQuad = new THREE.Mesh(new THREE.PlaneGeometry(2, 2), material);
ppScene.add(ppQuad);

if (useFSR) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about we add typeof setupFSR === "function" && here?
Can handle if fsr.js is not loaded correctly.

Comment thread js/gui/gui-layout.js Outdated
renderer.outputEncoding = THREE.sRGBEncoding;
renderer.render(ppScene, ppCamera);

if (useFSR) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about also add typeof setupFSR === "function" && here?
Can handle if fsr.js is not loaded correctly.

@Wei-1
Wei-1 merged commit 96b0460 into OpenLive3D:main May 22, 2026
1 check failed
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.

2 participants