Skip to content

Optimize controller mode input and overlay performance - #383

Merged
Jayian1890 merged 5 commits into
devfrom
controller-mode-performance-improvements
May 3, 2026
Merged

Optimize controller mode input and overlay performance#383
Jayian1890 merged 5 commits into
devfrom
controller-mode-performance-improvements

Conversation

@Jayian1890

Copy link
Copy Markdown
Collaborator

Summary

  • consolidate controller meta toggle handling onto the existing stream gamepad poller instead of a separate RAF loop
  • stabilize controller input event listener wiring in the library controller page to avoid frequent rebind churn
  • reduce navigation/layout and in-stream overlay visual overhead with focused DOM/cache and low-FX styling updates

Test plan

  • npm run typecheck
  • npm run test -- src/renderer/src/gfn/webrtcClient.test.ts
  • Verified lint diagnostics for modified files (no new issues)

Jayian1890 added 5 commits May 3, 2026 08:59
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
Jayian1890 merged commit 16da704 into dev May 3, 2026
8 checks passed
@Jayian1890
Jayian1890 deleted the controller-mode-performance-improvements branch May 3, 2026 15:31
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.
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