Jump to content

Does Windows 10 force triple-buffering in Windowed mode?

As I understand it, triple buffering works in conjunction with V-sync to allow a second frame to rendered in the back frame buffer while the GPU is still waiting for the monitor refresh to be ready..

However, is it true that triple buffering is forced when you run a game in windowed mode even though Vsync is disabled?

Source:

"

Windows 10, like Windows 8 before it, forces the use of the Desktop Window Manager. (desktop compositor)

This means that any application running in a window will have triple buffering applied to it.

If you disable V-Sync in a game that is running in a window, the framerate will be uncapped and is no longer synchronized to the refresh rate - as expected. However you won't get any screen tearing because triple-buffering is applied via the DWM.

If you want to disable V-Sync and still get screen tearing, run the game in fullscreen exclusive mode. That way the game should bypass the DWM."

 

How come Windows can run triple buffering in windowed mode while Vsync is disabled?

If there is no Vsync the GPU would just spit out the next frame as soon as it's ready meaning there would be no point to triple buffering yet when playing games in Windowed mode V-sync is not running because FPS is not capped in game..

What?

I don't like 2D games...I just couldn't get into them.. ( ͡° ͜ʖ ͡°)

Link to comment
Share on other sites

Link to post
Share on other sites

"Windows 10, like Windows 8 before it, forces the use of the Desktop Window Manager. (desktop compositor) This means that any application running in a window will have triple buffering applied to it. If you disable V-Sync in a game that is running in a window, the framerate will be uncapped and is no longer synchronized to the refresh rate - as expected. However you won't get any screen tearing because triple-buffering is applied via the DWM. If you want to disable V-Sync and still get screen tearing, run the game in fullscreen exclusive mode. That way the game should bypass the DWM."

 

source

https://www.reddit.com/r/pcgaming/comments/3cpbqr/windows_10_forced_vsync/

 

Thats pretty sad, seems like DWM forces triple buffering in win 10, and there is no way around it except for using fullscreen mode

Long live Stalin, he loves you; sing these words, or you know what he’ll do!

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, noisebomb44 said:

"Windows 10, like Windows 8 before it, forces the use of the Desktop Window Manager. (desktop compositor) This means that any application running in a window will have triple buffering applied to it. If you disable V-Sync in a game that is running in a window, the framerate will be uncapped and is no longer synchronized to the refresh rate - as expected. However you won't get any screen tearing because triple-buffering is applied via the DWM. If you want to disable V-Sync and still get screen tearing, run the game in fullscreen exclusive mode. That way the game should bypass the DWM."

 

source

https://www.reddit.com/r/pcgaming/comments/3cpbqr/windows_10_forced_vsync/

 

Thats pretty sad, seems like DWM forces triple buffering in win 10, and there is no way around it except for using fullscreen mode

Yes but surely triple buffering can't work without Vsync..

I don't like 2D games...I just couldn't get into them.. ( ͡° ͜ʖ ͡°)

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, AstroBenny said:

Yes but surely triple buffering can't work without Vsync..

yeah, never thought about that, maybe it doesnt matter then because i cant find anyone saying that triple buffering works without vsync

Long live Stalin, he loves you; sing these words, or you know what he’ll do!

Link to comment
Share on other sites

Link to post
Share on other sites

triple buffering is a OpenGL exclusive feature and does not work in DirectX

 

DirectX uses a different method of page flip, called render ahead - render ahead can have 9 settings, from 0 to 8

render ahead does not drop frames, and because of this it induces lag - developers chose to use a reduced render ahead que 

Link to comment
Share on other sites

Link to post
Share on other sites

8 minutes ago, zMeul said:

triple buffering is a OpenGL exclusive feature and does not work in DirectX

 

DirectX uses a different method of page flip, called render ahead - render ahead can have 9 settings, from 0 to 8

render ahead does not drop frames, and because of this it induces lag - developers chose to use a reduced render ahead que 

You can enable triple Buffering in GTA V and that uses DirectX.

I don't like 2D games...I just couldn't get into them.. ( ͡° ͜ʖ ͡°)

