stikonas has quit [Remote host closed the connection]
stikonas has joined #panfrost
_whitelogger has joined #panfrost
_whitelogger has joined #panfrost
stikonas has quit [Remote host closed the connection]
camus1 has joined #panfrost
kaspter has quit [Ping timeout: 264 seconds]
camus1 is now known as kaspter
vstehle has quit [Ping timeout: 240 seconds]
davidlt has joined #panfrost
mixfix41 has joined #panfrost
icecream95 has joined #panfrost
_whitelogger has joined #panfrost
vstehle has joined #panfrost
buzzmarshall has quit [Remote host closed the connection]
nlhowell has quit [Ping timeout: 256 seconds]
yann has joined #panfrost
raster has joined #panfrost
guillaume_g has joined #panfrost
nlhowell has joined #panfrost
tomboy64 has quit [Ping timeout: 240 seconds]
stikonas has joined #panfrost
tomboy64 has joined #panfrost
_whitelogger has joined #panfrost
<raster>
daniels: btw... it seems the odroid go is abothr device with nasty EBUSY's on drmModeAtomicCommit()
<raster>
we end up with retry loops which isnt nice... shouldnt this just not happen unless there is an actual error like disconnected/off display or something?
kaspter has quit [Ping timeout: 260 seconds]
kaspter has joined #panfrost
<daniels>
I've never seen that on Rockchip and we've used that in a _lot_ of places ... usually EBUSY is 'too soon, you tried to touch this CRTC before the last one completed'
<raster>
it doesn't just queue it?
<raster>
or well.. shouldn't it?
<daniels>
nope - if you do a drmModePageFlip, you have to wait until you get the completion event before you can do another - same with drmModeAtomicCommit, if you do one then you have to wait until you get the event back for that CRTC (it can deliver for multiple CRTCs) before you try to repaint again on that CRTC
<raster>
hmmm
<raster>
i'll poke in on that
<daniels>
adding a queue rapidly devolves into how deep should the FIFO be, when should they be presented, how do you cancel, etc ...
<raster>
damn this lcd panel barfing is annoying
<raster>
hmm
<raster>
odd
<raster>
thats is what we do
<raster>
if (edata->ticking && !ecore_drm2_output_pending_get(edata->output))
<raster>
ecore_drm2_fb_flip(NULL, edata->output);
<raster>
the pending get tells us if we have a pending flip with no completion yet
<raster>
unless we messed tracking of that up..
<raster>
we set up drmEventContext's page_flip_handler that's used to handle the completion...
icecream95 has quit [Ping timeout: 265 seconds]
<raster>
aaaah it's one of our flip timeouts
<raster>
that forces us to retry a flip after we timed out from a prior flip for 50ms.
nlhowell has quit [Ping timeout: 256 seconds]
<raster>
yup. our timeout is too agressive...
<raster>
i'm pretty sure i put that in to work around other problems like i think it was on intel where a flip would never complete ....
rak-zero has quit [Remote host closed the connection]
<daniels>
heh, right
<raster>
i guess glmark workload was somehow causing a stall that put us over the edge...
<raster>
but i do know we got this deadlock onintel where sometimes it'djust stop rendering... like mainloop was fine
<raster>
just nada . no new frames. i tracked it dow to submitting an atomic flip but never gettting a completion, so i added a timeout - decided 50ms was "good enough" and added a retry that somehow unstuck things ...
<raster>
but now thats proving a problem elsewhere... grrrr
<raster>
well glmark happily runs until it segfaults without some nasty atomic flip complaints now
<raster>
i think my quick and dirty change to 2 seconds of timeout does the trick :)
rak-zero has joined #panfrost
rak-zero has quit [Remote host closed the connection]
davidlt has quit [Ping timeout: 258 seconds]
rak-zero has joined #panfrost
yann has quit [Ping timeout: 258 seconds]
yann has joined #panfrost
Ke has quit [Quit: killed]
clementp[m] has quit [Quit: killed]
nhp[m] has quit [Quit: killed]
Ke has joined #panfrost
<daniels>
nice!
clementp[m] has joined #panfrost
nhp[m] has joined #panfrost
buzzmarshall has joined #panfrost
robmur01 has quit [Ping timeout: 264 seconds]
<raster>
daniels: did you ever encoutner intl devices that do this? (flip but no complete) ?
robmur01 has joined #panfrost
rak-zero has quit [Remote host closed the connection]
rak-zero has joined #panfrost
raster has quit [Remote host closed the connection]
raster has joined #panfrost
raster has quit [Remote host closed the connection]
raster has joined #panfrost
stikonas has quit [Remote host closed the connection]
stikonas has joined #panfrost
yann has quit [Read error: Connection reset by peer]
yann has joined #panfrost
rak-zero has quit [Remote host closed the connection]
rak-zero has joined #panfrost
kaspter has quit [Quit: kaspter]
guillaume_g has quit [Quit: Konversation terminated!]
<daniels>
raster: err nope ... well apart from gma500 but that's not exactly intel :P
<daniels>
we did add a watchdog which just aborts hard if we don't get a flip completion event within 5sec, but I've never got a bug report about that being triggered apart from on very weird downstream vendor hacked BSPs or under savage system load
<macc24>
is gles3 enabled by defauly in mesa 20.2?
davidlt has joined #panfrost
<raster>
daniels: oh gma500...
<raster>
stop swearing! :)
<raster>
:)
<raster>
daniels: hmm well i k now i added the workaround because of this. dialled it back now and no more flip ebusy complaints
<raster>
i've set it at 1second but mainloop keeps running/working