simon-perretta-img has quit [Ping timeout: 480 seconds]
simon-perretta-img has joined #panfrost
rasterman has joined #panfrost
chewitt has joined #panfrost
chewitt has quit [Ping timeout: 480 seconds]
warpme has joined #panfrost
CME has quit [Ping timeout: 480 seconds]
warpme has quit []
chewitt has joined #panfrost
warpme has joined #panfrost
warpme has quit []
warpme has joined #panfrost
chewitt has quit [Ping timeout: 480 seconds]
warpme has quit []
warpme has joined #panfrost
chewitt has joined #panfrost
chewitt has quit [Ping timeout: 480 seconds]
warpme has quit []
CME has joined #panfrost
Googulator has quit [Read error: Connection reset by peer]
Googulator has joined #panfrost
warpme has joined #panfrost
hanetzer1 has joined #panfrost
CME_ has joined #panfrost
hanetzer has quit [Ping timeout: 480 seconds]
chewitt has joined #panfrost
CME has quit [Ping timeout: 480 seconds]
pH5 has quit [Read error: Network is unreachable]
pH5 has joined #panfrost
pH5 has quit [Read error: Connection reset by peer]
pH5 has joined #panfrost
warpme has quit []
warpme has joined #panfrost
simon-perretta-img has quit [Ping timeout: 480 seconds]
simon-perretta-img has joined #panfrost
Leopold___ has joined #panfrost
simon-perretta-img has quit [Ping timeout: 480 seconds]
simon-perretta-img has joined #panfrost
Leopold____ has joined #panfrost
Leopold_ has quit [Ping timeout: 480 seconds]
Leopold___ has quit [Ping timeout: 480 seconds]
warpme has quit []
thaytan has quit [Ping timeout: 480 seconds]
thaytan has joined #panfrost
<rasterman>
bbrezillon: hey hey there you are :)
<rasterman>
bbrezillon: try disable weston's egl image cache ... it seems it has one. efl doesn't thus it eglcreate+destroy image per window per frame rendered and eventually map of buffer fails - va space exhausted due to repeated map+unmaps (you'd eventually hit this problem with enough surfaces updating a lot) but enlightenment hits it reliably running anything that updates like glmark etc.
<bbrezillon>
rasterman: hehe, exactly what daniels suggested :-)
<rasterman>
i was just talking to him :)
<rasterman>
so yeah
<rasterman>
anyway - was just something i hit yesterday
<rasterman>
and was "wtf....?"
<rasterman>
first i checked all my own code for leaks everywhere i could find
<rasterman>
didnt find anything... my code is of course perfect without any bugs at all! it couldnt possibly have a leak!!!!
<rasterman>
</sarcasm>
<rasterman>
but ... i didn't find any leak involving gbm/dmabufs/eglimages etc. ... so i dug into mesa and instrumented the panthor buffer map/unmaps
<rasterman>
and it also didnt appear to leak - it was mapping and unmapping the same thing consistently
<rasterman>
i then noticed weston stopped after a few hundred or whatever map/unmaps
<rasterman>
it stopped doing this
<rasterman>
and i was "ooooh so thats why it doesnt see the problem!"
<rasterman>
i suspected a cache in weston somewhere - didnt get to check but i was pretty sure the map failing at this point was something kernel-driver side as mesa was behaving right and everything above it too
<bbrezillon>
if you end up with the same amount of map/unmap a given BO at the kernel level, that probably means the problem is in mesa (src/panfrost/lib/kmod/panthor_kmod.c)
<bbrezillon>
*for a given BO
<bbrezillon>
can instrument calls to util_vma_heap_{alloc,free}() in there?
<rasterman>
ummm
<rasterman>
well the map/unmap directly relate to create+destory egl image
<rasterman>
and thats being driven by either weston or evas - evas just always create+destroys per window surface its compositing every frame - religiously.
<rasterman>
and panthor_kmod_vm_bind() is where i see the issue
<rasterman>
PAN_KMOD_VM_OP_TYPE_MAP and PAN_KMOD_VM_OP_TYPE_UNMAP
<bbrezillon>
ah, so map/unmap calls are unbalanced at the kernel level?
<rasterman>
i printf;'d both and i see the same thing being mapped and unmapped all the time
<rasterman>
at the mesa level they are balanced
<bbrezillon>
map is always synchronous, and unmap asynchronous
<bbrezillon>
and we collect free-VAs in the VA alloc path
<rasterman>
well the requests are always there....
<rasterman>
and yeah i saw the collect code
<rasterman>
collect has nothnig to collect...
<bbrezillon>
is the list empty, or does it contain elements whose attached fence is never signaled?
<rasterman>
empty
<rasterman>
panthor_kmod_vm_collect_async_unmaps() - i dumped that too
<rasterman>
it is called - but nothing ever iterated in the list
<bbrezillon>
and where does the VA allocation fails?
<bbrezillon>
in mesa, or in the kernel, at VM_BIND(op=map) type?
<rasterman>
that was my fix right now... but it wasn't nice...
<bbrezillon>
I still need to fix the sync unmap path though
<rasterman>
yeah
<bbrezillon>
well, I fixed it
<rasterman>
good to note that :)
<rasterman>
or well fix it :)
<bbrezillon>
I also have a bunch of tiny fixes in the pipe
<rasterman>
this is the problem with so much "WIP"
<rasterman>
not to mentioon spread across different branches and across kernel and mesa...
<rasterman>
why dont we just put all of kernel and mesa in one git tree and we all work in master! :) :P :)
<bbrezillon>
well, too much WIP comes from working on so many different things at the same time
<bbrezillon>
and all that directly comes from the fact we're mostly out-of-tree at the moment
<rasterman>
and yeah... that doesn;'t help
<bbrezillon>
but you can just pretend all those WIP branches don't exist, and refer to panfrost-v10, as I mentioned in my cover-letter and MR description :P
<rasterman>
:)
<bbrezillon>
jedi hand wave => this is not the branch you're looking for
<rasterman>
i was busy beating my head on why enlightenment didnt display on my rock5...
<rasterman>
so i ignored mesa for a bit
<rasterman>
fouind out why and fixed it yesterday - thus stumbled into this issues
<rasterman>
but yeah - slightly out of date trees was my issue now
<rasterman>
oh damn... THAT was enlightenment's performance problem...
Leopold_ has quit [Remote host closed the connection]
<bbrezillon>
???
<rasterman>
evas had dithering enabled
<rasterman>
there is a "high quality dithering" shader that takes intermediate fragment shader results and uses a dither matrix to get apparent > 24bpp
<rasterman>
(visually it gets a lot better for smooth gradients, fades etc.) because the gpu frag shader will have intermediate results in regs that are more than 8bit per channel
<rasterman>
so dither it back out to backbuffer...
<rasterman>
but that doesn't come for free
<rasterman>
turn it off and it'll be equivalent to weston then
Leopold has joined #panfrost
larunbe has joined #panfrost
alarumbe has quit [Ping timeout: 480 seconds]
Leopold has quit [Remote host closed the connection]
Leopold has joined #panfrost
Googulator has quit [Read error: Connection reset by peer]
Googulator has joined #panfrost
chewitt has quit [Quit: Zzz..]
rasterman has quit [Quit: Gettin' stinky!]
pbrobinson has quit [Ping timeout: 480 seconds]
pbrobinson has joined #panfrost
simon-perretta-img has quit [Read error: Connection reset by peer]
simon-perretta-img has joined #panfrost
paulk has quit [Ping timeout: 480 seconds]
paulk has joined #panfrost
simon-perretta-img has quit [Ping timeout: 480 seconds]
simon-perretta-img has joined #panfrost
Googulator has quit [Ping timeout: 480 seconds]
Googulator has joined #panfrost
Googulator has quit [Read error: Connection reset by peer]
Googulator has joined #panfrost
Googulator has quit [Read error: Connection reset by peer]