Jump to content

What does a screenshot REALLY capture?

Shadoninja
Go to solution Solved by Guest,

A screenshot utility captures the framebuffer of your GPU.(Framebuffer stores pixels to be drawn to the displays) This is where the pixels are stored, and is what get's drawn to your screen(s). Your screenshot was probably normal(where your screen wasn't) because there was an connection issue or a display controller crashed. There are controllers in your GPU which drive the port's(and the connected display). If one of those controllers crashed, your display would look weird/artifacted, but the framebuffer would still be fine, thus your screenshot would look normal.

I woke up this morning to a very strange blurry/artifact-looking display on one of my three PC monitors. I have 3 monitors hooked up and only one of them had this extremely odd look to it. I used my sceenshot utility to document the strange display before trying to fix anything. I changed the resolution on the monitor in question to something else and then cycled it back to the original resolution and it was fixed. But the screenshot I took was also fixed... doh. So here is my question: what does a screenshot capture? Does it capture what your graphics card is seeing? Does it capture what the OS *thinks* you are seeing? (I am using Windows). Bonus question: Ideas for what can cause one monitor in a multi-monitor display to look completely broken until a resolution cycle is done?

Link to comment
Share on other sites

Link to post
Share on other sites

A screenshot utility captures the framebuffer of your GPU.(Framebuffer stores pixels to be drawn to the displays) This is where the pixels are stored, and is what get's drawn to your screen(s). Your screenshot was probably normal(where your screen wasn't) because there was an connection issue or a display controller crashed. There are controllers in your GPU which drive the port's(and the connected display). If one of those controllers crashed, your display would look weird/artifacted, but the framebuffer would still be fine, thus your screenshot would look normal.

Link to comment
Share on other sites

Link to post
Share on other sites

It will capture what Windows sees.

This is why for example using the screenshot button doesn't work inside full screen videogames (or maybe it does nowadays, at least it didn't use to); a full screen videogame is something that Windows passes from your GPU directly to your screen as to not interfere with it. 

 

Another reason I say "Windows takes the screenshot" is because they can change the picture. For example, I once saw some funny thing on a show I was watching on Netflix (desktop app) and wanted to screenshot this. When pasting the screenshot in Paint to crop it, I noticed it made the video on Netflix black. Only the video, the subtitles were still present.

 

Also, the resolution cycle thing.. I would have to assume it was an error with your GPU of some sorts, you changed the res (which makes the GPU have to render the screen again) and maybe now it didn't have the error? I'm just guessing, but that could be it..

"We're all in this together, might as well be friends" Tom, Toonami.

 

mini eLiXiVy: my open source 65% mechanical PCB, a build log, PCB anatomy and discussing open source licenses: https://linustechtips.com/topic/1366493-elixivy-a-65-mechanical-keyboard-build-log-pcb-anatomy-and-how-i-open-sourced-this-project/

 

mini_cardboard: a 4% keyboard build log and how keyboards workhttps://linustechtips.com/topic/1328547-mini_cardboard-a-4-keyboard-build-log-and-how-keyboards-work/

Link to comment
Share on other sites

Link to post
Share on other sites

Screenshots capture the framebuffer that is being sent from your GPU to your monitor; in most cases this is what you're seeing. The only thing I could think of is that if a controller on the card failed, meaning the display would be full of artifacts but the framebuffer would be fine.

Upcoming Build

Intel i9 9700K

Custom Loop

ASUS Z390-F Gaming Motherboard

16 GB (2x8GB) DDR4 3200Mhz G.Skill Trident Z RGB

RTX 2070 Super

Samsung 970 Evo M.2 SSD

Intel Optane 32 GB

Seagate Firecuda SSHD

 

 

Daily Driver

AMD Ryzen 7 2700X @ 4.3 Ghz

NZXT Kraken X62

ASUS X470-F Gaming Motherboard

16 GB (2x8GB) DDR4 2933Mhz G.Skill Trident Z RGB

RX Vega 56 8GB

Samsung 970 Evo M.2 SSD

Samsung 860 SATA SSD 

Seagate Firecuda SSHD

 

 

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×