The EVGA X20 is equipped with the PixArt PAW3335. According to specifications, the 3335 is capable of up to 16,000 CPI, as well as a maximum tracking speed of 400 IPS, which equals 10.16 m/s. Out of the box, five pre-defined CPI steps are available: 800, 1600, 3200, 6400, and 16,000, with the sniper button set to 400 CPI.
All testing was done on the latest firmware. As such, results obtained on earlier firmware versions may differ from those presented hereafter.
CPI Accuracy
"CPI" (short for counts per inch) describes the number of counts registered by the mouse if it is moved exactly an inch. There are several factors (firmware, mounting height of the sensor not meeting specifications, mouse feet thickness, mousing surface, among others) which may contribute to nominal CPI not matching actual CPI. It is impossible to always achieve a perfect match, but ideally, nominal and actual CPI should differ as little as possible. In this test, I'm determining whether this is the case or not. However, please keep in mind that said variance will still differ from unit to unit, so your mileage may vary.
I've restricted my testing to the four most common CPI steps, which are 400, 800, 1600, and 3200. Deviation used to be exceedingly high, but a recent firmware update successfully adjusted the 800, 1600, and 3200 CPI steps, though the 400 CPI step continues to be way off. In fact, getting an accurate 400 CPI step at all proved to be impossible as even lowering it to 300 CPI doesn't do anything. A below average result overall. As a side note, despite the UI seemingly accepting non-native increments of 50 CPI, they are not applied as the 3335 is only natively capable of increments of 100 CPI. Please note that these measurements have been performed without the feet installed, which results in slightly higher values than with the feet installed.
Motion Delay
"Motion delay" encompasses all kinds of sensor lag. Any further sources of input delay will not be recorded in this test. The main thing I'll be looking for in this test is sensor smoothing, which describes an averaging of motion data across several capture frames in order to reduce jitter at higher CPI values, increasing motion delay along with it. The goal here is to have as little smoothing as possible. As there is no way to accurately measure motion delay absolutely, it can only be done by comparison with a control subject that has been determined to have the lowest possible motion delay. In this case, the control subject is a G403, whose 3366 has no visible smoothing across the entire CPI range. Note that the X20 is moved first and thus receives a slight head start.
Testing is restricted to 2.4 GHz mode as Bluetooth is not suitable for non-casual gaming applications.
Wired Testing
First, I'm looking at two xCounts plots—generated at 1600 and 16,000 CPI—to quickly gauge whether there is any smoothing, which would be indicated by any visible "kinks." As you can see, such kinks are plainly on display in the second plot, which confirms that there is smoothing.
In order to determine motion delay, I'm looking at xSum plots generated at 1600, 6300, and 16,000 CPI. The line further to the left denotes the sensor with less motion delay. Gauging motion delay is made unusually difficult by the fact that the X20 tends to have varying motion delay throughout the motion seemingly at random, as shown below:
Accordingly, I can only give ranges instead of fixed numbers. At 1600 CPI, I can measure a base delay of 1–2 ms. At and above 6300 CPI, the first level of smoothing is applied, resulting in a motion delay differential of 4–5 ms. At and above 11,800 CPI, the differential is 8 ms. The standard transition points on the 3335 are 6200/11,700 CPI, which for some reason have a 100 CPI offset added on the X20. The behavior typically encountered on 3335 implementations whereby motion delay is higher at the onset of motion is entirely absent.
Wireless Testing
Tracking isn't negatively affected by the switch to wireless, which is great.
I'm again looking at plots generated at 1600, 6300, and 16,000 CPI. Keeping the inconsistent wired motion delay established above in mind, I can measure an isolated wireless motion delay of around 1–1.5 ms.
Speed-related Accuracy Variance (SRAV)
What people typically mean when they talk about "acceleration" is speed-related accuracy variance (or SRAV for short). It's not about the mouse having a set amount of inherent positive or negative acceleration, but about the cursor not traveling the same distance if the mouse is moved the same physical distance at different speeds. The easiest way to test this is by comparison with a control subject that is known to have very low SRAV, which in this case is the G403. As you can see from the plot, no displacement between the two cursor paths can be observed, which confirms that SRAV is very low.
Perfect Control Speed
Perfect Control Speed (or PCS for short) is the maximum speed up to which the mouse and its sensor can be moved without the sensor malfunctioning in any way. I've only managed to hit a measly 4.5 m/s (which is within the proclaimed PCS range), at which no sign of the sensor malfunctioning can be observed.
Polling Rate Stability
Considering the X20 is usable as a regular wired mouse as well, I'll be testing polling rate stability for both wired and wireless use.
Wired Testing
Of the available polling rates (125, 250, 500, and 1000 Hz), only 1000 Hz is not broken. RGB lighting introduces major instability, as seen below:
Pictured above is the Breathing lighting effect, which is the greatest offender, with Static being the smallest one.
Wireless Testing
For wired mice, polling-rate stability merely concerns the wired connection between the mouse (SPI communication) and the USB. For wireless mice, another device that needs to be kept in sync between the first two is added to the mix: the wireless dongle/wireless receiver. I'm unable to measure all stages of the entire end-to-end signal chain individually, so testing polling-rate stability at the endpoint (the USB) has to suffice here.
First, I'm testing whether SPI, wireless, and USB communication are synchronized. Any of these being out of sync would be indicated by at least one 2 ms report, which would be the result of any desynchronization drift accumulated over time. As you can see, many off-period polls are visible, which strongly suggests there is some degree of desynchronization present.
Second, I'm testing the general polling-rate stability of the individual polling rates in wireless mode. Running the X20 at a lower polling rate can have the benefit of extending battery life. Whereas 125 and 250 Hz are fine, 500 Hz is broken, and 1000 Hz suffers from very pronounced desynchronization drift, possibly in combination with general instability. Polling stability is either not or just mildly affected by any of the RGB lighting effects.
Paint Test
This test is used to indicate any potential issues with angle snapping (non-native straightening of linear motion) and jitter, along with any sensor lens rattle. As you can see, no issues with angle snapping can be observed. No jitter is visible at 1600 CPI. 6200 CPI is the highest step without smoothing and shows minor jitter, which is subsequently taken care of by the smoothing introduced at 6300 CPI. Despite having the second level of smoothing applied to it, 16,000 CPI shows high jitter. Lastly, there is no sensor lens movement.
Lift-off Distance
The X20 does not offer any pre-defined LOD levels to choose from right from the get-go. Instead, one has to perform a surface calibration first, which will lower the LOD beyond the default level. From there, one can choose between four different "preference" settings: office, universal gaming, FPS gaming, and custom. The latter allows one to choose from three non-discrete levels: High, Low, and Xtreme Low, for "LOD1" and "LOD2." LOD1 refers to the LOD sensor next to the main sensor, whereas LOD2 refers to the one in the front. Unlike on the X17, both LOD1 and LOD2 have an effect. With both set to High, the sensor does track at a height of 1 DVD, but not at a height of 2 DVDs (1.2<x<2.4 mm; x=LOD height). Set to Low, the sensor only tracks intermittently at a height of 1 DVD. Set to Xtreme Low, the sensor does not track at a height of 1 DVD (<1.2 mm). For comparison, the "standard" preset has the sensor track at a height of 1 DVD, but not at a height of 2 DVDs. Keep in mind that LOD may vary slightly depending on the mousing surface (pad) it is being used on.
Click Latency
Since mechanical switches are being used for the buttons in most computer mice, debouncing is required in order to avoid unintended double clicks. Debouncing typically adds a delay (along with any potential processing delay), which shall be referred to as click latency. As there is no way to measure said delay directly, it has to be done by comparing it to a control subject, which in this case is the Logitech G203. Click latency has been measured to be roughly +7.4 ms when compared to the SteelSeries Ikari, which is considered as the baseline with 0 ms, with standard deviation being 0.78 ms. Please keep in mind that the measured value is not the absolute click latency. Comparison data comes from this thread as well as my own testing, using qsxcv's program.
The main button switches were measured to be running at 1.917 V. I'm not aware of the voltage specifications of the Omron D2FC-F-K (60 M) (China) switches, but 1.917 V seems somewhat low.