Link to comment
Share on other sites

Link to post
Share on other sites

11 minutes ago, AstroBenny said:

You can enable triple Buffering in GTA V and that uses DirectX.

no you can't

developers are fucking ignorants and because they use 3 pages they call it triple buffering, it's actually render ahead set on 3

Link to comment
Share on other sites

Link to post
Share on other sites

12 minutes ago, zMeul said:

no you can't

developers are fucking ignorants and because they use 3 pages they call it triple buffering, it's actually render ahead set on 3

That must be it, im sure it couldn't be something like its near enough to the average user and they use the term for simplicity sake

System Specs

CPU: Ryzen 5 5600x | Mobo: Gigabyte B550i Aorus Pro AX | RAM: Hyper X Fury 3600 64gb | GPU: Nvidia FE 4090 | Storage: WD Blk SN750 NVMe - 1tb, Samsung 860 Evo - 1tb, WD Blk - 6tb/5tb, WD Red - 10tb | PSU:Corsair ax860 | Cooling: AMD Wraith Stealth  Displays: 55" Samsung 4k Q80R, 24" BenQ XL2420TE/XL2411Z & Asus VG248QE | Kb: K70 RGB Blue | Mouse: Logitech G903 | Case: Fractal Torrent RGB | Extra: HTC Vive, Fanatec CSR/Shifters/CSR Elite Pedals w/ Rennsport stand, Thustmaster Warthog HOTAS, Track IR5,, ARCTIC Z3 Pro Triple Monitor Arm | OS: Win 10 Pro 64 bit

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Nexxus said:

That must be it, im sure it couldn't be something like its near enough to the average user and they use the term for simplicity sake

it's not the same because it works differently, as I said .. Render Ahead doesn't drop frames, while Triple Buffering does

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, zMeul said:

it's not the same because it works differently, as I said .. Render Ahead doesn't drop frames, while Triple Buffering does

I never said it works the same.

System Specs

CPU: Ryzen 5 5600x | Mobo: Gigabyte B550i Aorus Pro AX | RAM: Hyper X Fury 3600 64gb | GPU: Nvidia FE 4090 | Storage: WD Blk SN750 NVMe - 1tb, Samsung 860 Evo - 1tb, WD Blk - 6tb/5tb, WD Red - 10tb | PSU:Corsair ax860 | Cooling: AMD Wraith Stealth  Displays: 55" Samsung 4k Q80R, 24" BenQ XL2420TE/XL2411Z & Asus VG248QE | Kb: K70 RGB Blue | Mouse: Logitech G903 | Case: Fractal Torrent RGB | Extra: HTC Vive, Fanatec CSR/Shifters/CSR Elite Pedals w/ Rennsport stand, Thustmaster Warthog HOTAS, Track IR5,, ARCTIC Z3 Pro Triple Monitor Arm | OS: Win 10 Pro 64 bit

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, Nexxus said:

I never said it works the same.

you need to understand that you can't use the term Triple Buffering in DX games; and render ahead has inherent lag because the way it operates

 

if I recall, nVidia did release some drivers with the GTX950 that switches pre-rendered frames to 0, thus working with a single page

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, zMeul said:

you need to understand that you can't use the term Triple Buffering in DX games; and render ahead has inherent lag because the way it operates

 

if I recall, nVidia did release some drivers with the GTX950 that switches pre-rendered frames to 0, thus working with a single page

you couldn't miss the point of my statement even more if you were deliberately trying too.

System Specs

CPU: Ryzen 5 5600x | Mobo: Gigabyte B550i Aorus Pro AX | RAM: Hyper X Fury 3600 64gb | GPU: Nvidia FE 4090 | Storage: WD Blk SN750 NVMe - 1tb, Samsung 860 Evo - 1tb, WD Blk - 6tb/5tb, WD Red - 10tb | PSU:Corsair ax860 | Cooling: AMD Wraith Stealth  Displays: 55" Samsung 4k Q80R, 24" BenQ XL2420TE/XL2411Z & Asus VG248QE | Kb: K70 RGB Blue | Mouse: Logitech G903 | Case: Fractal Torrent RGB | Extra: HTC Vive, Fanatec CSR/Shifters/CSR Elite Pedals w/ Rennsport stand, Thustmaster Warthog HOTAS, Track IR5,, ARCTIC Z3 Pro Triple Monitor Arm | OS: Win 10 Pro 64 bit

