Windows 11 Professional - Tweaks to help gaming performance

If you want that extra edge when playing games these settings and tweaks may help. Any changes that involve using the Group Policy Editor and Registry Editor will require a reboot for that change to take effect. I may update this page as time goes by, comments are open so feel free to add your comments or thoughts.

Disable any unnecessary apps running at startup


Use Task Manager or (Settings > Apps > Startup) to disable any unnecessary apps from running at start up

Task Manager



Settings > Apps > Startup



Go through your start up apps and disable anything you do not need to run. In my case I have disabled OneDrive, Microsoft Teams, SteelSeriesGG and iCloud.
 

Disable Xbox Gamebar




Go to Settings > Gaming > Xbox Game Bar and toggle the slider to off. Should you wish to capture your gameplay I would highly recommend OBS.

Enabled further graphic optimisation settings




Go to System > Display > Graphics > Change Default Graphics Settings and turn on any additional graphic optimisation settings such as Hardware Accelerated GPU Scheduling and Optimizations for windowed games. Your options available here will depend on your graphic card.

Make sure Windows has your gaming app set to high performance




Go to System > Display > Graphics and make sure your gaming apps are set to High Performance. Windows will by default automatically set this option for you.

Make sure Game Mode is on




By default game mode is enabled in Windows, make sure it is still on as it will prevent windows updating in the background and notification pop ups whilst playing.
 

Set power mode to best performance




By default Windows will be set to balanced, for gaming you want maximum performance.

Prevent your PC sending Windows update to other PCs




By default Windows may send parts of previously downloaded Windows updates and apps to devices on your local network. As a gamer you do not want your CPU and network card being bogged down by the additional overhead this may cause.

Disable the setting by going to Windows Update > Advanced options > Delivery Optimisation > Allow downloads from other PCs, and toggle it to off.

Turn off Microsoft Edge Start up Boost




This feature keeps Microsoft Edge running in the background, the idea so that it will launch quicker. By doing so it does use some of your PC's resources. I would also turn off 'Continue running background extensions and apps when Microsoft Edge is closed'.

Disable all apps from running in the background


In Windows 10 there was an option to disable apps running in the background. In Windows 11 this option does not exist but instead you can go through every app and allow or disallow it from running in the background by navigating to Apps > Installed Apps > Then click on the three little dots next to each app and select 'Advanced Options'. You can then toggle whether to allow that app to run in the background.

For gaming I would recommend disabling all apps running in the background and to easily achieve this you can use the Group Policy Editor. The Group Policy Editor is a great tool and one that also contains information about each setting, meaning you can learn about the options you are changing.

Open Group Policy Editor by searching for 'Edit Group Policy' in the start menu.



Navigate to;

Local Computer Policy > Computer Configuration > Administrative Templates > Windows Components > App Privacy

Find 'Let Windows apps run in the background' and change this to 'Enabled > Force Deny'.
Change further Group Policy settings

Whilst we have the Group Policy Editor open, here are further settings I would recommend changing.

Disable desktop gadgets


Local Computer Policy > Computer Configuration > Administrative Templates > Windows Components >  Desktop Gadgets

Turn off desktop gadgets by changing the setting to 'Enabled'.
 
Turn Off user-installed desktop gagets by chaning the setting to 'Enabled'
 
Note, you need to disable both.

Disable Windows Error Reporting


Local Computer Policy > Computer Configuration > Administrative Templates > Windows Components > Windows Error Reporting

Turn off Windows Error Reporting by changing the setting to 'Enabled'.

Disable Windows Game Recording and Broadcasting


Local Computer Policy > Computer Configuration > Administrative Templates > Windows Components > Windows Game Recording and Broadcasting

Turn off Windows Game Recording and Broadcasting by changing the setting to 'Disabled'

These next batch of settings relate to NTFS, these settings will reduce overhead and help squeeze that bit of extra performance.

Do not allow compression on all NTFS volumes 


