I was going to reply a bit earlier but got pulled away. Well done on doing some testing and setting modes with sysfs. It confirms some suspicions.
See this:
logo=osd1,loaded,0x7900000,720p50hz,full hdmimode=720p50hz
Vero 2 is being told that the preferred video mode is 720p50Hz, so it’s trying to use that. I suspect the projector’s EDID later gets read by the AVR, but it’s then too late for the Vero 2 to adjust the resolution without causing some issues. Kodi doesn’t get a callback from the kernel about the change, so it’s handling things with a different resolution in mind.
I suspect that even if you booted up the Vero 2 without the projector plugged in, and just the AVR, the Vero 2 would still get that EDID because most AVRs try and use it as a safe default.
So when you boot, you get:
Aug 29 19:25:18 osmc kernel: tvmode set to 720p
Aug 29 19:25:18 osmc kernel: mode is 10,sync_duration_den=1,sync_duration_num=60
Aug 29 19:25:18 osmc kernel: request vpu clk holdings: vencp 106250000Hz
Aug 29 19:25:18 osmc kernel: TV mode 720p selected.
Aug 29 19:25:18 osmc kernel: tvoutc_setmode[505]
Aug 29 19:25:18 osmc kernel: tvoutc_setmode[516] mode is 10
Aug 29 19:25:18 osmc kernel: vinfo mode is: 720p
Aug 29 19:25:18 osmc kernel: new mode 720p set ok
Then shortly after, your projector’s real EDID gets sent, and we pick that up.
Aug 29 19:25:28 osmc kernel: tvmode set to 1080p
Aug 29 19:25:28 osmc kernel: mode is 12,sync_duration_den=1,sync_duration_num=60
Aug 29 19:25:28 osmc kernel: request vpu clk holdings: vencp 159375000Hz
Aug 29 19:25:28 osmc kernel: TV mode 1080p selected.
Aug 29 19:25:28 osmc kernel: tvoutc_setmode[505]
Aug 29 19:25:28 osmc kernel: tvoutc_setmode[516] mode is 12
Aug 29 19:25:28 osmc kernel: vinfo mode is: 1080p
Aug 29 19:25:28 osmc kernel: new mode 1080p set ok
Aug 29 19:25:28 osmc kernel: hdmitx: video: get current mode: 1080p
I suspect if you ran the Vero 2 directly to the projector as a test, you wouldn’t get this problem.
If you want to force 1080p, then you can edit /etc/rc.local. It should look as follows. I don’t have this problem, but I have an AVR and Projector and simulated a similar situation, where I forced my projector in to 720p and made sure that stuck.
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
echo "1080p" > /sys/class/mode
echo "edid" > /sys/class/amhdmitx/amhdmitx0/config
exit 0
Let me know how you get on. This similar to the hdmi_mode approach you described on a Pi in config.txt. The reason we don’t let people set boot video modes like this is that they could set a bad value, and have difficulties changing it on the internal storage (it’s not as easily accessible as an SD card).
Edit: I see that you have your Vero 2 directly connected to the projector. The Vero 2 only gives a device 250ms to present its EDID before there is a timeout. On long cables, this can take a bit of time. The above solution should still stand though.
Cheers,
Sam