Link to comment
Share on other sites

Link to post
Share on other sites

8 minutes ago, zMeul said:

you need to understand that you can't use the term Triple Buffering in DX games; and render ahead has inherent lag because the way it operates

 

if I recall, nVidia did release some drivers with the GTX950 that switches pre-rendered frames to 0, thus working with a single page

Surely with pre-rendered frames set to 0, there would be no frames for the GPU to draw..?

You need to have at least one rendered frame for the GPU to process..surely.. 

I don't like 2D games...I just couldn't get into them.. ( ͡° ͜ʖ ͡°)

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, noisebomb44 said:

"Windows 10, like Windows 8 before it, forces the use of the Desktop Window Manager. (desktop compositor) This means that any application running in a window will have triple buffering applied to it. If you disable V-Sync in a game that is running in a window, the framerate will be uncapped and is no longer synchronized to the refresh rate - as expected. However you won't get any screen tearing because triple-buffering is applied via the DWM. If you want to disable V-Sync and still get screen tearing, run the game in fullscreen exclusive mode. That way the game should bypass the DWM."

 

source

https://www.reddit.com/r/pcgaming/comments/3cpbqr/windows_10_forced_vsync/

 

Thats pretty sad, seems like DWM forces triple buffering in win 10, and there is no way around it except for using fullscreen mode

That's rediculas in windowed mode if u disable vsync u disable triple buffering other wise everyone would run there games in borderless windowed mode and have unlimited fps and no tearing 

and vsync would become obselite 

AMD (and proud) r7 1700 4ghz- 

also (1600) 

asus rog crosshairs vi hero x370-

MSI 980ti G6 1506mhz slix2 -

h110 pull - acer xb270hu 1440p -

 corsair 750D - corsair 16gb 2933

Link to comment
Share on other sites

Link to post
Share on other sites

33 minutes ago, AstroBenny said:

Surely with pre-rendered frames set to 0, there would be no frames for the GPU to draw..?

You need to have at least one rendered frame for the GPU to process..surely.. 

pre-rendered means that you're working with the back buffer, not with the front buffer

 

if I remember from Anand's article, with pre-rendered frames to 0 there's still is a 13ms lag

 

might be wrong, with pre-rendered set to 0 the video card works in page flip mode - instead of copying the back buffer into the front buffer, the back buffer becomes the front buffer and so on

Link to comment
Share on other sites

Link to post
Share on other sites

6 minutes ago, jjohnthedon1 said:

That's rediculas in windowed mode if u disable vsync u disable triple buffering other wise everyone would run there games in borderless windowed mode and have unlimited fps and no tearing 

and vsync would become obselite 

but then why does a lot of game have them as seperate options, also scroll down

Long live Stalin, he loves you; sing these words, or you know what he’ll do!

Link to comment
Share on other sites

Link to post
Share on other sites

8 minutes ago, noisebomb44 said:

but then why does a lot of game have them as seperate options, also scroll down

Windowed mode slows u to have other things on the screen at the same time 

 

borderless allows you too alt tab out of the game quickly back to the desktop 

 

full screen slows the gpu to have more acces to the game and can yield better performance 

AMD (and proud) r7 1700 4ghz- 

also (1600) 

asus rog crosshairs vi hero x370-

MSI 980ti G6 1506mhz slix2 -

h110 pull - acer xb270hu 1440p -

 corsair 750D - corsair 16gb 2933

Link to comment
Share on other sites

Link to post
Share on other sites

4 minutes ago, jjohnthedon1 said:

Windowed mode slows u to have other things on the screen at the same time 

 

borderless allows you too alt tab out of the game quickly back to the desktop 

 

