Optimize controller mode input and overlay performance - #383
Merged
Conversation
Consolidate controller meta handling onto the existing stream gamepad poller and stabilize controller event listeners to reduce input and render churn. Add focused DOM/layout and in-stream low-FX optimizations to improve responsiveness and frame consistency during controller overlay navigation.
Window heavy shelf images around the active controller selection to keep long shelves responsive without changing navigation layout. Deduplicate unchanged stream diagnostics emissions to reduce steady-state update churn and avoid unnecessary UI work.
Render full tile/media content only near the active controller selection and keep distant entries as lightweight shells. This preserves shelf geometry and navigation behavior while reducing DOM, paint, and image work on large controller-mode lists.
Align reconnect and resume handling with official-style recovery by preserving claim identity, avoiding teardown-induced reconnect churn, and gating auto-recovery on confirmed ICE/media handshake state.
- Added state management for microphone level in the App component, allowing users to adjust the mic level during streaming sessions. - Integrated new props in ControllerLibraryPage to handle microphone level changes and display the current mic level. - Updated MicrophoneManager to manage and apply microphone level settings effectively. - Enhanced GfnWebRtcClient to expose methods for setting and getting the microphone level, improving overall audio control during streaming. These changes provide users with better control over their audio experience while streaming, enhancing usability and functionality.
Jayian1890
added a commit
that referenced
this pull request
May 16, 2026
* feat(stable): optimize controller mode input and overlay performance Consolidate controller meta handling onto the existing stream gamepad poller and stabilize controller event listeners to reduce input and render churn. Add focused DOM/layout and in-stream low-FX optimizations to improve responsiveness and frame consistency during controller overlay navigation. * perf(stable): reduce shelf image churn and diagnostics noise Window heavy shelf images around the active controller selection to keep long shelves responsive without changing navigation layout. Deduplicate unchanged stream diagnostics emissions to reduce steady-state update churn and avoid unnecessary UI work. * perf(stable): virtualize off-window shelf tile content Render full tile/media content only near the active controller selection and keep distant entries as lightweight shells. This preserves shelf geometry and navigation behavior while reducing DOM, paint, and image work on large controller-mode lists. * Stabilize resume behavior after hard app exit. (#385) Align reconnect and resume handling with official-style recovery by preserving claim identity, avoiding teardown-induced reconnect churn, and gating auto-recovery on confirmed ICE/media handshake state. * feat(controller): enhance microphone level management in streaming - Added state management for microphone level in the App component, allowing users to adjust the mic level during streaming sessions. - Integrated new props in ControllerLibraryPage to handle microphone level changes and display the current mic level. - Updated MicrophoneManager to manage and apply microphone level settings effectively. - Enhanced GfnWebRtcClient to expose methods for setting and getting the microphone level, improving overall audio control during streaming. These changes provide users with better control over their audio experience while streaming, enhancing usability and functionality.
Chizuui
pushed a commit
to Chizuui/OpenNOW-Modified
that referenced
this pull request
Aug 11, 2026
…ng#383) * feat(stable): optimize controller mode input and overlay performance Consolidate controller meta handling onto the existing stream gamepad poller and stabilize controller event listeners to reduce input and render churn. Add focused DOM/layout and in-stream low-FX optimizations to improve responsiveness and frame consistency during controller overlay navigation. * perf(stable): reduce shelf image churn and diagnostics noise Window heavy shelf images around the active controller selection to keep long shelves responsive without changing navigation layout. Deduplicate unchanged stream diagnostics emissions to reduce steady-state update churn and avoid unnecessary UI work. * perf(stable): virtualize off-window shelf tile content Render full tile/media content only near the active controller selection and keep distant entries as lightweight shells. This preserves shelf geometry and navigation behavior while reducing DOM, paint, and image work on large controller-mode lists. * Stabilize resume behavior after hard app exit. (OpenCloudGaming#385) Align reconnect and resume handling with official-style recovery by preserving claim identity, avoiding teardown-induced reconnect churn, and gating auto-recovery on confirmed ICE/media handshake state. * feat(controller): enhance microphone level management in streaming - Added state management for microphone level in the App component, allowing users to adjust the mic level during streaming sessions. - Integrated new props in ControllerLibraryPage to handle microphone level changes and display the current mic level. - Updated MicrophoneManager to manage and apply microphone level settings effectively. - Enhanced GfnWebRtcClient to expose methods for setting and getting the microphone level, improving overall audio control during streaming. These changes provide users with better control over their audio experience while streaming, enhancing usability and functionality.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Test plan
npm run typechecknpm run test -- src/renderer/src/gfn/webrtcClient.test.ts