Hey,
TL/DR : a same resolution would work with Xorg, but not in DRM drivers (through EDID) on nvidia GPU (need to test on i915).
Full version :
Along with my tests with EDID in groovyarcade, I stumbled about a strange behaviour : some almost identical resolutions (648x480 EDID generated by switchres vs 640x480 modeline for X vs 640x480 patched resolution in 15kHz kernel) do not always work whereas they should. For example : the nouveau drm drivers says the EDID resolution is "invalid" (I'm not sure about the real error behind, I suspect it's a MODE_CLOCK_LOW), whereas the "almost same resolution" (pixel clocks are almost the same. Don't have them at hand for now, but it's something like 13MHz vs 13.128 MHz).
So, anyone would have an idea why DRM would reject a resolution that would run perfect from the 15kHz kernel or Xorg ?
The same EDID worked fine with the amd drm driver, I have yet to test on i915.
Sources :
DRM/nouveau :
https://github.com/torvalds/linux/blob/v5.3/drivers/gpu/drm/nouveau/nouveau_connector.c#L1020-L1064DRM/i915 : I guess it's somewhere in the intel_sdvo.c, looks connector dependant, haven't found yet anything for VGA (HDMI would be 25MHz, DP 10MHz)
Now here is the whole point of it : is it worh patching the DRM drivers for lower pixel clock limits (to 10MHz for example) ?