full screen slows the gpu to have more acces to the game and can yield better performance 

What does that have to do with anything?

Long live Stalin, he loves you; sing these words, or you know what he’ll do!

Link to comment
Share on other sites

Link to post
Share on other sites

4 hours ago, noisebomb44 said:

What does that have to do with anything?

Oh though that's what u asked

 

with vsync if ur not hitting 60fps u drop down to 30 

tripple buffering allows the game to 45 fps

with no tearing 

AMD (and proud) r7 1700 4ghz- 

also (1600) 

asus rog crosshairs vi hero x370-

MSI 980ti G6 1506mhz slix2 -

h110 pull - acer xb270hu 1440p -

 corsair 750D - corsair 16gb 2933

Link to comment
Share on other sites

Link to post
Share on other sites

12 hours ago, zMeul said:

it's not the same because it works differently, as I said .. Render Ahead doesn't drop frames, while Triple Buffering does

What do you mean by "drop" frames, exactly? 

I don't like 2D games...I just couldn't get into them.. ( ͡° ͜ʖ ͡°)

Link to comment
Share on other sites

Link to post
Share on other sites

4 hours ago, AstroBenny said:

What do you mean by "drop" frames, exactly? 

you should read this article: http://www.anandtech.com/show/2794

 

the part you're interested in:

Quote

In render ahead, frames cannot be dropped. This means that when the queue is full, what is displayed can have a lot more lag. Microsoft doesn't implement triple buffering in DirectX, they implement render ahead (from 0 to 8 frames with 3 being the default). 

The major difference in the technique we've described here is the ability to drop frames when they are outdated. Render ahead forces older frames to be displayed. Queues can help smoothness and stuttering as a few really quick frames followed by a slow frame end up being evened out and spread over more frames. But the price you pay is in lag (the more frames in the queue, the longer it takes to empty the queue and the older the frames are that are displayed).

In order to maintain smoothness and reduce lag, it is possible to hold on to a limited number of frames in case they are needed but to drop them if they are not (if they get too old). This requires a little more intelligent management of already rendered frames and goes a bit beyond the scope of this article.

 

Link to comment
Share on other sites

Link to post
Share on other sites

14 hours ago, jjohnthedon1 said:

Oh though that's what u asked

 

with vsync if ur not hitting 60fps u drop down to 30 

tripple buffering allows the game to 45 fps

with no tearing 

still not what i asked, but who cares anymore

Long live Stalin, he loves you; sing these words, or you know what he’ll do!

Link to comment
Share on other sites

Link to post
Share on other sites

4 hours ago, zMeul said:

you should read this article: http://www.anandtech.com/show/2794

 

the part you're interested in:

 

But isn't the render Ahead thing to do with how many framed the CPU can pre-render for the gpu whereas triple Buffering is to do with allowing the gpu  to render two back buffers for the display..

I don't like 2D games...I just couldn't get into them.. ( ͡° ͜ʖ ͡°)

Link to comment
Share on other sites

Link to post
Share on other sites

48 minutes ago, noisebomb44 said:

still not what i asked, but who cares anymore

No but that's the information u need to work it out for ur self 

stop being douche I'm not spelling it out for you 

if u can't work it out the ur just a i

patranising idiot

AMD (and proud) r7 1700 4ghz- 

also (1600) 

asus rog crosshairs vi hero x370-

MSI 980ti G6 1506mhz slix2 -

h110 pull - acer xb270hu 1440p -

 corsair 750D - corsair 16gb 2933

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, jjohnthedon1 said:

No but that's the information u need to work it out for ur self 

stop being douche I'm not spelling it out for you 

if u can't work it out the ur just a i

patranising idiot

what?
I asked why games have vsync and triple buffering as seperate options so that you can enable triple buffering without enabling vsync, not the definition of vsync and triple buffering or what the difference between windowed mode, borderless window and fullscreen is, also if you kept reading you would notice that i relized that triple buffering wouldnt work without vsync, which is why i said "scroll down" in my first reply

Long live Stalin, he loves you; sing these words, or you know what he’ll do!

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

×