On Wed, Mar 30, 2022 at 10:41:56AM +0200, piotro.oniszczuk@google.com wrote:
Wiadomość napisana przez Sascha Hauer s.hauer@pengutronix.de w dniu 30.03.2022, o godz. 09:28:
You can easily reproduce with modetest utility:
modetest -P 43@67:1920x1080@NV12
This only sets the overlay, but how did you get something on the screen initially?
Let me rephrase this: The above sets a plane, but it doesn't set a mode on the crtc. When my system boots up then the output of modetest looks like this:
Encoders: id crtc type possible crtcs possible clones 68 0 TMDS 0x00000001 0x00000001 Connectors: id encoder status name size (mm) modes encoders 69 0 connected HDMI-A-1 530x300 9 68 CRTCs: id fb pos size 67 0 (0,0) (0x0) #0 nan 0 0 0 0 0 0 0 0 0 flags: ; type:
No mode is set on the CRTC and the encoder/connector/crtc are not bound to each other, consequently the screen is in standby. "modetest -P 43@67:1920x1080@NV12" doesn't change this, still no mode set. Hence my question: How did you set a mode initially?
I'm not sure that above command only sets plane. On other SoCs i’m testing it gives expected results: diagonal colored stripes. There is single exception: rk356x with vop2 - where screen is green unless i „fix/enable” by playing with plane #69
I did with "modetest -s 69@67:1920x1080 -d" and with this it works as expected, I can't reproduce any green screen issue here.
I see you are using plane #69. Why not #43?
I used "modetest -s 69@67:1920x1080 -d" to set a mode. The '69' is the connector id, not a plane.
Is plane #43 working ok for you?
Yes.
I’m using plane #43 because: application (player) - at start - queries all planes and selects first plane offering format being within offered formats by provider (video decoder; NV12 from rk356x hantro video decoder).
pls look on app log regarding planes discovery and election: https://pastebin.com/edAhbcvU
Now - looking what VOP2 reports: https://pastebin.com/8ujkaV9n is see first plane accepting NV12 is #43 - so my app is electing this plane to use for displaying video.
This strategy works well for all 13 platforms i’m supporting (only 13 i have in my testbed).
If this approach is - by Yours VOP2 patches goal - is not supported - then OK. I understand this :-)
But - if You want to support DRM features in the same way like other SOC are doing (and working well with KODI/MythTV/mpv/etc) - then i think:
1\ DRM plane #43 not supports NV12 - but code wrongly reports NV12 format is supported, or 2\ DRM plane #43 is supported - but code has bug resulting with green screen.
plane #43 should support NV12 and it seems to work fine here.
I believe you that there's a problem, but I can't reproduce it here and I might need further assistence to reproduce it.
Sascha