<MrCooper>
Company: you can use e.g. GBM for allocating the buffers
<javierm>
tzimmermann: yes, I have in my TODO but was just busy with some internal tasks. I'll do it this week for sure
<tzimmermann>
thank you
heat__ has joined #dri-devel
frankbinns1 has quit [Ping timeout: 480 seconds]
tjaalton_ is now known as tjaalton
yyds has quit []
yyds has joined #dri-devel
vliaskov has joined #dri-devel
fab has quit [Read error: No route to host]
YuGiOhJCJ has joined #dri-devel
fab has joined #dri-devel
fab has quit [Remote host closed the connection]
fab has joined #dri-devel
fab has quit [Read error: Connection reset by peer]
fab has joined #dri-devel
macromorgan has quit [Read error: Connection reset by peer]
fab has quit [Read error: Connection reset by peer]
tyalie has quit []
macromorgan has joined #dri-devel
Leopold_ has joined #dri-devel
tursulin has joined #dri-devel
lynxeye has joined #dri-devel
tyalie has joined #dri-devel
Ermine_ has quit [Remote host closed the connection]
Ermine has joined #dri-devel
Leopold_ has quit [Remote host closed the connection]
Leopold has joined #dri-devel
<Company>
MrCooper: yeah, I know I can use external APIs, but I was hoping for way to convince GL to do that
<Company>
MrCooper: because unlike me, GL gets the modifiers right
mvlad has joined #dri-devel
gio has quit [Remote host closed the connection]
pcercuei has joined #dri-devel
Calandracas has quit [Ping timeout: 480 seconds]
fab_ has joined #dri-devel
gio has joined #dri-devel
fab_ is now known as Guest154
simondnnsn has quit [Read error: No route to host]
simondnnsn has joined #dri-devel
simondnnsn has quit [Read error: Connection reset by peer]
simondnnsn has joined #dri-devel
minecrell3 has quit []
minecrell has joined #dri-devel
glennk has joined #dri-devel
Leopold has quit [Remote host closed the connection]
djbw has quit [Read error: Connection reset by peer]
tursulin has quit [Quit: Konversation terminated!]
tursulin has joined #dri-devel
<MrCooper>
Company: "right" WRT what? How could GL know which modifiers are (not) suitable for your use case?
tursulin has quit []
<Company>
my use case is mainly rendering with GL
tursulin has joined #dri-devel
<Company>
so my idea was that GL knows how to do that
Leopold_ has joined #dri-devel
<emersion>
but if you're using DMA-BUFs, then you're sharing that buffer with _something else_ right?
<emersion>
and that _something else_ may support different modifiers
<Company>
sure, but that'd be step 2
<Company>
because right now that someone else is Vulkan or a compositor, and they usually agree on things
<MrCooper>
GL still can't magically know what they agree on though
<Company>
and pretty much any modifier is gonna look better than glReadPixels()
<Company>
sure, and I'm prefectly fine with an API where I tell GL my preferred modifiers
<Company>
I guess GL can give me its modifiers
kxkamil has quit []
Leopold_ has quit [Remote host closed the connection]
<Company>
or are they only for importing?
<MrCooper>
if you know the modifiers, you can allocate with GBM?
Leopold_ has joined #dri-devel
<MrCooper>
or you can create a corresponding GL extension, if you prefer
<Company>
I'm not sure I know the modifiers
<emersion>
Company: there have been situations where client GL doesn't agree with server GL (e.g. flatpak), and GL doesn't agree with Vulkan (missing format/modifier on one side)
<Company>
I can eglQueryDmaBufModifiersEXT() but I don't get the preferred modifier for a framebuffer target that way
<emersion>
it's not theoretical, i've seen this multiple times in practice
<emersion>
also the compositor might do arbitrary filtering
<emersion>
for instance gamescope does
<Company>
in Vulkan I can specify the format and Vulkan picks its favorite modifier
<Company>
actually, I give it a list of modifiers to choose from I think
<Company>
and then it reliably picks the weirdest one
<emersion>
one really must follow the format modifier negociation dance described in
<emersion>
yeah, passing a list of formats/modifiers to the allocator is the right way to do it
<Company>
so I'll have to add some internal allocate_dmabuf() and then export that into GL
<Company>
and before that I need to figure out somehow which formats/modifiers GL supports
<Company>
for rendering to
mvlad is now known as Guest157
Guest157 has quit [Read error: Connection reset by peer]
mvlad has joined #dri-devel
<Company>
I guess it's all the formats that eglQueryDmaBufModifiersEXT() doesn't mark as external_only
<emersion>
and intersect that with the compositor's list
<emersion>
yes
<Company>
... or with Vulkan, depending on where I want to use it
<any1>
It's funny that this text says that "it must query the media API it intends to use" but the most common media API doesn't support this kind of querying. :)
flynnjiang has quit [Quit: flynnjiang]
<Company>
any1: that's really proof that the docs are correct
<Company>
because if anything with dmabufs looks straightforward, you would need to be very suspicious
<emersion>
any1: 😥
<Company>
so, step 1: create an internal gtk_allocate_dmabuf (width, height, list_of_allowed_formats_and_modifiers);
<any1>
With VA-API, you need to either throw a buffer at it and pray that it accepts it or allocate the buffers via VA-API.
<emersion>
Company: also note that you loose dmabuf feedback handling when you do things yourself
<Company>
step 2: figure out how to get the right list
<emersion>
any1: oh i was thinking of a different API
<emersion>
for VA-API it has some DMA-BUF negociation in place now
<emersion>
not quite complete
<any1>
emersion: Ahh, so there is hope for it
<any1>
what API were you thinking of?
<emersion>
my answer now is: just use vulkan video and burry VA-API
<Company>
emersion: feedback handling? You mean the zwp_linux_dmabuf protocol feedback?
<emersion>
i think V4L2 still doesn't have modifiers
karolherbst_ is now known as karolherbst
<emersion>
Company: yeah
karolherbst has quit [Quit: Konversation terminated!]
karolherbst has joined #dri-devel
<Company>
emersion: I'm not really concerned with that yet, because for now I just want to pass GL rendered buffers to Vulkan
Leopold_ has quit [Remote host closed the connection]
<Company>
emersion: but we'll probably grow our own feedback handling anyway, so we can make GStreamer etc hook into that
Leopold_ has joined #dri-devel
kxkamil has joined #dri-devel
Leopold_ has quit [Remote host closed the connection]
Leopold_ has joined #dri-devel
<Company>
once everything works well, we'll ask the compositor for the preferred formats so that gstreamer can make pipewire tell the compositor those formats
<Company>
and then screencasting will be real smooth
<karolherbst>
ohh right, I was wondering why screencasting is so slow actually.. so that's basically it? pointless format converstions/copies going on?
rasterman has joined #dri-devel
frankbinns2 is now known as frankbinns
halves has quit [Quit: o/]
Guest37 is now known as shadeslayer
halves has joined #dri-devel
Leopold_ has quit [Remote host closed the connection]
Leopold_ has joined #dri-devel
<kode54>
Yes, just use Vulkan video
<kode54>
I think that finally supports h264 on AMD now?
<kode54>
Not sure it supports anything else
<kode54>
Or encoding
<kode54>
And Intel is a special hell because they want to ship media encoding outside of Mesa
<airlied>
anv has h264 decode
<airlied>
and some h265 as well
kts has joined #dri-devel
kts has quit []
kts has joined #dri-devel
<kode54>
Too bad nobody wants to make encode work fully on that extreme minority outlier, the Arc Alchemist
Leopold_ has quit [Remote host closed the connection]
<kode54>
Alas, every Alchemist owner should just upgrade to Battlemage the instant it launches
<kode54>
I’m sure everything will be better this time around
Leopold_ has joined #dri-devel
<Company>
if hwdecode was just about the hardware
<Company>
and drivers
<Company>
but the multimedia framework APIs all have their issues, too
<airlied>
kode54: encoding is written
<airlied>
i even had some of av1 decode working last year
<kode54>
I meant the media firmware loading
<kode54>
Apparently dg2 needs it for things like bitrate control
<kode54>
And dg2 is somehow the only generation of hardware to use a particular form of loading method
<kode54>
Unless someone wants to add it to xe, or someone wants to add vm bind to i915
<kode54>
But I don’t think even vm bind fixes all of anv’s performance problems
<kode54>
Can’t tell how far it’s come now, I sold out
<kode54>
Sold my A770 to some eager person for full MSRP and bought a 6700 XT
Calandracas has joined #dri-devel
Leopold_ has quit [Remote host closed the connection]
yyds has quit [Remote host closed the connection]
azerov has quit []
Leopold has joined #dri-devel
mclasen has joined #dri-devel
<CounterPillow>
Thank god that after vdpau, vaapi, qsv, nvdec, mmal (lol), rkmpp (2xlol), v4l2-m2m and v4l2-requests we now finally got it right this time for sure with vulkan video
<pq>
forgot openmax I think
<kode54>
Handbrake still only supporting proprietary video codec libraries
<kode54>
even though their entire codebase is just a fork of ffmpeg
<CounterPillow>
Question: does a device that only implements Vulkan video, e.g. a hwdec IP on an embedded SoC that is completely separate from the 3D GPU and display engine aside from sharing the same memory, need to implement the entirety of Vulkan in some cursed way as well, or can it just chill as a stub device that *only* implements base Vulkan boilerplate stuff and vulkan video?
<daniels>
CounterPillow: the latter
<CounterPillow>
Okay, that's good news
Leopold has quit [Remote host closed the connection]
Leopold has joined #dri-devel
pjakobsson has quit [Remote host closed the connection]
<demarchi>
daniels: any idea if it's indeed fdo? I wonder if it's because of the mailman misfeature of tweaking the Cc headers
<demarchi>
if you cc 2 mailing lists, lore.kernel.org will end with 2 different emails (as far as Cc header is concerned), with the same msgid
djbw has joined #dri-devel
tursulin has quit [Ping timeout: 480 seconds]
vliaskov has quit [Read error: Connection reset by peer]
vliaskov_ has joined #dri-devel
<robclark>
alyssa: re: same draw, multiple queries, freedreno just does same thing an IMR would do, from cmdstream capture counter value at start and end of query, and then math (the only one we punt on is time-elapsed queries that are read-back from shader ... since that would require doing division and division is hard
<alyssa>
robclark: interesting, and that.. works even with gmem?
<alyssa>
(It doesn't work on either Mali or Imaginapple)
<robclark>
with the usual caveats about ordering of rendering, yes