Using intel-virtual-output with xrandr --scale doesn't display the whole output.
If both monitors are set with xrandr --scale, it displays only the upper left corner with the rest black. If just the virtual output's scale is set, it displays the upper left of the virtual display. If just the nvidia output's scale is set, is displays the whole virtual output in the upper left corner.
See https://devtalk.nvidia.com/default/topic/1009039/linux/external-monitor-only-shows-a-quarter-when-scaling-2x2-on-bumblebee-setup-intel-nvidia-quadro-m20-/ for an image.
That's a job for after some coffee, trying to keep the matrices in order. We have a choice of setting a similar transformation on the nvidia crtc and copying the unscaled framebuffer across, but the better answer will probably be applying the scale as we readback and copying the scaled image across. (To be even more complicated, whichever makes the copy smaller, downscale on host, upscale on target.)
Hello, thanks for raising this issue. I'm the OP of the thread on devtalk.nvidia.com
I'd be really grateful for having this sorted out, so if I can be of any assistance please let me know.