Local Computer Policy > Computer Configuration > Administrative Templates > system > Filesystem > NTFS > Do not allow compression on all NTFS volumes

Turn off Do not allow compression on all NTFS volumes by changing the setting to 'Enabled'.

Do not allow encryption on all NTFS volumes


Local Computer Policy > Computer Configuration > Administrative Templates > system > Filesystem > NTFS > Do not allow encryption on all NTFS volumes

Turn off Do not allow encryption on all NTFS volumes by changing the setting to 'Enabled'.

Enable NTFS non-paged pool usage


Local Computer Policy > Computer Configuration > Administrative Templates > system > Filesystem > NTFS > Enable NTFS non-paged pool usage

Turn on Enable NTFS non-paged pool usage by changing the setting to 'Enabled'.

Disable Short name creation options


Local Computer Policy > Computer Configuration > Administrative Templates > system > Filesystem > NTFS > Short name creation options

Turn off Disable Short name creation options by changing the setting to 'Enabled' and ' Disabled on all volumes'

Optimise your Network card settings


If you are playing online games then your network card or its settings can have an impact on your latency. The reality when it comes to the majority of gaming motherboards is they have a Realtek network controller which in my experience means higher latency and more CPU overhead when compared to decent quality network card such as those made by Intel. If you are a competitive online gamer get yourself a decent Intel network card such as an Intel Ethernet Network Adapter I225-T1

However, regardless of whatever network card / controller you have I would recommend turning off the following settings as they all impact latency and / or add additional overhead.

  • Adaptive Interrupt Moderation 
  • Receive Segment Coalescing
  • Flow Control
  • Large Send Offload
  • Priority & VLAN
  • Wake on Magic Packet
  • Wake on pattern match
  • Energy Efficient Ethernet (EEE)
  • Advanced EEE
  • Green Ethernet
  • Gigabit Lite
  • Power Saving Mode

There are a few ways you can achieve this, you can use 'Network Connections' and change your adapter properties, editing registry settings for your network adapter or use Windows PowerShell which is the quickest option as you can copy and paste the below.

First run Windows PowerShell as administrator, and write or copy the following command,

Get-NetAdapter -Name *

This will list all your network adapters installed along with the name it has been assigned. On my PC I have 1 network adapter with a name of Ethernet. The name 'Ethernet' is used in the below commands and you will need to change this if your one is different.

Windows PowerShell

If you now type, 

Get-NetAdapterAdvancedProperty -Name "Ethernet"

It will show you a list with your current network adapter's settings and what each value is set to.

Get adapter info

Should you wish to verify the settings have changed, run this command again to see the changes. 

Disable Energy-Efficient Ethernet


Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Energy-Efficient Ethernet" -DisplayValue "Disabled"

Disable Flow Control


Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Flow Control" -DisplayValue "Disabled"

Disable Interrupt Moderation


Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Interrupt Moderation" -DisplayValue "Disabled"

Disable Large Send Offload v2 (IPv4)


Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Large Send Offload v2 (IPv4)" -DisplayValue "Disabled"

Disable Large Send Offload v2 (IPv6)


Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Large Send Offload v2 (IPv6)" -DisplayValue "Disabled"

Disable Priority & VLAN


Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Priority & VLAN" -DisplayValue "Priority & VLAN Disabled"

Disable Receive Segment Coalescing (IPv4)


Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Recv Segment Coalescing (IPv4)" -DisplayValue "Disabled"

I also recommend running the below to disable RSC globally.

netsh int tcp set global rsc=disabled

Disable Receive Segment Coalescing (IPv6)


Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Recv Segment Coalescing (IPv6)" -DisplayValue "Disabled"

Disable Wake on Magic Packet


Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Wake on Magic Packet" -DisplayValue "Disabled"

Disable Wake on pattern match


Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Wake on pattern match" -DisplayValue "Disabled"

Disable Advanced Energy Efficient Ethernet


Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Advanced EEE" -DisplayValue "Disabled"

Disable Green Ethernet


Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Green Ethernet" -DisplayValue "Disabled"

