Quote:
My Sony TV does not show anything, because Efika decides to try and set some mode the TV cannot display. I guess that is normal as well.
But tell me, what has everybody else done differently that they don't have such problems? The Efika MX is the first device that doesn't work with the Sony.
And why is it a good thing to obey a spec instead of making something that works in real life? You are not in a position where you can be incompatible with real-world devices, just because you think they don't follow the spec closely enough. Currently you're a small company making a non-working product. It doesn't make any sense! It doesn't matter what the HDMI spec says, all that matters is if I get a picture to show on my TV. That shouldn't be too complicated an idea to understand.
Let's put it this way: if we didn't follow the spec and just let you set the mode, you would get far more black screens on far more monitors. Manually setting the mode you want (video=1280x720@60) is not guaranteed to pick the correct mode any more than the current mode. Manually picking an incompatible mode will give you a black screen. You are at the mercy of the EDID. This isn't a CRT monitor where you can tweak the modes ever so slightly and still have them always work. LCDs just aren't that flexible.
The problem with your Sony - and a couple other monitors we have to test - is that they report they CAN display the mode it picks, when in actual fact they simply cannot.
This is a bug in your monitor. Unfortunately the only way around it is to detect your monitor and do something different, but imagine doing this for every monitor on the planet to find the perfect mode.
The difference is, Android *forces* 720p@60. We gracefully detect 720p@XX. Your TV says it can do 720p@50 and 720p@60 and the automatic mode detection picks the 50Hz mode. And your TV responds by giving you a black screen.
Code:
[ 2.415497] SIIHDMI: C "1280x720@50" 74.250 1280 1720 1760 1980 720 730 735 755 +hsync -vsync
[ 2.424484] SIIHDMI: C "1280x720@60" 74.250 1280 1390 1430 1650 720 730 735 755 +hsync -vsync
The solution we're working on right now will basically change the behavior of the mode culling, since in most of the cases of black monitors, it is because we take out all duplicate PC modes where there is a CEA analog (therefore if the monitor says it can do "1280x720@60" and "CEA Mode 4", we remove the 1280x720 mode since CEA mode 4 is the same thing).
Some HDMI TVs will overscan CEA modes regardless. We want to avert this by keeping the PC mode in there instead. For HDMI TVs connected via DVI or DVI monitors, we definitely want to keep the PC mode.
And for modes where two exist with different refreshes we will let you pick if you want to use one or the other, but it's kind of difficult to work out a heuristic to detect this: we know you have two modes in the EDID with similar refresh, however we cannot know which one does not work, the order in the EDID may change monitor to monitor (or be an IT mode vs. a CEA mode as above).. it's a complicated thing to work out.
Not even the AMD Catalyst drivers on the PC do it correctly as I have seen on my TV at home.