ChanServ changed the topic of #zink to: official development channel for the mesa3d zink driver || https://docs.mesa3d.org/drivers/zink.html
Sid127 has joined #zink
<fdobridge> <g​fxstrand> How do I test this LIBGL_KOPPER_DRI2 path? There's some mention of RDP but I don't know what edge case is being tested.
<fdobridge> <g​fxstrand> I like that MR. I should review it
<fdobridge> <m​ohamexiety> 2 minutes too late there :KEKW:
<fdobridge> <g​fxstrand> Or we can just merge it. :shrug_anim:
<fdobridge> <z​mike.> run xrdp over zink or run zink on xorg without modesetting
<fdobridge> <g​fxstrand> Well, daniel just deleted the option, so...
<fdobridge> <g​fxstrand> No need to test it. 😂
<fdobridge> <k​arolherbst> RIP DRI2
<zmike> I guess I'll have to add it back
<zmike> that's what I get for not reviewing carefully enough
<zmike> though really it should have been a separate commit since it's unrelated to everything else in that MR
<fdobridge> <z​mike.> ah good it's failing CI anyway
<fdobridge> <g​fxstrand> Given that it's already beer o'clock for @fooishbar and he's about to go on vacation, I may just take that one over.
<fdobridge> <g​fxstrand> @fooishbar Are you okay with that? I don't wanna start force-pushing if you want to keep hacking on it.
<fdobridge> <f​ooishbar> no, go for it
<fdobridge> <g​fxstrand> 👍🏻
<fdobridge> <z​mike.> I'd be okay renaming that env var so long as there's a deprecation warning since it's currently being used in production
<fdobridge> <f​ooishbar> the X11/Kopper path is already completely unreviewable anyway, so just push whatever you want in there
<fdobridge> <!​DodoNVK (she) 🇱🇹> <https://www.youtube.com/watch?v=e-IWRmpefzE>
<fdobridge> <z​mike.> I disagree on that part, but maybe that just means I need to review changes
hikiko has quit [Read error: Connection reset by peer]
<fdobridge> <g​fxstrand> I think I can make something @zmike. will be okay with
<fdobridge> <g​fxstrand> First step is to update the documentation on `LIBGL_KOPPER_DRI2`.
<fdobridge> <g​fxstrand> @zmike. What should that actually say? Use kopper even if there aren't modifiers?
<fdobridge> <z​mike.> yeah
<fdobridge> <z​mike.> well
<fdobridge> <z​mike.> use kopper even without explicit dri3 modifiers on x11
<fdobridge> <z​mike.> is the functionality
<fdobridge> <z​mike.> the _DRI2 name was just copied from the main dri path
<fdobridge> <g​fxstrand> How about "Enable kopper even if X11 does not support explicit DRM format modifiers"?
<fdobridge> <z​mike.> 👍
<fdobridge> <g​fxstrand> Also, why is that not the default?!?
<fdobridge> <z​mike.> err
<fdobridge> <z​mike.> why would it be the default?
<fdobridge> <z​mike.> typically hitting this case is an error
<fdobridge> <g​fxstrand> Why are we disabling kopper when we don't see modifiers?
<fdobridge> <z​mike.> it's not disabling kopper
<fdobridge> <z​mike.> it's refusing to load zink
<fdobridge> <z​mike.> there's a difference
<fdobridge> <g​fxstrand> Right
<fdobridge> <z​mike.> KOPPER_DISABLE disables kopper
<fdobridge> <g​fxstrand> Okay, so it's really "Allow loading Zink, even if X11 does not support explicit DRM format modifiers"
<fdobridge> <z​mike.> yeah
<fdobridge> <z​mike.> though there isn't a comma there
<fdobridge> <g​fxstrand> Okay. Comment updated. Hunk fixed. Now to fix CI.
<fdobridge> <g​fxstrand> MR updated. Feel free to go look at the first two commits
<fdobridge> <z​mike.> I feel extremely free atm
<fdobridge> <z​mike.> thanks for noticing
<fdobridge> <z​mike.> @gfxstrand can you just split that out into a separate commit to make it obvious
<fdobridge> <g​fxstrand> Oh, I did split the doc update into a separate commit
<fdobridge> <z​mike.> I'm not seeing that on the MR
<fdobridge> <g​fxstrand> And I think restored behavior in the main "drop DRI2" commit
<fdobridge> <z​mike.> okay, so maybe tell me once you actually push to the MR
<fdobridge> <z​mike.> since you haven't done that yet
<fdobridge> <g​fxstrand> The MR isn't updating
<fdobridge> <g​fxstrand> Also, didn't fix hard enough
<fdobridge> <z​mike.> that much was already apparent :lul:
<fdobridge> <g​fxstrand> Okay, fixed harder. Also, gitlab seems to be updating with my changes now.
<fdobridge> <g​fxstrand> Also, now that I understand what that environment variable is supposed to do, I think I can do a better job of not breaking it. 🙂
<fdobridge> <g​fxstrand> Also, now that I understand what that environment variable is supposed to do, I think I can do a better job of not breaking it with my changes. 🙂 (edited)
<fdobridge> <g​fxstrand> Okay, `LIBGL_KOPPER_DRI2` seems to be conflating two things:
<fdobridge> <g​fxstrand> 1. Load Zink even if we don't have multibuffer
<fdobridge> <g​fxstrand> 2. Skip asking dri3 for the render node
<fdobridge> <g​fxstrand> I'm not sure why we need 2
<fdobridge> <z​mike.> where is #2 happening
<fdobridge> <z​mike.> ah right
<fdobridge> <z​mike.> because that will fail
<fdobridge> <g​fxstrand> Okay, that's fine. I just need to figure out how to plumb this through in a more obvious way that isn't smashing "software" for things that aren't software rendering
<fdobridge> <g​fxstrand> I think I need to spin myself up some RDP
<fdobridge> <g​fxstrand> Or I guess I could test on my box that has an AMD GPU
<fdobridge> <z​mike.> the thing I've been meaning to fix for a while is that the ForceSoftware stuff is no longer really valid
<fdobridge> <z​mike.> because lavapipe supports dri3
<fdobridge> <g​fxstrand> Yeah
<fdobridge> <z​mike.> so that's yet another wrinkle
<fdobridge> <g​fxstrand> I'm not trying to sort that one out today
<fdobridge> <z​mike.> yep
<fdobridge> <g​fxstrand> So I should be able to test this mess with RADV on amdgpu?
<fdobridge> <g​fxstrand> Let me give that a go.
<fdobridge> <g​fxstrand> Ugh... The DRI3 v3d doesn't like the DRI3 delete
<fdobridge> <g​fxstrand> Is vc4 still requiring DRI2?!? That can't be, can it?
<fdobridge> <g​fxstrand> It's XWayland so it can't be DRI2
<fdobridge> <g​fxstrand> I might have a pi5 here I can play with
<fdobridge> <g​fxstrand> Oh, I wonder if it's still using wl_drm
<fdobridge> <g​fxstrand> I bet it's that it's using Weston 10 from debian stale
<fdobridge> <z​mike.> lul debian stale
<fdobridge> <g​fxstrand> Somehow this "little fix" has degraded from EGL to kopper enabling shenanigans to EGL DRI2 to hacking on CI containers. What happened to me?!?
<Sachiel> what do you mean? Sounds like the exact same you as usual
<fdobridge> <g​fxstrand> I thought I'd left EGL behind 10 years ago.
<fdobridge> <m​henning> the yaks need shaving
<fdobridge> <z​mike.> standard https://www.youtube.com/watch?v=5W4NFcamRhM (edited)
<fdobridge> <g​fxstrand> Pretty much...
<fdobridge> <f​ooishbar> it uses weston 10.0.1, but weston 10.0.1 does implement zwp_linux_dmabuf_v1 v4
<fdobridge> <g​fxstrand> I believe you. But something is falling over without wl_drm in CI and I can't reproduce it locally so I'm trimming the delta.
<fdobridge> <f​ooishbar> what I'd be looking at is whether v4 is getting advertised by weston or if it's only v3. if it's only v3, then that means weston hasn't been able to discover the drm render node for its device, and that's likely because the egl query for the render node failed.
<fdobridge> <g​fxstrand> I'm getting dmabuf v4 locally, even with Weston 10.0
<fdobridge> <g​fxstrand> Not sure what I'm getting in CI
<fdobridge> <g​fxstrand> I'm adding some more logging (hopefully)
<fdobridge> <g​fxstrand> I bet we need `LIBGL_KOPPER_DRI2=true` for nvidia prop, too, don't we?
<fdobridge> <z​mike.> that's another case, yes
DodoGTA has quit [Read error: Connection reset by peer]
DodoGTA has joined #zink
<fdobridge> <g​fxstrand> `20:25:29.182: interface: 'zwp_linux_dmabuf_v1', version: 4, name: 11`
<fdobridge> <O​wo> just reading on the discussion: what's going on here?
<fdobridge> <O​wo> why does zink/kopper care about dri2, or multibuffer, or whatever, if it's all on Vulkan?
<fdobridge> <O​wo> especially if nvidia prop has the Vulkan version & extensions needed
<fdobridge> <g​fxstrand> DRI2 is a bad name
<fdobridge> <g​fxstrand> It has nothing to do with DRI2
<fdobridge> <g​fxstrand> It means "Skip all the checks and use Zink anyway"
<fdobridge> <O​wo> I see
<fdobridge> <O​wo> so it might get into broken territory?
<fdobridge> <O​wo> but still, what checks does it run? What would cause issues?
<fdobridge> <O​wo> why is it needed on nvidia-prop?
<fdobridge> <g​fxstrand> NVIDIA doesn't do DRI3 at all
<fdobridge> <k​arolherbst> ~~not yet~~
<fdobridge> <g​fxstrand> Okay, I think I've detangled this mess.
<fdobridge> <g​fxstrand> Still need to sort out the GLX issues Daniel's patches, though.
<fdobridge> <g​fxstrand> Maybe it's XWayland?
<fdobridge> <g​fxstrand> Or it could be something GLX-specific. EGL seems okay
<fdobridge> <O​wo> how does that affect zink?
<fdobridge> <g​fxstrand> We do a bunch of checks when LIBGL_KOPPER_DRI2=false to make sure we don't load zink like it's a real driver or as a fallback if it would cause the X server or something else to blow up. This basically means DRI3+modifiers. NVIDIA fails those checks, as does AMDGPU and the RDP case.
<fdobridge> <m​henning> does that mean that nvk+zink is broken with rdp by default
<fdobridge> <m​henning> or is rdp sw-only or something?
<fdobridge> <g​fxstrand> RDP is SW, I think. I'm not actually sure.
<fdobridge> <g​fxstrand> But Zink+NVK is kinda broken. I'll hopefully get the branch pushed tomorrow.
<fdobridge> <g​fxstrand> But Zink+NVK is kinda broken all over. I'll hopefully get the branch pushed tomorrow. (edited)
<fdobridge> <z​mike.> xrdp is its own thing
<fdobridge> <z​mike.> do not use rdp to conflate that case
<fdobridge> <g​fxstrand> I really wish I knew what was going on in CI. I may have to run one of the containers on my laptop somehow.
<fdobridge> <g​fxstrand> (Doing two things at the same time today)