[20H2+ blocking bug] Desktop capture can only capture the cursor and only a single desktop frame, or otherwise black.

Paul17041993

New Member
Desktop capture can only capture the cursor and only a single desktop frame, or otherwise just a blank frame. Similarly, window capture does not work in auto mode (BitBlt), only WGC works and you must manually set it to that for every window capture. Note also that capture cursor does not function on window capture, at all.

I've checked the logs with the discord bot, no problems are reported other than a few false-warnings.

There is however, one trick/hack I've discovered that gets desktop capture to work, and its to have an active window GCI capture just below display capture, and to then hide and unhide desktop capture and it will proceed to capture desktop frames correctly(?). But only so long as you perform this exact hack on every OBS start or when creating a new desktop capture.

I would hazard a guess that desktop capure is using BitBlit by default, of which nolonger functions in 20H2, thus it doesnt capture frames unless tricked into WGC mode.

This is not related to multi-GPU or admin permissions, don't ask.
 

Attachments

  • 2021-01-03 12-10-00.txt
    14 KB · Views: 179

Paul17041993

New Member
I checked back on it again and its still extremely problematic, the closest it works is with the FPS value set to fractional (144Hz), native res (3440x1440), and even then it still ignores most frame updates to the desktop, the only more or less consistent updates are when the mouse hovers over some UI elements, of which if its set to 60FPS it will skip 90% of them.

My above trick remains the only way to get display capture to work properly.
 

Paul17041993

New Member
Do you have GSync or Freesync on? If yes disable it
I do not have it on, no, but also nor should it matter as the desktop is still rendered at a minimum rate, or the maximum rate if there is no other active graphics context on screen (GL, DX, VK, Video, etc). Windows defaults to the maximum vsync value reported by the graphics driver, which is the maximum var-sync value (or half-rate for nvidia with power saving enabled).

The OBS window itself would be locking the desktop framerate to maximum, assuming it isn't skipping windows events on purpose.
 
Top