Nvidia Reflex

Everything about latency. This section is mainly user/consumer discussion. (Peer-reviewed scientific discussion should go in Laboratory section). Tips, mouse lag, display lag, game engine lag, network lag, whole input lag chain, VSYNC OFF vs VSYNC ON, and more! Input Lag Articles on Blur Busters.
deama
Posts: 371
Joined: 07 Aug 2019, 12:00

Re: Nvidia Reflex

Post by deama » 12 Sep 2020, 10:12

diakou wrote:
11 Sep 2020, 12:48
1000WATT wrote:
10 Sep 2020, 19:03
This is an example . exclusive fullscreen. https://youtu.be/xuJryS7bMHo

This is 100% DWM composed. ... Old Windows 10. FrameView shows ~ 0.30. https://youtu.be/EJ1hgy9HFLw
Do you know what to do about games that have no exclusive fullscreen mode, but when you kill DWM the game lags horrendously? It's most likely due to DWM's v-sync application keeping the game smooth and consistent, but when I mean "horrendously" I don't mean tearing, I mean FPS jumping between 30-50-55 in a 60fps locked game.

The game I play is called Brawlhalla, but turning off DWM on windows 8 or 7 makes the game go absolutely crazy, this sucks because the game has no way of going into exclusive fullscreen and the latency penalty is massive. It's reduced a ton by using a 240hz or 360hz monitor due to how DWM lag works, but it's still not good enough in my opinion. I think the only way is probably using g-sync or freesync methods. (if you could, it's a free game on steam to download, 400mb, try with DWM and DWM off and you'll see what I mean by extreme lag) it also only has copy with gpu gdi available until you shut off DWM, then it's legacy copy to front buffer.
I sometimes have this issue, it seems that using the borderless windowed autohotkey script fixes it for me though.
Like, normally when I play quake 1 in windowed without dwm, the frametime and fps jump like mad, but using the script it fixes it, though I use scanline sync.
Here's the script if interested to try, run as admin as sometimes it doesn't work well without admin priviliges:
press F12 when you're focusing on the game window; you can still alt-tab easily.

Code: Select all

#SingleInstance force

;;; Known issues:
;;;
;;; - Weird results for windows with custom decorations such as
;;; Chrome, or programs with a Ribbon interface.
;;; - Emacs will be maximized behind instead of in front of
;;; the taskbar. Workaround: WinHide ahk_class Shell_TrayWnd
ToggleFakeFullscreen()
{
	CoordMode Screen, Window
	static WINDOW_STYLE_UNDECORATED := -0xC40000
	static savedInfo := Object() ;; Associative array!
	WinGet, id, ID, A
	if( savedInfo[id] )
	{
		inf := savedInfo[id]
		WinSet, Style, % inf["style"], ahk_id %id%
		WinMove, ahk_id %id%,, % inf["x"], % inf["y"], % inf["width"], % inf["height"]
		savedInfo[id] := ""
	}
	else
	{
		savedInfo[id] := inf := Object()
		WinGet, ltmp, Style, A
		inf["style"] := ltmp
		WinGetPos, ltmpX, ltmpY, ltmpWidth, ltmpHeight, ahk_id %id%
		inf["x"] := ltmpX
		inf["y"] := ltmpY
		inf["width"] := ltmpWidth
		inf["height"] := ltmpHeight
		WinSet, Style, %WINDOW_STYLE_UNDECORATED%, ahk_id %id%
		mon := GetMonitorActiveWindow()
		SysGet, mon, Monitor, %mon%
		WinMove, A,, %monLeft%, %monTop%, % monRight-monLeft, % monBottom-monTop
	}
}

GetMonitorAtPos(x,y)
{
	;; Monitor number at position x,y or -1 if x,y outside monitors.
	SysGet monitorCount, MonitorCount
	i := 0
	while(i < monitorCount)
	{
		SysGet area, Monitor, %i%
		if ( areaLeft <= x && x <= areaRight && areaTop <= y && y <= areaBottom )
		{
			return i
		}
		i := i+1
	}
	return -1
}

GetMonitorActiveWindow()
{
	;; Get Monitor number at the center position of the Active window.
	WinGetPos x,y,width,height, A
	return GetMonitorAtPos(x+width/2, y+height/2)
}

F12::ToggleFakeFullscreen()

andrelip
Posts: 166
Joined: 21 Mar 2014, 17:50

Re: Nvidia Reflex

Post by andrelip » 18 Sep 2020, 14:07

FrameView PLAT and Nvidia reflex latency analyzer are diverging a lot in the results from multiple games.

In Overwatch, when I increase some graphics settings, I noticed that the Reflex jumps from 0.4ms ~2.4ms while Frameview continues to report 0.3~0.4ms the whole time with queue depth around 0.5.

When I decrease the settings to low resolution and low options, they seem to be in sync.

I'm running in 240hz, edge Windows 10, v-sync off, and GPU utilization low.

I don't know if Reflex is counting something more or some strange bug in the counter. I also don't know how each analyzer includes DWM in the render time.

pnegus
Posts: 3
Joined: 09 Jan 2021, 20:47

Re: Nvidia Reflex

Post by pnegus » 10 Jan 2021, 18:19

1000WATT wrote:
11 Sep 2020, 19:35
diakou wrote:
11 Sep 2020, 12:48
I don't think I fully understand what you want.
Sorry, I can't help you measure the delay, I don't have that much free time.
But I tried the game in different modes (60hz, 240hz, g-sync on \ off, vsync on \ off, SS, dwm kill).
And looked at the statistics in CapFrameX. The behavior of the game is quite normal, without a big drop in fps in most modes.
(SS works great.)
Hi. This is a huge necro, but I've been trying to get Brawlhalla into a playable state with dwm disabled. Would you mind testing the game with different window sizes? I get vast differences in frametimes and game-to-render latencies with different window sizes, which I find incredibly odd considering that Brawlhalla is a flash game. Ie. my frametimes get substantially worse the larger the windowed viewport is.

With a tiny viewport the latency reported by PresentMon is near 1ms, with a viewport near 1080p it gets upwards of ~10ms.

I might be missing something here also, and if I am I'd love an explanation. Thanks!

Post Reply