Question / Help Preview causes FPS drops.

haugsta

New Member
Hey guys,

well like it says in the title if i run OBS on my second monitor with the Preview - it causes immense ingame FPS drops up to 50% at some points.

My Problem now is that, if i disable the preview i dont see a way to keep track of the new followers, donations etc. to properly greet em.

Anyone got a soulution for that?

thanks in advance
 
I have the same exact thing. It works fine if I use another window to cover up the preview on my other screen, or if I flat out disable the preview entirely.

Did you ever find a proper solution?

Look like this reddit thread describes the same thing...affecting multiple users.
 
by preview you mean a explorer with your twitch open ?
you could try using a laptop
the fps drain could be from low end cpu being used by the browser or low ram
 
Scenario: You're gaming on monitor 1. OBS is open on Monitor 2. The "preview" screen that shows what OBS is currently recording/streaming causes a significant FPS hit in-game. If you disable the preview screen in OBS, it runs fine. If you cover up the preview screen in OBS with another window, it runs fine. If you minimize OBS it runs fine.

Only when the preview screen is visible on your second monitor does it cause the FPS drop.

I have a 4790k and 16GB of RAM, so it's not a "low-end cpu" or "low ram". In fact, it's not an encoding problem whatsoever. My output videos look fine. I've tried multiple bitrates and encoders (x264/quicksync) and it doesn't seem to make a difference. I even went so far as to blow away my config files and start over fresh and it didn't make a difference.

Something is off with the preview screen for those of us with two+ monitors.
 
