Difference between revisions of "Talk:Smooth Quake"

From QWiki
(removed text)
Tag: Blanking
 
Line 1: Line 1:
WORK IN PROGRESS: JUNE 2023
 
  
== Hardware ==
 
'''<big>Monitor</big>'''<br>
 
IPS panel with 240Hz minimum is recommended.<br>
 
TN has bad colors and viewing angles, VA has slow response time and Oled has higher input lag.<br>
 
The pixels response time must stay inside de refresh cycle (1000/Hz) to avoid blur and take full advantage of the monitor's Hz.<br>
 
Example: the refresh cycle of a 240hz monitor is 1000/240=4.16ms, if the pixel response time is above that, its going to generate blur.<br>
 
How to know the pixel response time for my monitor? [https://www.rtings.com/monitor/tests/motion/motion-blur-and-response-time Rtings has some reviews]. Order them by rise/fall time.<br>
 
Some monitors have a fast enough response time but at the cost of ghosting. Take this into account.<br>
 
[https://www.testufo.com/ghosting#background=004040&separation=160&pps=1080&graphics=bbufo.png&pursuit=1 UFO Test] shows how your monitor responds so you can select a proper overdrive setting.<br>
 
''Example products'': Asus VG279QM [https://www.aperturegrille.com/reviews/ASUSVG279QM/ Aperture Grille's review].<br>
 
 
'''<big>Mouse</big>'''<br>
 
Any modern mouse should be ok.<br>
 
Most mouse companies add smoothing after a certain DPI level ([https://community.xim.tech/index.php?topic=84035.msg795898#msg795898 more info]) but a few brands have smoothing disabled for all DPI ranges.<br>
 
1000Hz and DPI of 1600 minimum is recommended. Use only native DPI values to avoid interpolation.<br>
 
A good sensor should not have problems such as smoothing, angle snapping, jitter and DPI deviation.<br>
 
''Example products'': Pixart 3389 sensor (1600 DPI no smoothing added).<br>
 
[https://www.youtube.com/watch?v=6AoRfv9W110 Battle(non)sense DPI analysis].<br>
 
 
Note: with 1000Hz+ mouse and keyboard you should use [https://forums.blurbusters.com/viewtopic.php?f=10&t=7618 separate dedicated usb chips] or a PCIe USB card.<br>
 
 
'''<big>Keyboard</big>'''<br>
 
1000Hz minimum is recommended simply because it has lower input lag than regular 125hz keyboards. [https://www.youtube.com/watch?v=UmS_t3YYy8s Explanation].<br>
 
''Example products'': EVGA Z20 and Corsair K70 Rapidfire/Champion models are fast but expensive.<br>
 
 
 
== Configuration ==
 
'''<big>BIOS</big>'''
 
* Spread Spectrum ; Memory Scrambler: Disable
 
<big></big>
 
* Extreme Memory Profile (XMP): Enable
 
 
 
'''<big>Windows</big>'''
 
* Start > Settings > Privacy > Background apps > Disable all but "Windows Security"
 
<big></big>
 
* Control Panel > Mouse > Pointer Options > Untick 'Enhance pointer precision' and leave pointer speed at 6th notch.
 
<big></big>
 
* Control Panel > Power Options > High performance > Change plan settings > Change advanced settings > PCI Express > ASPM: disable
 
<big></big>
 
* [https://forums.guru3d.com/threads/windows-line-based-vs-message-signaled-based-interrupts-msi-tool.378044/ MSI Interrupt Mode Utility]: Change supported devices to MSI. A negative value means it's working. Do not enable devices if the supported modes field doesn't include MSI. Interrupt priority should be undefined for all. Windows sets SATA to high and some ethernet drivers too.
 
 
 
'''<big>NVIDIA</big>'''
 
* NVCP: create a new profile for ezquake and disable "Threaded Optimization"
 
<big></big>
 
* [https://github.com/Orbmu2k/nvidiaProfileInspector/releases NvidiaProfileInspector]: change the following value in section "Other" > Maximum Frames Allowed = 1
 
 
 
'''<big>AMD/ATI</big>'''<br>
 
(to be added...)
 
 
== ezQuake Launch ==
 
You can change Windows power plan to High Performance while playing and restore its value back to Balanced when finished.<br>
 
Open command line and type powercfg -l to see their GUID. They should match the ones below.<br>
 
Devices interrupts go to cpu0 by default. Excluding it for ezQuake will improve fps and stabilize frametime. [https://bitsum.com/tools/cpu-affinity-calculator/ Cpu affinity calculator] shows you what hexadecimal value you need to set in the cmdline after the /affinity (replace the word HexVal with the value you got from the calculator).
 
Open notepad and place these 3 lines (without the comment), change game path, and save as bat extension.
 
 
powercfg -s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c (high performance power profile)<br>
 
start "" /wait /affinity HexVal "D:\QW\ezquake" -mem 1024<br>
 
powercfg -s 381b4222-f694-41f0-9685-ff5bb260df2e (balanced power profile)<br>
 
 
 
== ezQuake Settings ==
 
in progress...<br>
 
 
cl_maxfps 1001        (is the minimum recommended and there is no need for more)<br>
 
cl_newlerp 0.1        (smooths projectiles movement)<br>
 
gl_simpleitems 1      (different look and big fps boost)<br>
 
r_particles_count 1024 (is enough unless you use tons of effects)<br>
 
r_farclip 8192        (is enough for long distances)<br>
 
 
Tools to check performance:<br>
 
timedemo<br>
 
hud_frametime<br>
 
hud_frametime_max_reset_interval 2<br>
 
hud_performance_average 0<br>
 
hud_fps<br>
 
hud_net<br>
 
hud_ping<br>
 
hud_speed<br>
 
 
== Issues ==
 
'''<big>Network: lag spikes</big>'''
 
* Proxy: server browser automatically finds proxies. It can connect to a server using more than one.<br>Follow these steps to know if one of them or the one it's using is the culprit.<br>console > hud_net_show 1. If "dev" (deviation) is 1ms+, type cl_proxyaddr and write IPs down.<br>Server Browser > select a server > press 'enter'<br>In the help shortcut keys box, "Route" indicates how many proxies were found. Press 'n'. This will connect directly bypassing proxies.<br>If deviation improves then some proxy causes issues.<br>With the IPs you wrote, set cl_proxyaddr with just one until you find wich one is bad. Sb_ignoreproxy can exclude it from future updates.
 
<big></big>
 
* Network Throttling: enabled reduces latency in ethernet driver but if you don't exclude cpu0 from ezQuake this will cause alot of deviation.<br>If you have high deviation to any server, disable this to see if connection improves:<br>Winkey+R > regedit > HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile > NetworkThrottlingIndex = ffffffff (Hex value to disable).<br>If there is no improvement, enable it again ([10-70] range in decimal. default 10).
 
<big></big>
 
* Interrupt Moderation: if you feel lag even with low ping, disable in ethernet properties.<br>
 
 
 
'''<big>Network: packet loss</big>'''
 
* Console > setinfo dupe 1 (set it in cl_onload for permanent use).<br>Note: connection to a proxy could also be the cause of packet loss.<br>
 
 
 
'''<big>Performance: unstable FPS</big>'''
 
* Uninstall or disable any RGB software (monitor; mouse; keyboard). It causes issues with the system.
 
<big></big>
 
* Threaded Optimization: enable if you can't keep steady fps with your ezQuake config. Was recommended to disable as a just in case.
 
<big></big>
 
* NVCP > ezQuake profile > Power management mode > prefer maximum performance (sets gpu at max frequency).<br>If the GPU jumps frequency often it will cause stutters (leads to a small fps drop). You can check this using [https://www.msi.com/Landing/afterburner/graphics-cards MSI Afterburner].<br>If the GPU jumps to boost frequency and down to max frequency often you can lock the gpu at boost frequency.<br>Type gtx or rtx depending on wich GPU you have in the search below (CTRL+F).<br>Winkey+R > regedit > HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class > CTRL+F > gtx (or) rtx > New DWORD > DisableDynamicPstate = 1
 
 
== Advanced Windows Settings ==
 
'''<big>[https://www.techpowerup.com/download/microsoft-interrupt-affinity-tool/ Interrupt affinity]</big>'''<br>
 
You can set devices interrupts to a specific cpu. Mouse readings could improve if you isolate it. Usually the least used cpus are the last ones. With Hyper-Threading you need to assign physical cpus rather than logical ones. USB devices can't bet set individually.<br>In device manager select your mouse then view devices by connection and the branch goes up to XHCI. Select XHCI in the affinity tool.
 

Latest revision as of 11:19, 1 July 2023