Skip to content

Commit 72725eb

Browse files
committed
Update 4.4.0 - See changelog.txt for details
1 parent 578e19f commit 72725eb

File tree

7 files changed

+440
-13
lines changed

7 files changed

+440
-13
lines changed

Installer.iss

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
; =====================================================
2-
; StreamTweak v4.3.0 - GitHub Release Installer
2+
; StreamTweak v4.4.0 - GitHub Release Installer
33
; =====================================================
44
#define MyAppName "StreamTweak"
5-
#define MyAppVersion "4.3.0"
5+
#define MyAppVersion "4.4.0"
66
#define MyAppPublisher "FoggyBytes"
77
#define MyAppExeName "StreamTweak.exe"
88
#define MyAppURL "https://github.com/FoggyBytes/StreamTweak"

README.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,11 @@ With StreamLight, you can manage host NIC speed without leaving the client:
1515

1616
- **Show host NIC speed** — query StreamTweak on the host and see the current Ethernet adapter speed at a glance
1717
- **Set host to 1 Gbps** — send the speed-change command to StreamTweak from the client before connecting, with a built-in 10-second countdown and a 30-second auto-revert if no connection is made
18+
- **Host metrics in overlay** *(StreamLight 1.2.0+)* — StreamLight's performance overlay now includes a live "Host Metrics" section showing GPU %, GPU encoder %, GPU temperature, VRAM used / total (MB), CPU %, and network TX (Mbps) pulled directly from StreamTweak in real time
1819

1920
StreamLight and StreamTweak are designed to work together, giving you full control over the streaming setup from both sides of the connection.
2021

21-
> StreamLight is available for **Windows only** and requires StreamTweak to be installed and running on the host PC.
22+
> StreamLight is available for **Windows only** and requires StreamTweak to be installed and running on the host PC. Host metrics in the overlay require **StreamLight 1.2.0** or later.
2223
2324
## 🔥 Key Features
2425

@@ -54,13 +55,15 @@ StreamLight and StreamTweak are designed to work together, giving you full contr
5455
- **Logs Tab:** Full session history — every streaming session is recorded regardless of whether NIC throttle was applied, with NIC Throttle (Yes/No), Original NIC Speed, and timestamped date including year.
5556
- **About Tab:** Version info, GitHub link, license badge, and donation button in a dedicated panel.
5657

57-
## ✨ What's New in Version 4.3.0 — The "App Manager Update"
58+
## ✨ What's New in Version 4.4.0 — The "Telemetry Update"
5859

59-
4.3.0 brings a new Streaming App Manager, a full session logging overhaul, and a more resilient Dolby Atmos activation chain.
60+
4.4.0 adds real-time host metrics collection and exposes them to StreamLight via a new STATS command on the TCP bridge, enabling a live host telemetry section in StreamLight's performance overlay.
6061

61-
* **New: Streaming App Manager —** a configurable list of apps that StreamTweak automatically kills at session start and relaunches at session end; each app has an independent AutoManage toggle; manual kill and restart buttons are available from the Apps tab without waiting for a streaming session
62-
* **Improved: Session logging —** all streaming sessions are now recorded regardless of whether NIC throttle was applied; the Logs tab gains a NIC Throttle column (Yes/No), an Original NIC Speed column, and the year in the date display; the old Mode column has been removed
63-
* **Improved: Dolby Atmos retry loop —** after the initial 30-second wait, `DolbyAudioMonitor` now retries finding Steam Streaming Speakers every 5 seconds for up to 3 minutes, handling cases where the Windows Audio service is still initializing at startup (e.g. early auto-login)
62+
* **New: Host metrics collection —** StreamTweak collects GPU usage %, GPU encoder usage %, GPU temperature (NVIDIA only via NVML), VRAM used and total (MB, total NVIDIA only), CPU usage %, and network TX (Mbps) in real time using PDH PerformanceCounters and NVML P/Invoke
63+
* **New: STATS TCP command —** the bridge on port 47998 accepts a new `STATS` command and returns a JSON payload; StreamLight 1.2.0 or later reads this data and displays it in the performance overlay under a dedicated "Host Metrics" section
64+
* **Improved: Async metrics init —** `HostMetricsCollector` initialises on a background thread to avoid any impact on WPF startup time; counter list is refreshed every 60 seconds to track ephemeral GPU Engine instances
65+
66+
> StreamLight 1.2.0 or later is required to display host metrics in the overlay.
6467
6568
## 📖 The Technical Story Behind This Project
6669
This project was born out of a specific frustration in the cloud gaming community. When using game streaming software like **[Moonlight](https://github.com/moonlight-stream/moonlight-qt)** with **Sunshine** or **Apollo**, a known issue occurs if the host PC and the client have mismatched Ethernet link speeds.
@@ -229,7 +232,7 @@ LogParser.FindStreamingAppInfo()
229232

230233
## 📝 Installation
231234
1. Go to the **Releases** page of this repository.
232-
2. Download the latest `StreamTweak_4.3.0_Installer.exe`
235+
2. Download the latest `StreamTweak_4.4.0_Installer.exe`
233236
3. Run the installer and enjoy seamless streaming.
234237

235238
## 🙏 Support the Project

StreamTweak/App.xaml.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ public partial class App : Application
4545
// Moonlight fork TCP bridge
4646
private readonly StreamTweakBridge _bridge = new();
4747

48+
// Real-time host metrics (GPU, CPU, VRAM, network) for the STATS command
49+
private readonly HostMetricsCollector _metricsCollector = new();
50+
4851
// Inactivity timer — prevents restoring speed on temporary reconnect disconnects
4952
private System.Windows.Threading.DispatcherTimer? inactivityTimer = null;
5053
private const int INACTIVITY_TIMEOUT_MS = 30000;
@@ -82,6 +85,7 @@ protected override void OnStartup(StartupEventArgs e)
8285
var (mbps, connected) = GetCurrentSpeed();
8386
return connected ? mbps.ToString() : "UNKNOWN";
8487
};
88+
_bridge.StatsProvider = () => _metricsCollector.GetLatestSample().ToJson();
8589
}
8690

8791
private void LoadConfig()
@@ -530,6 +534,7 @@ private void MenuExit_Click(object sender, RoutedEventArgs e)
530534
_bridge.PrepareRequested -= OnBridgePrepareRequested;
531535
_bridge.RestoreRequested -= OnBridgeRestoreRequested;
532536
_bridge.Dispose();
537+
_metricsCollector.Dispose();
533538
StopLogMonitorForced();
534539
_dolbyMonitor.Disable();
535540
tb?.Dispose();

0 commit comments

Comments
 (0)