Question / Help My experience with Streaming Destiny 2 at High FPS / 144 Hz some solutions, more questions ...

KloWh

New Member
Hi guys, i wanted to share my story and all the research I did to achieve streaming Destiny 2 on a 144 Hz Monitor with a single PC. That was literally one week of crusade after I updated my hardware.
The primary issue was frames dropping from encoding when the game reach high fps values, the second issue is when I am actually streaming the frame latency in the game is really high (0.9/1.2) resulting in a stutter feeling, even if it’s ok in PVE, in PVP it’s really annoying.
I know that it’s not OBS fault if Destiny 2 does’nt support the game capture, that’s why I run OBS as administrator.

For the beginning this is my Hardware & Specs :
  1. My internet connexion is : 1 Gbps Down, 600 Mbps Up
  2. R9 3900X (Game Optimized via Ryzen Master)
  3. 2080 Ti (Overclocked)
  4. 16 Gb 3600MHZ DDR4
  5. MSI MEG X570 ACE
System useful informations :
  • Windows 10 is Freshly Installed
  • OBS is freshly Installed (i imported my streaming scenes tho) run as administrator mode.
  • I cleaned the cache folder
  • All drivers are up to date
  • Bios was flashed and updated
  • The rig is watercooled and heavily ventilated
  • 2 monitors
  • Monitor 1 : 1440p, 144Hz GSync 32” (Game monitor) With Fullscreen Gsync ON.
  • Monitor 2 : 1440p, 59Hz, 32” (OBS / Other monitor)
  • I play in Windowed fullscreen with GSync ON
  • The games i capture are in Display Capture (Destiny 2) or Game Capture (All others)
OBS Settings : (I followed Nvidia Recommendations for Nvenc New)
CBR, 6000 Kbps, Key image int : 2, Psycho Visual : ON preset : Max Quality, Profile : High
Canvas : 2560x1440p / Outscale : 1600 x 900 – Lanczos.

When I stream my CPU is like 30 % ish
And GPU 95-100% / Encoding is 25-35 %
Destiny 2 only allow Windows Capture for Windowed Fullscreen and Display capture for fullscreen.
The Screen Capture is the Only one in the Scene.

That’s the Steps I used to resolve the first issue (Encoding) :
  • Run OBS as Administrator allow OBS and the Game to balance better the process priority, that reduced dramatically the encoding issues for me (Like 20-30 % less)
  • Disable the preview (It’s material accelerated so … it use the GPU for rendering) I didn’t find an option to disable the material acceleration in OBS, SLOBS have the option it could be nice to had it, cause now we are only GPU Limited Cpu is not an issue so we can have it with software rendering I suppose.
  • 1080p 60 doesn’t work well with fast FPS, 900p60 is the best compromise I found to suppress rendering issues and have a good quality of streaming.
  • It kinda works (0,3 % Frames Dropped)

For the Second issue : the issue is not the FPS in himself, Destiny 2 Work at 120-144 most of the time, dropping to 90~ in the worst case scenario, but the feeling of the game is just off it’s not smooth AT ALL. After a lot of comparisons, Without OBS Launch the game is perfectly smooth and the frames rendering times is 0.4-0.6 ms tops. I tested with and without Gsync enabled, in Fullscreen or Windowed fullscreen. Gsync ON and Fullscreen as the best results so far.

  • With OBS Launched without streaming, preview off : 0.6/0.7 it’s still smooth most of the time.
  • With OBS Launched without streaming, preview on : Same results.
  • With OBS Recording, preview off / on : 0.6/0.8 still acceptable.
  • With OBS Recording and Bandwith test stream : 0.6/0.8 & hellish input lag.
  • But when I ACTUALLY streaming : 0.9-1.3 MS for rendering, sometimes I think I shot the guy before but the time the frame update I am already dead and the man is alive, the game show 110 FPS minimum but the feeling is off as … for the viewer it’s not a problem but for the streamer it’s just hell on earth.

I tried in 720p30 there is a little improvement but … I don’t want to make the viewer lost quality that much for so little improvement. Limiting the frames further doesn’t improve the feeling, If I limit the game at 60 FPS it’s actually even worse, but it’s not because the rendering time only but because 60 FPS make it even blurrier and cause other issues.

I have only this problem / feeling on destiny 2 mostly, other games are OK I still have 0.8ms rendering frames but the feeling is not THAT Much off. I suppose it’s the Window Capture (Who offer better perfs with OBS rendering but poor results IN GAME.) and Display capture who offer better game performance but poor frame rendering time …

I am looking for a turnaround solution to have at least decent gaming confort and streaming quality without buying a 2nd PC that I can’t afford for now.
Thanks a lot for sharing your experiences and knowledge, sorry for my English it’s not my native language.
 

