[Xiaomi Poco X3 Pro] Pierre2324:
Issues are hardware related and the beahvior can be changed (which can fix or not the issue) by changing touch firmware, flashing another rom, using a different kernel/touch drivers. Every xiaomi phone has some sort of issues. They all use the same touchscreens, panels and touch drivers. It be f1, mi8, x3pro or whatever else. Most troublesome units are coming in the first produced batches usually. Heat does throttle the touch drivers, so gamers usually notice issues the most. So issues can be helped to some extent. It may not be fixable on some specific units and clearly isnt possible to fix it for everyone.

I'll attach a telegram note I've written about ngk's difference regarding to touch drivers & fw below. This is targetting F1/Mi8 but same applies to x3pro and other xiaomi devices I work on. Altho x3pro has a sweet toggle to switch touch firmware from userspace directly.

Spent a whole week with testers to just sit down and find the firmware to choose and then rebuild the drivers from the ground up.. but first here's an intro

Intro:

Small intro for everyone cause many people confuse many things..

-Panels: We have 3 main panels:

FTS, NVT REV1 & NVT REV2

-Touch firmware: comes in kernel and also in ROMs but kernel will flash its inbuilt firmware if the kernel firmware checksum is different to the one already present in ROM

-Touch Drivers: comes in kernel and those dont have numbers/versions its up to the kernel dev to make changes it those so stop asking for driver version no one can answer that precisely compared to firmware

Tests:

Alright now enough talking, the tests and results.

-Panels:

For FTS panels, using stock xiaomi drivers was fine no touch issues seem to happen since those went out.

For NVT panels, some had touch issues on rev1 and rev2 depending on firmware used while keeping xiaomi stock drivers so below tests were focusing on NVT mostly

-Firmware:

We tried 3 firmware and the ones who remained are 9.1.24 and 10.3.7 since other one gave issues

So I did incremental test builds modifying drivers for both firmware

-Drivers:

For drivers, as said before I reverted all changes to xiaomi stock drivers from their source. Some issues were present for some on both firmware version and different issues on both panel revisions (rev1 and rev2)

-Latency:

some issues was only related to latency and I knew latency was going to be better by optimizing the drivers later on

-Touch issues:

So based on that, I only took account of the issues present between firmware for each driver changes

Part 1:

Part 1 was updating novatech drivers from a CAF source that can be seen in my kernel source. So did that, compiled 2 versions again fixed some small issues here and there like firmware flashing wasnt working, touch didn't work at first and some bootup issues, anyway main thing is that novatech driver were updated a bit with less variable locking and such coding changes making the driver faster. Results after that were good it fixed some people's issues but latency wasnt perfect.

-Part2:

Now was time to optimize the drivers and did for both NVT and FTS (most of those optimizations were seen in previous ngk versions) but needed to add them again and add some more and see how they impact (cause not every optimizations means better results, some optimizations introduced issues)

Conclusion:

So in the end if TLDR

The conclusion was that issues were fixed after some driver changes as some optimizations made them worst, 9.1.24 firmware gave better touch (mostly under load or heat a.k.a for gamers) and didnt impact day to day users hence why NGK uses now 9.1.24 firmware.

BUT that is based on the fact that I reviewed the drivers from official xiaomi source, then updating them, then doing specific optimizations, other kernels may have different results or different ways of doing tests, thats just how I did it.

So yea for people who wont like touch, I will send this cause I did work on it to give better touch to most users and limiting the touch issues. I still dont think its possible to have perfect latency and perfect touch due to our phone but here's what has been done..