Disabling part of a monitor in Windows 10 (GPU Scaling/Horizontal Shift?)

tl;dr I’m trying to disable the right half of a monitor in Windows. It feels like something that should be possible with GPU display scaling.

Hardware: 2x 2560x1600 DP monitors
Nvidia 2080ti

Why; I change my monitor configurations a LOT. I’m experimenting with smaller secondary screens and it would be beneficial to be able to “disable” part of the screen when it is positioned physically behind another. I could purchase smaller screens for the purpose, but it would be nice to get this set up in software.

My goal is to configure my secondary screen so that only the left 1280x1600 is being used. As far as I can tell this is relatively straightforward to accomplish in linux, but Windows 10 hasn’t given up the goods as of yet. I’ve figured out a few workarounds, but it would be cool to get a more complete native solution so that I can implement on a work laptop as well.

I’d be happy to write my own software to do the configuration if there is an API somewhere that might enable this kind of functionality. I’ve been looking for a good pure software project for a while. I feel like this might even be able to keep a few screens / laptops out of the dumpster if the damaged section can be disabled.

Workarounds:

  1. Don’t do it

The simplest solution here is to just only put windows on the left half of the screen. The ‘dead zone’ where the screen isn’t visible is inconvenient but not the end of the world.

  1. Powertoys fancyzones

If the desired area is slightly smaller or larger than half, fancyzones can simplify window snapping. Similar ‘dead zone’ as above.

  1. DisplayFusion Splits & Padding (CURRENT SOLUTION)

I love DisplayFusion. I’ve got a keyboard shortcut that moves windows to a defined area on the secondary screen AND limits the snap area when a window is double-clicked. The dead zone still exists, but if I never move my mouse over there it isn’t really a problem unless a small window opens in that dead zone.

  1. Monitor OSD (SO CLOSE)

My particular monitors only support vertical/horizontal position adjustments on the VGA ports. Other monitors may be able to accomplish this here. PBP functionality also gets close, but in my case the size of the split isn’t adjust able, nor is the scaling.

I am fairly certain that this is not possible with windows without some extensive kernel level trickery, and even then I am doubtful.

The GPU is what controls the render output and it does so based on the EDID presented to it by the monitor. It needs to know the physical width of each scan line and the sync to stream the data to the display.

image

It might be possible to fudge the front and back porch values to reduce the resolution, but only in the horizontal axis. (If this even applies to HDMI/LCDs today :man_shrugging: )

1 Like

After a bit of EDID research and nvidia & windows documentation (breaking temporarily breaking a few things), it seems that horizontal translation only supported in any capacity for analog signals. Convincing the GPU to output black pixels likely wouldn’t do it, as the host PC would need to ‘think’ it was only outputting the active pixels and cooperate accordingly…

I tried messing with front/back porch/ sync settings. I think this could work if the monitor was dumb enough. Seems that isn’t going to be the case with modern digital displays.

Boo

Thank you for your help!