Question / Help Frame drops when CPU/GPU not exceeding 60%?

ZakO

New Member
Hi,

I'm streaming Dark Souls to Twitch using OBS. My computer isn't the newest (Q9550 @ 3.6GHz, nVidia GTX 260), so I'm not expecting perfect performance, but I was just wondering if there's any tweaks I can make to my settings to make it a little smoother.

When I start streaming with OBS there is a noticeable drop in FPS, the strange thing is neither my GPU nor GPU load exceed 50-60%, I'm only trying to stream 540p @ 1000kbps too. I've tried Window Capture / Monitor Capture / Game Capture for the game window but they all produce the same frame drops, the log contains a monitor capture because it seems to crash Dark Souls less (according to other obs / dark souls users). The game is perfectly smooth when I'm not streaming.

Anything I should change, or is my hardware simply too old?

Thanks in advance for any help.

Code:
17:52:53: Open Broadcaster Software v0.591b - 64bit ( ^ω^)
17:52:53: -------------------------------
17:52:53: CPU Name: Intel(R) Core(TM)2 Quad  CPU   Q9550  @ 2.83GHz
17:52:53: CPU Speed: 3613MHz
17:52:53: Physical Memory:  4095MB Total, 2046MB Free
17:52:53: stepping id: 7, model 23, family 6, type 0, extmodel 0, extfamily 0, HTT 1, logical cores 4, total cores 4
17:52:53: monitor 1: pos={1920, 0}, size={1920, 1080}
17:52:53: monitor 2: pos={0, 0}, size={1920, 1080}
17:52:53: Windows Version: 6.2 Build 9200 
17:52:53: Aero is Enabled
17:52:53: -------------------------------
17:52:53: OBS Modules:
17:52:53: Base Address     Module
17:52:53: 00000000239D0000 OBS.exe
17:52:53: 0000000082B10000 OBSApi.dll
17:52:53: 000000008B030000 DShowPlugin.dll
17:52:53: 000000008FF60000 GraphicsCapture.dll
17:52:53: 0000000091D10000 NoiseGate.dll
17:52:53: 0000000091140000 PSVPlugin.dll
17:52:53: ------------------------------------------
17:52:53: Adapter 1
17:52:53:   Video Adapter: NVIDIA GeForce GTX 260
17:52:53:   Video Adapter Dedicated Video Memory: 913440768
17:52:53:   Video Adapter Shared System Memory: 2146983936
17:52:53:   Video Adapter Output 1: pos={0, 0}, size={1920, 1080}, attached=true
17:52:53:   Video Adapter Output 2: pos={1920, 0}, size={1920, 1080}, attached=true
17:52:53: =====Stream Start: 2013-12-22, 17:52:53===============================================
17:52:53:   Multithreaded optimizations: On
17:52:53:   Base resolution: 1920x1080
17:52:53:   Output resolution: 960x540
17:52:53: ------------------------------------------
17:52:53: Loading up D3D10 on NVIDIA GeForce GTX 260 (Adapter 1)...
17:52:53: ------------------------------------------
17:52:53: Audio Format: 48000hz
17:52:53: Playback device Default
17:52:53: ------------------------------------------
17:52:53: Using desktop audio input: Headset Earphone (2- Microsoft LifeChat LX-3000)
17:52:53: ------------------------------------------
17:52:53: Using auxilary audio input: Headset Microphone (2- Microsoft LifeChat LX-3000)
17:52:53: ------------------------------------------
17:52:53: Audio Encoding: AAC
17:52:53:     bitrate: 128
17:52:53: Using Monitor Capture
17:52:53: Using Window Capture
17:52:53: Scene buffering time set to 700
17:52:53: ------------------------------------------
17:52:53: Video Encoding: x264
17:52:53:     fps: 28
17:52:53:     width: 960, height: 540
17:52:53:     preset: veryfast
17:52:53:     profile: main
17:52:53:     keyint: 56
17:52:53:     CBR: yes
17:52:53:     CFR: no
17:52:53:     max bitrate: 1000
17:52:53:     buffer size: 1000
17:52:53: ------------------------------------------
17:52:53: MMDeviceAudioSource: Frequency for device 'Headset Earphone (2- Microsoft LifeChat LX-3000)' is 352800, samples per sec is 44100
17:52:53: MMDeviceAudioSource: Frequency for device 'Headset Microphone (2- Microsoft LifeChat LX-3000)' is 176400, samples per sec is 44100
17:56:32: Total frames encoded: 6087, total frames duplicated: 611 (10.04%)
17:56:32: Total frames rendered: 6092, number of late frames: 0 (0.00%) (it's okay for some frames to be late)
17:56:32: 
17:56:32: Profiler time results:
17:56:32: 
17:56:32: ==============================================================
17:56:32: video thread frame - [100%] [avg time: 11.4 ms] [children: 98.8%] [unaccounted: 1.23%]
17:56:32: | scene->Preprocess - [3.29%] [avg time: 0.375 ms]
17:56:32: | GPU download and conversion - [95.5%] [avg time: 10.885 ms] [children: 95.7%] [unaccounted: -0.175%]
17:56:32: | | flush - [0.623%] [avg time: 0.071 ms]
17:56:32: | | CopyResource - [94.9%] [avg time: 10.823 ms]
17:56:32: | | conversion to 4:2:0 - [0.0965%] [avg time: 0.011 ms]
17:56:32: Convert444Threads - [100%] [avg time: 0.585 ms] [children: 99.3%] [unaccounted: 0.684%]
17:56:32: | Convert444toNV12 - [99.3%] [avg time: 0.581 ms]
17:56:32: encoder thread frame - [100%] [avg time: 1.298 ms]
17:56:32: ==============================================================
17:56:32: 
17:56:32: 
17:56:32: Profiler CPU results:
17:56:32: 
17:56:32: ==============================================================
17:56:32: video thread frame - [cpu time: avg 2.408 ms, total 14671.9 ms] [avg calls per frame: 1]
17:56:32: | scene->Preprocess - [cpu time: avg 0.025 ms, total 156.25 ms] [avg calls per frame: 1]
17:56:32: | GPU download and conversion - [cpu time: avg 2.369 ms, total 14437.5 ms] [avg calls per frame: 1]
17:56:32: | | flush - [cpu time: avg 0.046 ms, total 281.25 ms] [avg calls per frame: 1]
17:56:32: | | CopyResource - [cpu time: avg 2.308 ms, total 14015.6 ms] [avg calls per frame: 1]
17:56:32: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
17:56:32: Convert444Threads - [cpu time: avg 0.493 ms, total 5984.38 ms] [avg calls per frame: 2]
17:56:32: | Convert444toNV12 - [cpu time: avg 0.485 ms, total 5890.63 ms] [avg calls per frame: 2]
17:56:32: encoder thread frame - [cpu time: avg 1.068 ms, total 6484.38 ms] [avg calls per frame: 1]
17:56:32: ==============================================================
17:56:32: 
17:56:32: =====Stream End: 2013-12-22, 17:56:32=================================================
 

Sapiens

Forum Moderator
Your hardware is pretty underpowered for streaming, and the GPU in particular is probably holding things back. There's not much you can do other than downscaling to a lower resolution and reducing your stream FPS.
 

ZakO

New Member
Hi, thanks for the replies.

Sapiens said:
Your hardware is pretty underpowered for streaming, and the GPU in particular is probably holding things back. There's not much you can do other than downscaling to a lower resolution and reducing your stream FPS.

Do you definitely think it's the GPU? When running Dark Souls + OBS my GPU load averages only 36% with maximum of around 45%, if it's a GPU bottleneck why doesn't the GPU load ever even exceed 50%?

If it was definitely the GPU I would buy a newer one, but with the load so low, I was thinking it would be more likely to be the CPU (which I can't replace just yet)?

HomeWorld said:
You can try to lower the graphics details in Dark Souls.

Unfortunately Dark Souls has limited graphic options (even with DSFix), it only allows you to set the resolution rather than the detail(s). I only have the Dark Souls resolution set to 720p, but I tried earlier setting it as low as 480p and the frame drops still occur.
 

paibox

heros in an halfshel
The problem is almost certainly your video card. The 260/275 and below have severe issues dealing with a lot of VRAM access, and because OBS does all its scene rendering on the GPU, the card performs particularly bad.

Edit: Let me clarify a bit. The GPU isn't hitting 100%, because it's simply not possible due to the memory controller bottlenecking it. The GPU itself is waiting for the data to be in place before it can actually do anything.
 

ZakO

New Member
paibox said:
The problem is almost certainly your video card. The 260/275 and below have severe issues dealing with a lot of VRAM access, and because OBS does all its scene rendering on the GPU, the card performs particularly bad.

Edit: Let me clarify a bit. The GPU isn't hitting 100%, because it's simply not possible due to the memory controller bottlenecking it. The GPU itself is waiting for the data to be in place before it can actually do anything.

Ah, thank you for the explanation, that makes sense then. If I buy a GTX 760 (2GB) do you think it should be noticeably smoother? I will upgrade the CPU eventually, I'm just looking for a quick semi-fix at the moment, and if upgrading the GPU will achieve that I'll just buy one. Thanks again.
 

paibox

heros in an halfshel
Technically, the CPU should be perfectly fine for encoding at your current settings (even at stock clocks), since it was one of the best Core2 Quad CPUs. I had a Q9550 (which unfortunately broke), and I often streamed games at 960x540 30 fps.

Not sure how much CPU Dark Souls uses in general, but your log doesn't indicate that the CPU is what's holding it back for now at least.
 

ZakO

New Member
I wanted to update this just in case somebody else with a GTX 260/2xx has the same question and finds this thread.

I had a chance earlier this week to pick up a GTX 760 cheap, the rest of the build is still the same (Q9550 @ 3.6GHz, 4GB RAM, etc.) and wow, it made an absolutely massive difference for streaming. I can smoothly stream pretty much any game I've tried now (Dark Souls, Dark Souls 2, Tomb Raider, BioShock Infinite, Dishonored) while playing at 1080p/60fps and streaming with 720p/30fps (~2250Kbps). Older games such as BioShock 2 I can stream at 720p/30fps with ~3500kbps, before upgrading the GPU OBS would record at around 5fps for BioShock 2 (480p, 800kbps).

Thanks again for the upgrade suggestion!
 
Last edited:
Top