johngalt:
Thanks for all your work to bring us closer to proper UHD playback.
Maybe it is just me, but I am a bit confused regarding your 10-Bit tests and statements.
I'll try to recap what I understood, so please help me out if any (or all) of the following is wrong...
- Full Nougat is generally capable of 10-Bit output. (?)
- "Detecting" 10-Bit in the source video and just switching to 10-Bit when necessary is not possible. (?)
- 10-Bit to 8-Bit dithering and 10-Bit output cannot coexist. (?)
I am also unsure about the following:
- What kind of output issue do you see on YCbCr 4:2:0 at 10-Bit? You mentioned this before...
- Are your tests limited to 10-Bit at 2160p + HDR10 + BT.2020? I would also be interested if 1080p / BT.709 / 10-Bit can benefit from a 10-Bit output.
--- However, if you can use the resolution as a "trigger" to enable 10-Bit output, I'd prefer to keep the (good) 10-Bit to 8-Bit dithering on 1080p sources and have 1:1 proper 10-Bit output for 2160p....
- Do you even have to define the color subsampling when you enable 10-Bit? Can you not tell the box to output 10-Bit independent of 4:4:4 or 4:2:0 so it automatically chooses what works and what doesn't?
Display More
Going top down:
- Yes, we've got 10 bit output here.
- It's possible, but requires a bit of work (because of resolution switching in libreelec patched kodi side).
- It can coexist, but we really don't want it to.
-
No output whatsoever when "420,10bit" is set on that sysfs interface.
However, I get 4:2:0 10bit on >50hz after setting "444,10bit". I
haven't looked into that issue, and am not sure of the priority of the
issue either.
- It can (and does) benefit, and no dithering is
needed. I've watched various media on the box since, and have kept
"444,10bit" set. This is something that could be set in autostart.sh for
now for those of us on capable hardware. Unfortunately the dc_cap route
I wanted to go (where we'd check on boot and set accordingly) has
issues, as dc_cap is still misreporting hardware that isn't capable of
10bit input. This also means that as of now the "what is available" route you mentioned isn't available. This will be looked into. There's nothing wrong with setting 4:4:4 for now however.
--- Wait a bit and
test a new build (uploaded soon) before you decide on this. This is
something that wouldn't be too difficult, but would require patching
that probably wouldn't be liked by most users. As I understand it, your
reasoning is because you're doing or using 10bit hevc rips of your
blurays? In this case dithering is hardcoded into the rips, and you
shouldn't need additional dithering with 10 bit output of them.
- We must define it in that interface, but there are many other ways we could go about this. With that said, I don't see a reason to avoid defining it.
Without echo '444,10bit' > /sys/class/amhdmitx/amhdmitx0/attr
PE II: Vertical banding in sun during intro, AVR says ‘YCbCr420, 24 bit’
Passengers: OK, AVR says ‘YCbCr4444, 24bit’
1080p24 SDR: Tons of frameskips
After echo '444,10bit' > /sys/class/amhdmitx/amhdmitx0/attr
PE II: TV says “no input”, AVR says it does have input
Passengers: white dots in picture, audio glitches, AVR says ‘YCbCr444, 30bit’. Could be cable related.
1080p24 SDR: Tons of frameskips, AVR says ‘YCbCr4444, 30bit’
Display More
Without:
Pe II: Not sure with vertical banding, but even on my display's internal player and android with proper 10bit output I get some banding on this intro, so I don't think it's a great benchmark. However, when I was enabling/disabling dithering and going back with 8bit output, there was noticeably less banding in this intro, and no banding whatsoever in banding_test.mkv I was using (will reupload). I also recommend you set a 1080 GUI to use your displays upscaling on 1080 media. It will change to 2160 on 2160 media playback. The 2160 GUI is just poorly upscaled from 1080 anyway.
1080p24 SDR: Wasn't able to recreate after ~15 seconds, would need logs. Most of the stuff I've played back took around 15 seconds to "settle in" and playback smoothly. I'm not sure if these changes are affecting it either from kszaq's original dev build.
After:
Pe II: I'm assuming your GUI was set to 50hz? I have a workaround on it's way to go back to always setting the mode. Long term this could potentially go back in the kernel to do so on colorspace change only.
Passengers: Also can't recreate on what I'm assuming is this same rip. I suspect you're right. First, try a different one, and set that interface immediately on boot prior to any playback. If you still have issues and haven't played proper HDR through this cable previously, try a different one.
1080p24 SDR: same as "without"
Thank you all for testing. I noticed an issue if a video is played prior and "444,10bit" isn't set immediately on boot as well. So for those testing in the future, could you please test after a fresh boot so we're all on the same page?