<Marex>
anarsoul: that's basically the dmabuf import, isn't it ?
<anarsoul>
you can also check kmscube if you want example
<anarsoul>
yeah, pretty much
<Marex>
which baiscally boils down to "fix gstreamer"
<anarsoul>
or mpv
<anarsoul>
:)
<anarsoul>
Marex: you can also add some heuristics to lima, i.e. if there were more than 10 full updates of the texture switch it to linear
<anarsoul>
there was an MR to do that in panfrost
<anarsoul>
that would eliminate p.2 but you still will be wasting memory bandwidth for extra copy
<Marex>
better fix the root cause
<Marex>
but looking at gstreamer, glupload already can do DirectDmabuf upload, which is this
<Marex>
except I would need to get the dmabuf somewhere
<Marex>
and since I'm only getting gstreamer buffer, hum, I would need to have some element to allocate me a dmabuf first
<anarsoul>
yeah, I'm not sure how exactly video decoders work, but keep in mind that dmabuf is usually write-combined
<anarsoul>
so if it does a lot of random accesses it may be beneficial to do a copy
<Marex>
anarsoul: my decoder is software-based
<Marex>
anarsoul: not all zynqmps have hw video decoding
<Marex>
anarsoul: in fact, I think you can pick either hw video decoding OR GPU , not both :-)
<anarsoul>
Marex: yeah, I'm talking about sw decoders
<Marex>
ah, that
<Marex>
anarsoul: oh look, gstreamer supports undocumented texture-target=external-oes capsfilter ... it just doesn't work, but that seems like the way to go here
<Marex>
anarsoul: but can I actually use that external-oes on a userspace texture ?
<anarsoul>
I think so, kmscube does that
<anarsoul>
well, it actually allocates bo, maps it for copying data and then imports it
jernej_ has joined #lima
jernej has quit [Read error: Connection reset by peer]
jernej_ is now known as jernej
<Marex>
anarsoul: ah right, and the BO comes from the scanout engine, so that's the trick there
<Marex>
anarsoul: I wonder what gstreamer does there, I need to dig deeper
<Marex>
anarsoul: but this does make sense , with the BO
<anarsoul>
well, again - I've never looked into gstreamer architecture but it'd make sense for caller to allocate the buffer for decoder
<anarsoul>
so if you're implementing video player you can actually pass a BO-backed buffer
<anarsoul>
if it's not possible or it's too much work - just implement heuristics to switch buffer to linear in lima