ChanServ changed the topic of #dri-devel to: <ajax> nothing involved with X should ever be unable to find a bar
i-garrison has quit []
Surkow|laptop has quit [Remote host closed the connection]
Surkow|laptop has joined #dri-devel
<alyssa> re DCP swapping stuff -- I was mistake, there's no need to do an explicit swap very frame in cases where there's no double buffer
<alyssa> => the DCP swap call is a direct match for crtc_update
<alyssa> which should make the driver design obvious
<alyssa> figuring out to version things and marshal things effectively remains an open question, of course.
<alyssa> I wonder if compiling source files multiple times would be allowed?
<alyssa> (another one of our dirty tricks in mesa0
<alyssa> that one doesn't involve any external dependencies, just a few extra makefile rules
<alyssa> (maybe i915 or amd does that already?)
columbarius has joined #dri-devel
co1umbarius has quit [Ping timeout: 480 seconds]
<daniels> alyssa: is there a dirty-area call to updating the fb addr then, or?
<alyssa> daniels: no dirty area call needed -- even if no swap is issued the display will still refresh itself (and if the framebuffer is updated itll be respecred)
<alyssa> respected
<daniels> alyssa: maybe on the Mini, but I would expect the MacBook to have PSR
<alyssa> noteODd
<alyssa> marcan: worth checking if dcp.py Just Works on the macbooks
<alyssa> (and if updates to the fb without a swap immediately propagate)
Lucretia has quit []
boistordu has joined #dri-devel
boistordu_ex has quit [Ping timeout: 480 seconds]
sdutt has joined #dri-devel
<alyssa> the more kernel C i write the more i want to RiIR
<alyssa> (less so for Mesa C, probably because Mesa C abuses the language so much)
Danct12 has quit [Quit: Quitting]
<marcan> daniels: the bootloader framebuffer updates continuously on all machines, so if that's a thing it's probably optional
<marcan> but i'm going to be testing usb stuff on the Air soon anyway, so good chance to see if DCP defaults to PSR or not
slattann has joined #dri-devel
<Venemo> mareko: thx
Lyude has quit [Quit: WeeChat 3.2]
Lyude has joined #dri-devel
danvet has joined #dri-devel
Duke`` has joined #dri-devel
sdutt has quit [Ping timeout: 480 seconds]
alanc has quit [Remote host closed the connection]
alanc has joined #dri-devel
i-garrison has joined #dri-devel
slattann has quit []
Danct12 has joined #dri-devel
agx has quit [Read error: Connection reset by peer]
agx has joined #dri-devel
dviola has joined #dri-devel
rasterman has joined #dri-devel
gouchi has joined #dri-devel
camus1 has joined #dri-devel
camus has quit [Remote host closed the connection]
i-garrison has quit []
mlankhorst has joined #dri-devel
dreda has joined #dri-devel
rcf has quit [Quit: WeeChat 3.1]
Lucretia has joined #dri-devel
YuGiOhJCJ has joined #dri-devel
YuGiOhJCJ has quit [Quit: YuGiOhJCJ]
pcercuei has joined #dri-devel
gouchi has quit [Remote host closed the connection]
gouchi has joined #dri-devel
gouchi has quit [Remote host closed the connection]
Net147_ has quit [Remote host closed the connection]
Net147 has joined #dri-devel
luckyxxl has joined #dri-devel
Net147_ has joined #dri-devel
Net147 has quit [Remote host closed the connection]
Net147 has joined #dri-devel
Net147_ has quit [Read error: Connection reset by peer]
i-garrison has joined #dri-devel
mlankhorst has quit [Ping timeout: 480 seconds]
xexaxo_ has joined #dri-devel
xexaxo_ has quit [Ping timeout: 480 seconds]
mlankhorst has joined #dri-devel
gouchi has joined #dri-devel
lemonzest has joined #dri-devel
heat has joined #dri-devel
heat has quit [Remote host closed the connection]
CME has quit [Ping timeout: 480 seconds]
gouchi has quit [Remote host closed the connection]
luckyxxl has quit []
gouchi has joined #dri-devel
gouchi has quit [Quit: Quitte]
JohnnyonFlame has quit [Ping timeout: 480 seconds]
Lucretia has quit []
Lucretia has joined #dri-devel
<alyssa> emersion: Looking at libliftoff, I'm wondering if there's a way to model "composite the cursor with the primary on the GPU, but use a dedicated overlay plane for video output"
<alyssa> For funny hardware that only has 2 planes, a primary and a cursor/overlay
<alyssa> (and if you need the overlay for colourspace conversion, it's cheaper to fuse the cursor in with the primary and free up the overlay plane for that)
<daniels> but how do you get your cursor above the video … ?
<alyssa> ...ugh
<alyssa> this is the problem with retrofitting a cellphone display controller for a desktop
<HdkR> Who needs a cursor above video?
CME has joined #dri-devel
<alyssa> GNOME probably
<alyssa> Maybe weston
<bnieuwenhuizen> alyssa: how about showing the video on the primary as "underlay" and then having the cursor+rest on the overlay?
<urja> yeah put the video layer under the primary
<urja> I've done that somewhere once upon a time ...
<urja> (and use alpha to show the video where appropriate)
JohnnyonFlame has joined #dri-devel
<alyssa> bnieuwenhuizen: pfheh
<alyssa> or that
mlankhorst has quit [Ping timeout: 480 seconds]
sagar_ has quit [Ping timeout: 480 seconds]
sdutt has joined #dri-devel
sdutt has quit []
sdutt has joined #dri-devel
JohnnyonFlame has quit [Ping timeout: 480 seconds]
lemonzest has quit [Quit: Quitting]
<emersion> alyssa: i think it *should* work… but not sure the priority will make it work correctly atm
<emersion> my plan for priority is "put whatever gets updated more frequently in a plane"
<alyssa> emersion: fair enough
camus1 has quit []
CME_ has joined #dri-devel
CME has quit [Ping timeout: 480 seconds]
CME has joined #dri-devel
CME_ has quit [Remote host closed the connection]
CME_ has joined #dri-devel
CME has quit []
* alyssa tries to figure out how to handoff the simple framebuffer mapping cleanly
Duke`` has quit [Ping timeout: 480 seconds]
<ccr> use a lot of soap/sanitizer?
* ccr shudders .. SOAP ..
<ccr> funny how that pun works on multiple levels
<alyssa> right, so the issue is that the simple framebuffer is behind the same IOMMU as the real framebuffer
<alyssa> so just describing the IOMMU breaks the simple framebuffer and triggers IOMMU faults
<alyssa> since when the IOMMU driver probes, it zeroes the bootloader's page tables, and then the simple-framebuffer is now invalid from the device's perspective
<alyssa> (So then driver probing races the beam. If we lose the race, faults.)
<ccr> :|
<alyssa> So we need some way to take over bootloader mappings for the display IOMMU
<ccr> "what would Apple do"
<alyssa> uhmmm that's a good question
<alyssa> this series is relevant
<alyssa> It doesn't solve the problem at all on the M1, however:
<alyssa> Apple IOVAs are 32-bit but the physical addresses are 64-bit
<alyssa> (At least, the display IOVAs are 32-bit)
<robclark> alyssa: we had same issue on qcom w/ efifb.. arm smmu (possibly tied to some qcom-arm-smmu quirks, I don't have it in front of me) does something to detect that scanout is active and avoids killing the context bank setup.. after that we just rely on shutting thigns down cleanly and bringing things back up w/ our own framebuffer
<robclark> but short version, try to shut down scanout from fw fb, and then bring it back up with your own fb and iommu mapping
<alyssa> that won't be flicker-free...
<robclark> Bjorn A (bamse) was the one who did the arm-smmu patches so you know what to look for in history
<robclark> alyssa: walk first.. then figure out how to run
<robclark> ie. flicker-free isn't the place to start
<alyssa> (I also don't have any idea how to shut down the scanout, so that was my cop-out 😋)
<robclark> so you probably have it *slightly* easier in that coproc is still running, and if it is the one controlling clks there is some continuity from bootloader fb.. vs trying to reverse-engineer at boot time the state of the clk hiearchy
<alyssa> nod
<robclark> but I'd really recommend shut-er-down-and-start-clean as the first step
<alyssa> alright .... not sure how to go about r/e'ing that in this case but i digress
<alyssa> i guess twiddling random bits until something stops the faults 😅
<robclark> got some way to trace dpms-off?
<robclark> alyssa: fwiw, 07a7f2caaa5a2619934491bab3c47b261c554fb0 is the arm-smmu bit to read-back stream mappings.. and keep things in bypass mode until display driver attaches it's own iommu_domain.. (otoh maybe with dma-api stuff you don't get much control about where the iommu_domain is attached)
<alyssa> thanks
sravn has joined #dri-devel
<robclark> I think current state is probably that we still get some iommu faults briefly as drm/msm goes thru multiple rounds of -EPROBE_DEFER, but at least that avoids insta-reboot
vivijim has joined #dri-devel
<alyssa> nod
<alyssa> added a 3 line hack to our IOMM driver which should let me -EPROBE_DEFER on this question altogether 😉
vivijim has quit [Ping timeout: 480 seconds]
<alyssa> Oh, delightful. Sending two swaps without waiting for the first swap complete IRQ crashes the copro. Isn't that "fun"?
<HdkR> Going too fast :D
<ccr> :S
<HdkR> Guess that means they really don't support VRR
danvet has quit [Ping timeout: 480 seconds]
<alyssa> not sure if there's a good way to express that to KMS, or if I should just do a swap queue internally
<alyssa> oh, maybe KMS does all this Automatically™ and I just need to not stub out my callbacks
<robclark> alyssa: a non-blocking atomic commit sent before previous one completes will return -EBUSY to userspace
ngcortes has joined #dri-devel
<alyssa> 👍
xlei has quit [Remote host closed the connection]
xlei has joined #dri-devel
ngcortes has quit [Read error: Connection reset by peer]
pcercuei has quit [Quit: dodo]
JohnnyonFlame has joined #dri-devel
rasterman has quit [Quit: Gettin' stinky!]
Thymo has quit [Ping timeout: 480 seconds]
Thymo has joined #dri-devel
tarceri has quit [Remote host closed the connection]
nsneck has quit [Remote host closed the connection]
tarceri has joined #dri-devel
tarceri has quit [Remote host closed the connection]
tarceri has joined #dri-devel
<jenatali> jekstrand: Kayden: I had set up an Intel CI branch a long time ago but never used it, and then this weekend it started building/failing over and over again... I don't remember who/how it was set up but I don't think I need it atm
<kisak> maybe you can get away with pushing a point release to the branch and see if the CI is happy with that? If it is, then that keeps it available if you need their CI later.
<jenatali> kisak: Good idea :)
tarceri_ has joined #dri-devel
<alyssa> I guess I need to translate the callbacks into vblanks
tarceri has quit [Ping timeout: 480 seconds]
tarceri_ has quit [Remote host closed the connection]
tarceri_ has joined #dri-devel
tarceri_ has quit [Remote host closed the connection]
tarceri_ has joined #dri-devel
tarceri__ has joined #dri-devel