3 ms·
What if you modify the cables to remove the DDC wire? Can no EDID negotiation be faster?
by snthd 4y ago
What if you modify the cables to remove the DDC wire?
Can no EDID negotiation be faster?
- alin23 4y agoEDID is important because it is the only way for the host to know which resolution, color depth, frame rate the monitor supports. Even if you remove the DDC wires, the OS will still try to communicate, and it might delay this even more because of the retries and delays in code. You might get a headstart if you hardcode the EDID in the OS itself. There are ways to do this on Linux [1], Intel macOS [2] and Windows [3]. [1] http://billauer.co.il/blog/2020/08/linux-override-fake-edid/ http://billauer.co.il/blog/2020/08/linux-override-fake-edid/ [2] https://github.com/mbruggmann/osx-edid-overrides https://github.com/mbruggmann/osx-edid-overrides [3] https://learn.microsoft.com/en-us/windows-hardware/drivers/display/overriding-monitor-edids https://learn.microsoft.com/en-us/windows-hardware/drivers/d...
- Jnr 4y agoBut why is EDID negotiation slow?
- alin23 4y agoSee my answer here: https://news.ycombinator.com/item?id=34050157 https://news.ycombinator.com/item?id=34050157 TLDR: because it is done over a slow protocol (I²C) and because of artificial delays in code to account for slower devices
- criddell 4y agoWhy wait until the user switches input sources to do the negotiation? Why not do it earlier so that the new input is ready to go?
- alin23 4y agoThe monitor is not the active device in this situation, the host (Mac/PC/SBC) is. The negotiation is done when the host initiates it, usually when the cable is connected to a port or when coming back from deeper sleep/standby. If the host remains active after the negotiation, the monitor doesn't go through the process again, I explained how that worked for me here: https://news.ycombinator.com/item?id=34051428 https://news.ycombinator.com/item?id=34051428 The problem that OP has is when the host being switched to is in standby. In that mode, most devices deactivate the video ports completely, disconnecting the monitors and removing them from the hardware device tree. Switching to the inactive input without waking up the host device will usually show a "No signal" message on the monitor. Waking the device before switching to the input could improve the waiting time, but that is an implementation detail depending on both the monitor and the OS and can't be guaranteed.
- eqvinox 4y ago> Can no EDID negotiation be faster? No, at this point removing EDID will simply get the display not detected at all. It used to be optional in the times of VGA, where you could just drive out 640x480 "blind", but there's too much stuff in there these days.