Disable Gigabit Lite


Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Gigabit Lite" -DisplayValue "Disabled"

Disable Power Saving Mode


Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Power Saving Mode" -DisplayValue "Disabled"

I know the way I have written the above means your can't copy the lot and paste it in one go in PowerShell, please go here if you wish for a copy / paste friendly version.

Unbind unnecessary network services / protocols


By default Windows will bind certain services / protocols to your network adapter such as Client for Microsoft Windows, File and Printer Sharing for Microsoft Networks, TCP/IPv6 and a few more. If your PC is a standalone not part of any network you can unbind unnecessary network services to remove any overhead associated with these. To play games online and browse the internet all you need is Internet Protocol Version 4 TCP/IPv4 (unless your ISP supports IPv6 support) bound to your network adapter, as illustrated below.

View Network Connections

In the start menu search for 'View Network Connections' then right click on your network adapter and click on 'Properties'. Untick everything but Internet Protocol Version 4 TCP/IPv4 unless you are using TCP/IPv6 or other services. 

These next settings will require using the Registry Editor.

Change TCP Acknowledgment (ACK) behaviour to 1


You can read more about TcpAckFrequency here, by editing your Windows registry settings you can change this from the default of 2 to 1.

Type 'regedit' in the start menu and open the Registry Editor. Browse to the following location,

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\

Find the folder that contains your network adapter, create a new DWORD (32 bit) Value called TcpAckFrequency and change its value to 1.

Change the System Responsiveness from 20% to 10%


By default Windows will reserve 20% of CPU resources for low priority tasks, when playing a game this setting will come into effect. The lowest value this can be set to is 10%.

You can use the SystemResponsiveness key in the registry to change this.

Browse to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile

Change the SystemResponsiveness key to 10, decimal value.

Disable Network Throttling


By default Windows limits the processing of non multimedia network packets to 10 packets per millisecond. This limit can be disabled via the NetworkThrottleIndex registry key.

Browse to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile

Change the NetworkThrottleIndex key to ffffffff, hexadecimal value.

Disable Prefetching and Super fetch


Windows is frequently analysing what apps and services you use the most often and caching portions of their code to disk so that their launch times are reduced. This is an ongoing process in Windows and whenever you load a game or app some form of caching will occur. On a modern SSD system speed isn't an issue and all the prefetching / super fetch does is create unnecessary overhead and IO read / writes. If you want the smoothest gaming experience possible I recommend disabling these.

Browse to Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters

Set the EnablePrefetcher entry to 0

And in a command prompt with administrator access, type,  

sc config SysMain start=disabled

This will disabled the superfetch service.  Reboot your PC for these changes to take effect.

After rebooting your PC browse to your C:\Windows\Prefetch folder and delete all the *.pf files

Disable Dynamic Ticks


By default Windows 11 will allow the system timer to go idle to save power at the expense of system responsiveness. For any interactive application such as gaming particularly in a competitive setting, maximum responsiveness is more preferable.

Open a command prompt as administrator and type;

bcdedit /set disabledynamictick yes

Switch to an antivirus that does not hurt system performance


Unfortunately Windows Defender does have a big hit on system performance, https://www.av-comparatives.org has a good performance review (click the link), extremely worthy of note is the PC Mark test which shows Windows Defender having the worst performance impact of all anti virus software they tested. In my experience I have seen Windows Defender cause games to stutter and FPS not feel smooth, and despite adding those games to every exception in Windows Defender the issues remain unless you disable Windows Defender completely. 

Based on the testing by AV Comparatives, their Performance Test October 2022 puts Panda Antivirus on the very top for minimal performance impact. They also have a free version which I am currently using. Give it a go and see what you think, available at https://www.pandasecurity.com/en/homeusers/free-antivirus/

Happy gaming!

Comments

Popular posts from this blog

My top tweaks for gaming in Windows 10

Ubuntu 23.10 - How to build a kernel package from kernel.org