With preview enabled:
Code:
15:33:41: =====Stream Start: 2015-02-15, 15:33:41===============================================
15:33:41:   Multithreaded optimizations: On
15:33:41:   Base resolution: 2560x1440
15:33:41:   Output resolution: 1280x720
15:33:41: ------------------------------------------
15:33:41: Loading up D3D10 on AMD Radeon R9 200 Series (Adapter 1)...
15:33:41: ------------------------------------------
15:33:41: Audio Format: 48000 Hz
15:33:41: ------------------------------------------
15:33:41: Audio Channels: 2 Ch
15:33:41: Playback device Default
15:33:41: ------------------------------------------
15:33:41: Using desktop audio input: Speakers (ASUS Xonar Essence STX Audio Device)
15:33:41: Global Audio time adjust: 0
15:33:41: ------------------------------------------
15:33:41: Using auxilary audio input: Microphone (ASUS Xonar Essence STX Audio Device)
15:33:41: Mic time offset: 0
15:33:41: ------------------------------------------
15:33:41: Audio Encoding: AAC
15:33:41:     bitrate: 128
15:33:41: Using graphics capture
15:33:41: Using anti-cheat hooking for game capture
15:33:41: Trying to hook process: DayZ.exe
15:33:41: Scene buffering time set to 700
15:33:41: Found QSV hardware support
15:33:41: QSV: Using custom parameters
15:33:41: ------------------------------------------
15:33:41: QSV version 1.8 using MFX_IMPL_HARDWARE_ANY | MFX_IMPL_VIA_D3D11 (actual: MFX_IMPL_HARDWARE2 | MFX_IMPL_VIA_D3D11)
15:33:41: Using 14 bitstreams and 14 frame buffers
15:33:41: ------------------------------------------
15:33:41: Video Encoding: QSV
15:33:41:     fps: 60
15:33:41:     width: 1280, height: 720
15:33:41:     target-usage: MFX_TARGETUSAGE_1_BEST_QUALITY
15:33:41:     profile: MFX_PROFILE_AVC_HIGH
15:33:41:     CBR: no
15:33:41:     CFR: yes
15:33:41:     max bitrate: 8000
15:33:41:     buffer size: 11056
15:33:41:     rate control: ICQ
15:33:41: ------------------------------------------
15:33:41: SharedTexCapture hooked
15:33:41: Audio timestamp for device 'Microphone (ASUS Xonar Essence STX Audio Device)' was behind target timestamp by 77177306
15:34:43: FlushBufferedVideo: Flushing 42 packets over 683 ms
15:34:44: Total frames encoded: 3754, total frames duplicated: 54 (1.44%)
15:34:44: Total frames rendered: 3763, number of late frames: 1 (0.03%) (it's okay for some frames to be late)
15:34:44:
15:34:44: Profiler time results:
15:34:44:
15:34:44: ==============================================================
15:34:44: video thread frame - [100%] [avg time: 0.817 ms] [children: 14.4%] [unaccounted: 85.6%]
15:34:44: | scene->Preprocess - [0.122%] [avg time: 0.001 ms]
15:34:44: | GPU download and conversion - [14.3%] [avg time: 0.117 ms] [children: 10.4%] [unaccounted: 3.92%]
15:34:44: | | flush - [8.94%] [avg time: 0.073 ms]
15:34:44: | | CopyResource - [1.1%] [avg time: 0.009 ms]
15:34:44: | | conversion to 4:2:0 - [0.367%] [avg time: 0.003 ms]
15:34:44: Convert444Threads - [100%] [avg time: 0.388 ms] [children: 99.2%] [unaccounted: 0.773%]
15:34:44: | Convert444toNV12 - [99.2%] [avg time: 0.385 ms]
15:34:44: encoder thread frame - [100%] [avg time: 0.043 ms] [children: 69.8%] [unaccounted: 30.2%]
15:34:44: | QueueEncodeTask - [9.3%] [avg time: 0.004 ms]
15:34:44: | ProcessEncodedFrame - [44.2%] [avg time: 0.019 ms]
15:34:44: | sending stuff out - [16.3%] [avg time: 0.007 ms]
15:34:44: ==============================================================
15:34:44:
15:34:44:
15:34:44: Profiler CPU results:
15:34:44:
15:34:44: ==============================================================
15:34:44: video thread frame - [cpu time: avg 0.008 ms, total 31.25 ms] [avg calls per frame: 1]
15:34:44: | scene->Preprocess - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
15:34:44: | GPU download and conversion - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
15:34:44: | | flush - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
15:34:44: | | CopyResource - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
15:34:44: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
15:34:44: Convert444Threads - [cpu time: avg 0.056 ms, total 421.875 ms] [avg calls per frame: 2]
15:34:44: | Convert444toNV12 - [cpu time: avg 0.056 ms, total 421.875 ms] [avg calls per frame: 2]
15:34:44: encoder thread frame - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
15:34:44: | QueueEncodeTask - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
15:34:44: | ProcessEncodedFrame - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
15:34:44: | sending stuff out - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
15:34:44: ==============================================================
15:34:44:
15:34:44: =====Stream End: 2015-02-15, 15:34:44=================================================
 
With preview disabled:
Code:
15:34:58: =====Stream Start: 2015-02-15, 15:34:58===============================================
15:34:58:   Multithreaded optimizations: On
15:34:58:   Base resolution: 2560x1440
15:34:58:   Output resolution: 1280x720
15:34:58: ------------------------------------------
15:34:58: Loading up D3D10 on AMD Radeon R9 200 Series (Adapter 1)...
15:34:58: ------------------------------------------
15:34:58: Audio Format: 48000 Hz
15:34:58: ------------------------------------------
15:34:58: Audio Channels: 2 Ch
15:34:58: Playback device Default
15:34:58: ------------------------------------------
15:34:58: Using desktop audio input: Speakers (ASUS Xonar Essence STX Audio Device)
15:34:58: Global Audio time adjust: 0
15:34:58: ------------------------------------------
15:34:58: Using auxilary audio input: Microphone (ASUS Xonar Essence STX Audio Device)
15:34:58: Mic time offset: 0
15:34:58: ------------------------------------------
15:34:58: Audio Encoding: AAC
15:34:58:     bitrate: 128
15:34:58: Using graphics capture
15:34:58: Using anti-cheat hooking for game capture
15:34:58: Trying to hook process: DayZ.exe
15:34:58: Scene buffering time set to 700
15:34:58: Found QSV hardware support
15:34:58: QSV: Using custom parameters
15:34:58: ------------------------------------------
15:34:58: QSV version 1.8 using MFX_IMPL_HARDWARE_ANY | MFX_IMPL_VIA_D3D11 (actual: MFX_IMPL_HARDWARE2 | MFX_IMPL_VIA_D3D11)
15:34:58: Using 14 bitstreams and 14 frame buffers
15:34:58: ------------------------------------------
15:34:58: Video Encoding: QSV
15:34:58:     fps: 60
15:34:58:     width: 1280, height: 720
15:34:58:     target-usage: MFX_TARGETUSAGE_1_BEST_QUALITY
15:34:58:     profile: MFX_PROFILE_AVC_HIGH
15:34:58:     CBR: no
15:34:58:     CFR: yes
15:34:58:     max bitrate: 8000
15:34:58:     buffer size: 11056
15:34:58:     rate control: ICQ
15:34:58: ------------------------------------------
15:34:59: SharedTexCapture hooked
15:36:02: FlushBufferedVideo: Flushing 43 packets over 700 ms
15:36:02: Total frames encoded: 3781, total frames duplicated: 1 (0.03%)
15:36:02: Total frames rendered: 3789, number of late frames: 1 (0.03%) (it's okay for some frames to be late)
15:36:02: 
15:36:02: Profiler time results:
15:36:02: 
15:36:02: ==============================================================
15:36:02: video thread frame - [100%] [avg time: 0.386 ms] [children: 80.8%] [unaccounted: 19.2%]
15:36:02: | scene->Preprocess - [0.259%] [avg time: 0.001 ms]
15:36:02: | GPU download and conversion - [80.6%] [avg time: 0.311 ms] [children: 76.2%] [unaccounted: 4.4%]
15:36:02: | | flush - [71.2%] [avg time: 0.275 ms]
15:36:02: | | CopyResource - [3.89%] [avg time: 0.015 ms]
15:36:02: | | conversion to 4:2:0 - [1.04%] [avg time: 0.004 ms]
15:36:02: Convert444Threads - [100%] [avg time: 0.418 ms] [children: 99.3%] [unaccounted: 0.718%]
15:36:02: | Convert444toNV12 - [99.3%] [avg time: 0.415 ms]
15:36:02: encoder thread frame - [100%] [avg time: 0.045 ms] [children: 66.7%] [unaccounted: 33.3%]
15:36:02: | QueueEncodeTask - [6.67%] [avg time: 0.003 ms]
15:36:02: | ProcessEncodedFrame - [44.4%] [avg time: 0.02 ms]
15:36:02: | sending stuff out - [15.6%] [avg time: 0.007 ms]
15:36:02: ==============================================================
15:36:02: 
15:36:02: 
15:36:02: Profiler CPU results:
15:36:02: 
15:36:02: ==============================================================
15:36:02: video thread frame - [cpu time: avg 0.008 ms, total 31.25 ms] [avg calls per frame: 1]
15:36:02: | scene->Preprocess - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
15:36:02: | GPU download and conversion - [cpu time: avg 0.008 ms, total 31.25 ms] [avg calls per frame: 1]
15:36:02: | | flush - [cpu time: avg 0.008 ms, total 31.25 ms] [avg calls per frame: 1]
15:36:02: | | CopyResource - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
15:36:02: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
15:36:02: Convert444Threads - [cpu time: avg 0.004 ms, total 31.25 ms] [avg calls per frame: 2]
15:36:02: | Convert444toNV12 - [cpu time: avg 0.004 ms, total 31.25 ms] [avg calls per frame: 2]
15:36:02: encoder thread frame - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
15:36:02: | QueueEncodeTask - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
15:36:02: | ProcessEncodedFrame - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
15:36:02: | sending stuff out - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
15:36:02: ==============================================================
15:36:02: 
15:36:02: =====Stream End: 2015-02-15, 15:36:02=================================================
 
The first two sentences in the thread I linked explain how it might help. Please post complete log files.
 
The first two sentences in the thread I linked explain how it might help. Please post complete log files.

Given the fact that it's not an encoder issue, I didn't think it'd be a fruitful endeavor to post logs. Here's the entire log file.

In effort to make the log as clean as possible, I'm running the test again... First stream is with preview enabled, second is without:

http://pastebin.com/vXjxgHuK


I tested with CS:GO, and I did notice that the FPS reported by the console (net_graph 1) doesn't seem to reflect the dip that we actually see. The game reports it's getting ~200 fps on my screen, but it feels like 40-50 fps.

As soon as I turn off the preview, it feels like I'm actually getting 200 fps.

Edit: updated pastebin link, looks like OBS writes stuff to the log after it's been closed.
 
Last edited:
Back
Top