jackhill has quit [Remote host closed the connection]
hertz has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
cylm_ has joined #asahi-gpu
possiblemeatball has quit [Quit: Leaving]
karolherbst_ is now known as karolherbst
SSJ_GZ has joined #asahi-gpu
amarioguy has joined #asahi-gpu
amarioguy2 has quit [Ping timeout: 480 seconds]
bluetail1 has joined #asahi-gpu
bluetail has quit [Ping timeout: 480 seconds]
bluetail1 is now known as bluetail
hertz has joined #asahi-gpu
<marcan>
alyssa, lina: BTW, does asahi handle multiplanar formats yet? DCP supports a bunch of those (and we're going to need them for some use cases), and Apple use multiplanar RGB10+A8 by default for UI stuff (compressed) so I assume it's supported by the hardware somehow (or is that just effectively "lol MRT"?)
<marcan>
in particular kwin seems to prefer alpha formats over alphaless, but right now we only *actually* support X2R10G10B10 as a 10-bit format (we claim A2 also but it's a lie). so right now kwin picks the A2 format even though it has no real alpha. we should offer it a proper 2-plane 10-bit alpha format as the best choice.
<jannau>
did you test "w40a" 40-bit single plane ARGB10? I think I saw that as supported as well but it was missing from dcp_surfaces.txt
karolherbst_ has joined #asahi-gpu
karolherbst has quit [Ping timeout: 480 seconds]
karolherbst_ is now known as karolherbst
<jannau>
w40a works for dcp but is despite its name 64 bit per pixel
<dottedmag>
Is it 10-bit with 6-bit unused per channel?
<dottedmag>
Also Wayland implicitly implies that all the buffers are single-planar in wl_shm constructor. Nobody uses this constructor for anything useful, but well.
<jannau>
yes, 6 bit padding per component. I guess handling 40 bit per pixels is annoying on HW side as well. the kwin code in question uses zlinux_dmabuf
possiblemeatball has joined #asahi-gpu
<dottedmag>
dmabuf _seems_ not to hardcode assumptions: width/height/format plus a number of weird flags (y invert, interlaced, bottom-first-interlaced), so it might work with multiplanar if they are advertised.
<jannau>
multi-planar YUV works with dmabuf without issues
amarioguy has quit [Remote host closed the connection]
amarioguy has joined #asahi-gpu
bcrumb has joined #asahi-gpu
bcrumb has quit []
<daniels>
single-planar also works fine with wl_shm, you just don’t get to choose your chroma offset or stride
<marcan>
jannau: w40a is in there (#4), and I would expect it works but it's such a massive waste of memory bandwidth... not a good idea for the main framebuffer
<marcan>
bi-planar formats are much nicer because the alpha is going to be all 0xff 99% of the time, which should compress down to ~nothing with framebuffer compression
<marcan>
so in practice w40a is going to be close to ~2x the memory bandwidth of w18p or b3a8
<eric_engestrom>
lina: any chance that "apple logo" at boot is its own hardware plane and it's missing a clear in your driver's init?
<eric_engestrom>
I'm getting leftover text from the linux console in the shape of an apple in the middle of my screen, and it's above everything else (including the cursor), but it's like it's rendered with a single value used for all channels (only grey, and the opacity seems to match the luminosity, black being fully transparent), so I'm guessing it might have been missed because if there's no text that happens to be right there, it will
<eric_engestrom>
appear fully transparent
<eric_engestrom>
also, just tried to take a screenshot: the cursor is included, the apple logo isn't (not sure what info that really adds though)
<marcan>
that's fixed in the 6.2-rc2 rebase I just pushed
<eric_engestrom>
(using grim for the screenshot)
<eric_engestrom>
marcan: are you replying to me? awesome :)
<jannau>
eric_engestrom: fixed in 9e3157ab6af08531191f25709dc3494eb2c65f0a
<eric_engestrom>
thanks both :)
<marcan>
and yes, that happened when we switched to plane 1 because plane 0 seems to be special on t600x, combined with the lack of alphaless formats (which we were unknowingly cheating by marking them as premultiplied)
<jannau>
screenshot will not work since it's blended in the display controller
<marcan>
the apple shape is the original iBoot alpha, which interestingly does not actually apply on boot because DCP does some optimization where fullscreen single planes end up ignoring alpha anyway
<marcan>
which is why the iBoot framebuffer works as intended, but then the apple comes back later when we enable another plane
<marcan>
it's all pretty cursed
<eric_engestrom>
yup, just read the commit message and that's exactly what I'm experiencing :)
<marcan>
I'm still quite annoyed that there isn't a "turn off alpha" bit anywhere as far as I can tell, and no XRGB8888 support at all
<marcan>
we can cheat that with premultiplication for the bottommost planes, but not any overlay planes
<marcan>
*bottommost plane
<marcan>
(also obviously the hardware supports it, it's just DCP firmware that doesn't because I guess Apple never needed it for macOS?)
<marcan>
jannau: btw, now that I noticed, I think there's one missing thing still. when layers are removed, they should have their bits set in swap_enabled
<marcan>
it's not really "enabled", more like "update/request"
<marcan>
AIUI if a bit is set there and the surface is NULL, the plane is removed
<marcan>
not that it really matters right now since we only support a single plane anyway...
<jannau>
marcan: I think it is there, each plane's update bit gets set if the plane was changed, see the for_each_oldnew_plane_in_state() loop in dcp_flush
hightower2 has joined #asahi-gpu
<marcan>
jannau: you're right, sorry... misread the patch
<marcan>
I should get some sleep :p
<jannau>
np, I think without it dcp/disp0 would crash instantly crash on fb unmap