Attachments

  • 2019-11-29 13-38-42.txt
    24.5 KB · Views: 187
D

Deleted member 121471

1) Enable Windows 10 "Game Mode";

2) YUV colour Space: 709, YUV COlour Range: Partial (full uses around 15% more bitrate, lowering overall quality and is not commonly well supported);

3) Reduce Camera capture FPS to 30, as 50 is incredibly de-synchronized with your chosen encoding FPS, resulting in duplicated and/or skipped frames;

4) Create separate scenes for different capture sources, having multiple Game, window and display captures on the same source leads to a performance hit. It is recommended to limit it to 1 capture source per scene;

5) Under encoder settings, you can still use NVENC (new) but use:

Preset: Quality
Lookahead: Disabled
Psycho Visual Tuning: Disabled

This is what is actually the recommendation for most systems, as anything better/higher than this enables CUDA optimizations that lead to encoding lag on many systems;

6) Cap your ingame FPS to 120. While your graphics card can maintain 120FPS stable, you will have a smooth frame pacing on your stream. You should be doing this due to how adaptive sync works when FPS=refresh rate, combined with wonky behaviour of monitor panels at max refresh rates. Monitor at 144Hz+GSYNC+ingame frame cap of 120FPS gets rid of all issues related to it, such as screen tearing in certain scenarios.

Frame rendering times are perfectly normal at those values. In your case, if you play at 120FPS, as long as those values are below 8.333ms, you will never have a single lagged frame.

Lastly, Windows 10 is not designed to handle multiple monitors with different refresh rates, forcing the faster monitor to run slower that it should. While there are ways to mitigate it (disabled hardware acceleration on apps running on slower monitor), the only way to get rid of it entirely is using monitors of same exact resolution and refresh rate. THIS is the most likely culprit behind most of the issues you're experiencing, compounded by everything else mentioned.
 
Last edited by a moderator:

KloWh

New Member
I updated my settings with your recommandations, will try this on the next stream session and will come back to you.
if it works you are a life saver (Or killer for my ennemies in PVP ...)

That's sad we can't simulate stream beside the bandwith test ... would like to test it now :p

Thanks a lot for sharing.
 

koala

Active Member
To test quality and general working, you can just record instead of stream. Use "Use stream encoder" as encoder for recording and check audio track 1 only, and you have exactly the same settings as for streaming, except that no data is sent over to a streaming service. Since you don't have any issues with network bandwidth, this is fine and not changing the capture+encoding behavior.
 

KloWh

New Member
That's what i thought @koala but, when i record locally and when i actually stream the "Feeling" of the game is not the same, the tearing is much greater, i don't know why. I have absolutely no problem on twitch inspector i have a really good connection.

I tried with the new settings it's much better, still some tearing but i suppose it's the screen issue.
 

Deathforest44

New Member
1) Enable Windows 10 "Game Mode";

2) YUV colour Space: 709, YUV COlour Range: Partial (full uses around 15% more bitrate, lowering overall quality and is not commonly well supported);

3) Reduce Camera capture FPS to 30, as 50 is incredibly de-synchronized with your chosen encoding FPS, resulting in duplicated and/or skipped frames;

4) Create separate scenes for different capture sources, having multiple Game, window and display captures on the same source leads to a performance hit. It is recommended to limit it to 1 capture source per scene;

5) Under encoder settings, you can still use NVENC (new) but use:

Preset: Quality
Lookahead: Disabled
Psycho Visual Tuning: Disabled

This is what is actually the recommendation for most systems, as anything better/higher than this enables CUDA optimizations that lead to encoding lag on many systems;

6) Cap your ingame FPS to 120. While your graphics card can maintain 120FPS stable, you will have a smooth frame pacing on your stream. You should be doing this due to how adaptive sync works when FPS=refresh rate, combined with wonky behaviour of monitor panels at max refresh rates. Monitor at 144Hz+GSYNC+ingame frame cap of 120FPS gets rid of all issues related to it, such as screen tearing in certain scenarios.

Frame rendering times are perfectly normal at those values. In your case, if you play at 120FPS, as long as those values are below 8.333ms, you will never have a single lagged frame.

Lastly, Windows 10 is not designed to handle multiple monitors with different refresh rates, forcing the faster monitor to run slower that it should. While there are ways to mitigate it (disabled hardware acceleration on apps running on slower monitor), the only way to get rid of it entirely is using monitors of same exact resolution and refresh rate. THIS is the most likely culprit behind most of the issues you're experiencing, compounded by everything else mentioned.
Hello what bitrate do I use?
 
Top