Page 3 of 3

Re: Nvidia Reflex

Posted: 12 Sep 2020, 10:12
by deama
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()

Re: Nvidia Reflex

Posted: 18 Sep 2020, 14:07
by andrelip
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.

Re: Nvidia Reflex

Posted: 10 Jan 2021, 18:19
by pnegus
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!