2

Windows 10 computer with 3 monitors attached: one touch screen with native resolution 1280x1024 and 2 identical monitors with native resolution 1920x1080. The touch screen is set as Clone Source in the Nvidia Control Panel, and the 2 other monitors are cloned with it so the setup looks like this:

enter image description here

The 2 monitors should display the exact same image as the touch screen (not considering differences in hardware pixel size), i.e they should display the 1280x1024 image centered with black bands around it to fill the rest of the screen. But the monitors do not have a 'non-scaling' mode where they just center the resolution which comes in so using the Nvidia Control Panel they are set to no scaling, and perfoming scaling on the GPU:

enter image description here

This looks exactly as it should. However the result is touch input on the touch screen does not work correctly anymore: it gets scaled somehow. Likely according to the resolution difference. What happens is that touching the center of the screen is ok, but the further away one taps from the center, the further the tap gets registered. Visually:

enter image description here

So the black points are drawn (in Paint, but all other software behaves the same) with the mouse, number 1 being the center of the screen. The red points are the positions where touch input was registered when touching those black points on the touch screen (I offsetted the red points a bit vertically so they are easier to see). Vertically a similar scaling occurs but it's much less obvious, likely because the difference between 1080 / 1024 is much smaller than 1920 / 1280. This obviously renders touch useless. Turning off GPU scaling makes the problem go away (but makes the 2 monitors display the original image stretched out so not ok), so doe turning off the 2 non-touch monitors.

What exactly causes this? Is there be a solution? Note that calibrating in the Tablet PC settings is not a viable option to fix this because the 2 other monitors might not always be present and we cannot go back and forth, plus I tried calibrating but it's really hard to even start since one has to guess where to tap to get the points to activate :)

stijn
  • 2,007
  • 1
  • 17
  • 26
  • (1) Have you tried [To lock a clone region](https://www.nvidia.com/content/Control-Panel-Help/vLatest/en-gb/mergedProjects/nvdspENG/To_lock_a_clone_region.htm)? (2) What is your display adapter? (3) Which NVIDIA driver version are you using? (4) Is this a new problem and was it caused by some update of driver or Windows? – harrymc Apr 11 '21 at 10:03
  • Do you have any answers ? – harrymc Apr 13 '21 at 11:12
  • Just a *very* sketchy idea: Setup a script that recalibrates your touch screen, so you do the hard part only once. In addition, if you could detect the event of plugging/unplugging monitors and launch alternative scripts, so the calibration is performed automatically, you would be ok. A lot of work to do, if even possible, but... it may work. – sancho.s ReinstateMonicaCellio Apr 13 '21 at 15:33
  • https://answers.microsoft.com/en-us/windows/forum/windows_10-other_settings-winpc/windows-10-version-1703-detect-display-to-correct/bf1df54e-821e-4f22-9794-dd4ddcc60452 – sancho.s ReinstateMonicaCellio Apr 13 '21 at 15:34
  • https://devblogs.microsoft.com/scripting/use-powershell-to-discover-multi-monitor-information/ – sancho.s ReinstateMonicaCellio Apr 13 '21 at 15:34
  • Perhaps we can wait until [this](https://forums.developer.nvidia.com/t/activating-gpu-scaling-leads-to-touch-input-being-scaled-as-well/174403) is answered ;-) – sancho.s ReinstateMonicaCellio Apr 14 '21 at 10:40
  • @harrymc sorry took a while to get ophysical access to the machine. Smart clone doesn't seem to work for more than 2 displays so not an option. It's a Quadro K2200 with latest driver v461.92 i.e. 27.21.14.6192 in Device Manager. Problem has been there since we tried cloning with the touch screen. PC is a Dell Precision 5810. – stijn Apr 14 '21 at 12:55
  • @sancho.sReinstateMonicaCellio doubt it's possible to programmatically calibrate touch accurately, and couldn't immediately find an API to do it. In the end might be simpler to just buy 2 other monitors of the same resolution as the touch screen, if no answer comes out :( – stijn Apr 14 '21 at 13:00
  • @stijn - I was about to suggest that, but it seemed a little bit "challenging" from my side. Note that I meant for you to take note of the calibration parameters once you do it manually, and then use them programmatically, if there is an API that allows to do that. I didn't mean to automate the visual calibration process. – sancho.s ReinstateMonicaCellio Apr 14 '21 at 14:13
  • (1) See this [NVIDIA post](https://www.nvidia.com/content/Control-Panel-Help/vLatest/en-gb/mergedProjects/nvdspENG/To_lock_or_pan_a_Mosaic_clone_region.htm) about the "pixel perfect clone" option. (2) You might find more ideas in [this post](https://medium.com/gamerw1zz/clone-a-144hz-a-60hz-display-without-problems-61403169ea0b). – harrymc Apr 15 '21 at 09:21
  • 1
    @sancho.sReinstateMonicaCellio good point. Looking at https://superuser.com/questions/1075350/tabcal-exe-command-line-switches this might actually be doable. But a quick estimate of time needed to implement it vs price of monitors would still make the latter attractive. – stijn Apr 15 '21 at 13:37
  • @harrymc 'pixel perfect' still requires smart cloning, which is not an option with 3 monitors (well, at least not on this machine). The second link is basically exactly what I'm doing already and which causes the problem. – stijn Apr 15 '21 at 13:38
  • I think we have covered everything, so the remaining conclusion is that NVIDIA cloning doesn't work well for touch screens with GPU scaling. You might need to change the devices, either the monitors or the computer, to make them homogeneous. – harrymc Apr 15 '21 at 13:49
  • @stijn - `tabcal` seems very much like what you need. If not launched automatically on detecting which monitors you have (which would take some further work), at least you can have two scripts, one for each set of values for the calibration, and execute them manually. Depending on the hourly rate for doing the "research" you are taking, the best option may be one or the other. I guess it makes for a reasonable answer to post, so others can perhaps benefit from it. – sancho.s ReinstateMonicaCellio Apr 15 '21 at 14:49

1 Answers1

1

I think we have covered everything, so the remaining conclusion is that NVIDIA cloning doesn't work well for touch screens with GPU scaling.

You might need to change the devices, either the monitors or the computer, to make them homogeneous.

harrymc
  • 455,459
  • 31
  • 526
  • 924