TechAngel85 Posted March 19, 2022 Posted March 19, 2022 24 minutes ago, DoubleYou said: Just enable the OSD for SSE Display Tweaks. Capture with Nvidia Geforce Experience Overlay. I was thinking more on the route of monitoring with file, like FRAPS did. I just purchased a license for FPS Monitor. 23 minutes ago, z929669 said: Doh! Yeah, so my bad.... I was just happy to understand why he wasn't limited by hardware composition I don't see any issues with SSE Display Tweaks INI or game INI. I forget if frame limiter is set the skyrimprefs or skyrim.ini. If those are OK, then I suspect its GFX display settings somewhere. I don't know NVIDIA so well, so you guys will know more about that. Graphics settings for this is in my post (image of of Inspector).
TechAngel85 Posted March 19, 2022 Posted March 19, 2022 Updated my post with FPS benchmarking as proof. COC to Riverwood, turned off ENB, ran around, quick traveled to WR stables, ran around, and finally ended within WR Stables interior (which is where you see the FPS shoot up).
DoubleYou Posted March 19, 2022 Posted March 19, 2022 I fixed it: Problem was Nvidia Control Panel is junk. I updated the drivers last time and reset all the settings, and evidently it messed up the settings I use for GSync to set it to only work in Fullscreen mode. Correct settings for GSync + VSync in windowed mode: Correct settings for GSync uncapped fps in windowed mode: Also, my refresh rate was wrong on the monitor settings. It was set to 60 HZ when it was supposed to be set to 75 HZ.
TechAngel85 Posted March 19, 2022 Posted March 19, 2022 17 minutes ago, DoubleYou said: I fixed it: Problem was Nvidia Control Panel is junk. I updated the drivers last time and reset all the settings, and evidently it messed up the settings I use for GSync to set it to only work in Fullscreen mode. Correct settings for GSync + VSync in windowed mode: Correct settings for GSync uncapped fps in windowed mode: Also, my refresh rate was wrong on the monitor settings. It was set to 60 HZ when it was supposed to be set to 75 HZ. Nice. So what have we learned? So far, only that drivers/driver settings are important? Why isn't Z able to? AMD vs Nvidia?
DoubleYou Posted March 19, 2022 Posted March 19, 2022 32 minutes ago, TechAngel85 said: Nice. So what have we learned? So far, only that drivers/driver settings are important? Why isn't Z able to? AMD vs Nvidia? I don't think @z929669 was having issues with this. Just @Spigotron and myself.
Greg Posted March 19, 2022 Posted March 19, 2022 1 hour ago, TechAngel85 said: Nice. So what have we learned? So far, only that drivers/driver settings are important? Why isn't Z able to? AMD vs Nvidia? I think we just learned NVidia settings are confusing and counter-intuitive?
z929669 Posted March 20, 2022 Posted March 20, 2022 2 hours ago, Greg said: I think we just learned NVidia settings are confusing and counter-intuitive? Yeah, I was assuming it was the NVIDIA display GFX settings. 4 hours ago, DoubleYou said: I fixed it: Problem was Nvidia Control Panel is junk. I updated the drivers last time and reset all the settings, and evidently it messed up the settings I use for GSync to set it to only work in Fullscreen mode. Correct settings for GSync + VSync in windowed mode: Correct settings for GSync uncapped fps in windowed mode: Also, my refresh rate was wrong on the monitor settings. It was set to 60 HZ when it was supposed to be set to 75 HZ. Glad you got it figured out. Looks like we have some recommendations in the making.
Mousetick Posted March 20, 2022 Posted March 20, 2022 What we learned is that in both DY and Tech cases, specific nVidia driver-level settings were used, making the SkyrimPrefs.ini and SSEDisplayTweaks.ini configuration settings irrelevant and circumventing the instructions given by the guide, or even doing the opposite of the instructions with G-Sync. You could either try to provide instructions and support to uncap framerates in Borderless Fullscreen Window for every combination of GPU, monitor, driver, and OS features. Good luck with that... Or simply configure the game to run in Exclusive Fullscreen mode and turn off V-Sync via BethINI (SkyrimPrefs.ini) or SSEDisplayTweaks.ini settings, which will work in every case - assuming driver settings are at default, i.e. "Let application decide". I don't think enabling or disabling G-Sync/FreeSync/Adaptive Sync/Variable Refresh Rate actually matters: VRR doesn't work if the framerate exceeds the supported frequency range due to V-Sync being off. It doesn't limit the framerate, it simply synchronizes the monitor with the GPU. If the monitor can't keep up, then it can't keep up, the GPU still outputs full throttle. V-Sync does the opposite: it synchronizes the GPU with the monitor, so the GPU can only output as fast as the monitor can accept. Edit: Adaptive Sync could be confused with nVidia's 'Adaptive V-Sync' feature which is something else unrelated to VRR display
Mousetick Posted March 20, 2022 Posted March 20, 2022 Looks like there is a better way after all that I'd missed and mistakenly thought would require specific hardware support. V-Sync can be turned off and framerate can be uncapped in Borderless Fullscreen Window mode simply with SSE Display Tweaks' configuration. Both settings are under the [Render] section of SSEDisplayTweaks.ini: Change EnableVSync from true to false: ## Enable/disable VSync. # # IMPORTANT: If you're using borderless mode and want to disable VSync, EnableTearing must be set to true. # # Note: This option overrides 'iVSyncPresentInterval' in SkyrimPrefs.ini # EnableVSync=false Change EnableTearing from false to true: ## Required for disabling V-Sync in borderless/windowed mode. Only works with a flip SwapEffect option. # # More info: https://docs.microsoft.com/en-us/windows/win32/direct3ddxgi/variable-refresh-rate-displays # # ENB WARNING: Disable this if you have ForceVSync set to true in enblocal.ini, otherwise your game might freeze on startup. # EnableTearing=true You can try it if you like. It works for me. It should work with any GPU + driver combo that supports DirectX 11 or 12, and on Windows 10 Anniversary Update (version 1607, March 2016) Spring Creators Update (version 1803, April 2018) or later. If you'd like to test it for validation purpose, please ensure all nVidia/AMD driver settings are set to default or "application-controlled" to get the most generic non-customized setup. The log will look something like this: [Window] [0x4E0324] Message hook installed [Window] [0x4E0324] Window created [Skyrim Special Edition] (0,0,1920,1200) [Render] [D3D] Requesting mode: 1920x1200@0 | VSync: 0 | Windowed: 1 [Render] [D3D] SwapEffect: flip_discard | SwapBufferCount: 3 | Tearing: 1 | Flags: 0x00000802 [Render] [D3D] Windowed hardware composition support: no As a simple way to check if the framerate is unlocked and V-Sync is truly disabled, you can display the Escape pause menu while in game and the FPS should quickly jump to 300 fps (or whatever FramerateLimit is set to in SSEDisplayTweaks.ini). The framerate limit setting should be higher than your monitor max refresh rate to ensure nothing else may be limiting it. As a simple way to check if the game is in Borderless Fullscreen Window mode, you can Alt-Tab out to another smaller app window and the game should still be displayed in the background. Why this requires a separate configuration setting that needs to be manually toggled in SSEDisplayTweaks.ini is anyone's guess, it would have been more user-friendly to infer it automatically based on the other settings. But it's there, and it does the job. This method is better than switching to Exclusive Fullscreen mode for measuring performance because it remains in Borderless Fullscreen Window mode, while Exclusive Fullscreen doesn't have the same performance characteristics as Borderless Fullscreen Window.
z929669 Posted March 20, 2022 Posted March 20, 2022 13 hours ago, Mousetick said: Looks like there is a better way after all that I'd missed and mistakenly thought would require specific hardware support. V-Sync can be turned off and framerate can be uncapped in Borderless Fullscreen Window mode simply with SSE Display Tweaks' configuration. Both settings are under the [Render] section of SSEDisplayTweaks.ini: Change EnableVSync from true to false: ## Enable/disable VSync. # # IMPORTANT: If you're using borderless mode and want to disable VSync, EnableTearing must be set to true. # # Note: This option overrides 'iVSyncPresentInterval' in SkyrimPrefs.ini # EnableVSync=false Change EnableTearing from false to true: ## Required for disabling V-Sync in borderless/windowed mode. Only works with a flip SwapEffect option. # # More info: https://docs.microsoft.com/en-us/windows/win32/direct3ddxgi/variable-refresh-rate-displays # # ENB WARNING: Disable this if you have ForceVSync set to true in enblocal.ini, otherwise your game might freeze on startup. # EnableTearing=true You can try it if you like. It works for me. It should work with any GPU + driver combo that supports DirectX 11 or 12, and on Windows 10 Anniversary Update (version 1607, March 2016) Spring Creators Update (version 1803, April 2018) or later. If you'd like to test it for validation purpose, please ensure all nVidia/AMD driver settings are set to default or "application-controlled" to get the most generic non-customized setup. The log will look something like this: [Window] [0x4E0324] Message hook installed [Window] [0x4E0324] Window created [Skyrim Special Edition] (0,0,1920,1200) [Render] [D3D] Requesting mode: 1920x1200@0 | VSync: 0 | Windowed: 1 [Render] [D3D] SwapEffect: flip_discard | SwapBufferCount: 3 | Tearing: 1 | Flags: 0x00000802 [Render] [D3D] Windowed hardware composition support: no As a simple way to check if the framerate is unlocked and V-Sync is truly disabled, you can display the Escape pause menu while in game and the FPS should quickly jump to 300 fps (or whatever FramerateLimit is set to in SSEDisplayTweaks.ini). The framerate limit setting should be higher than your monitor max refresh rate to ensure nothing else may be limiting it. As a simple way to check if the game is in Borderless Fullscreen Window mode, you can Alt-Tab out to another smaller app window and the game should still be displayed in the background. Why this requires a separate configuration setting that needs to be manually toggled in SSEDisplayTweaks.ini is anyone's guess, it would have been more user-friendly to infer it automatically based on the other settings. But it's there, and it does the job. This method is better than switching to Exclusive Fullscreen mode for measuring performance because it remains in Borderless Fullscreen Window mode, while Exclusive Fullscreen doesn't have the same performance characteristics as Borderless Fullscreen Window. So I did some testing. Log file names indicate testing params as follows: amdApp: App controlled wherever possible, Freesync and proprietery functions disabled otherwise amdProprietary: Freesync and proprietery functions enabled stepBorderlessW: Step BethINI setup with both Windowed/Borderless toggled on StepFullscreen: Step BethINI setup with both Windowed/Borderless toggled off SSE Display Tweaks settings: Step recommendations but for toggling EnableTearing and/or EnableVsync as indicated LimitYes/No: Whether or not my FPS is limited to monitor refresh Additionally: All other possible sources of FPS limiters or vsync disabled ENB disabled on basically vanilla game so I can get max frame rates without having to do the little tricks mentioned Win 10 build 21H2 (latest) According to SSE Display Tweaks logs, my system doesn't support Windowed hardware composition; although, I do have the DWM process, and it's running (NOT shown as a service on my system. It's strictly a process and doesn't appear to be governed by any service, contrary to most recent Google search results.) SSEDisplayTweaks-amdApp-stepBorderlessW-EnableTearingTrue-EnableVsyncFalse-LimitNo.logSSEDisplayTweaks-amdApp-stepBorderlessW-EnableTearingFalse-EnableVsyncFalse-LimitYes.logSSEDisplayTweaks-amdProprietary-StepFullscreen-EnableTearingTrue-EnableVsyncFalse-LimitNo.logSSEDisplayTweaks-amdProprietary-StepFullscreen-EnableTearingFalse-EnableVsyncTrue-LimitYes.logSSEDisplayTweaks-amdProprietary-StepFullscreen-EnableTearingFalse-EnableVsyncFalse-LimitNo.logSSEDisplayTweaks-amdProprietary-StepBorderlessW-EnableTearingTrue-EnableVsyncFalse-LimitNo.logSSEDisplayTweaks-amdApp-stepFullscreen-EnableTearingFalse-EnableVsyncFalse-LimitNo.log As my logs show: EnableTearing=True always allows me to exceed my monitor refresh rate, irrespective of window mode. EnableVsync=True caps me at my monitor refresh rate, irrespective of window mode. Using Windowed/Borderless mode AND EnableTearing=False EnableVsync=False also caps me at my monitor refresh rate. Enabling Freesync on my system has no bearing to capping my rates. SSE Display Tweaks governs my FPS limit behavior regardless of all other variables. I think further testing combinations would be redundant, as we can predict all other outcomes from the untested combinations of the testing params (I THINK). So, I think AMD (my system) behaves as those of you using NVIDIA. It's just that my settings are a bit more intuitive. amdProprietary settings below. amdApp is with these all disabled or under app control where possible. So long story short, I think we can simply leave our BethINI/SSEDT recommendations in place and have users set EnableTearing=True to break FPS caps (I think that's @Mousetick's point, so my results support that). I think this is simpler than messing with BethINI configs and explaining all of that in the guide (makes sense to do so in our Dispay Settings guide though). Let me know if I missed something though. It's a lot of info and a bit of a brain tease. Also, compare the log files in WinMerge ... I found the SwapEffect diffs interesting and don't have time to reason that out ATM.
Mousetick Posted March 21, 2022 Posted March 21, 2022 15 hours ago, z929669 said: Let me know if I missed something though. It's a lot of info and a bit of a brain tease. Thanks for all the extensive tests and the information you've gathered, that's very useful. They're in line with what would be expected. 15 hours ago, z929669 said: So, I think AMD (my system) behaves as those of you using NVIDIA. Actually, you and I are both using AMD So it would be nice if DY, Greg and Tech could test this solution on their side, since they're all using nVidia. 15 hours ago, z929669 said: I think we can simply leave our BethINI/SSEDT recommendations in place and have users set EnableTearing=True to break FPS caps Yes that's what I had in mind. This wouldn't change the BethINI setup part of the guide and only adds one (temporary) SSEDT configuration setting tweak to the Performance Tuning - Benchmarking Steps section of the guide. This also would also avoid going down the specific driver settings rabbit hole. 15 hours ago, z929669 said: I found the SwapEffect diffs interesting They're showing the different ways (in DirectX lingo) the game engine's graphics buffers are handled and sent to the GPU. "discard" is used in Exclusive Fullscreen mode where the buffer is copied directly to the GPU, "flip_xxxx" is used in Borderless Fullscreen Window mode where the buffer is shared with Windows' DWM which can "compose" it with additional windows (like overlay widgets such as media volume control, game bar, notifications and so on). More details and other interesting tidbits in relatively plain English: SwapChain Science 15 hours ago, z929669 said: my system doesn't support Windowed hardware composition It's fine, it was my mistake to mention it initially as I misunderstood its significance. We can ignore it I think. My (limited) understanding is that it allows for offloading some of the DWM work to the GPU and may be necessary to fully support fancy scenarios like using Borderless Fullscreen Window at a different resolution than Windows' desktop resolution.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now