ChanServ changed the topic of #dri-devel to: <ajax> nothing involved with X should ever be unable to find a bar
agd5f has quit [Read error: No route to host]
ahajda has quit [Quit: Going offline, see ya! (www.adiirc.com)]
agd5f has joined #dri-devel
Didgy has joined #dri-devel
Didgy has quit [Quit: Konversation terminated!]
Didgy has joined #dri-devel
Didgy has quit []
Didgy has joined #dri-devel
<Didgy> Heya folks, I'm trying to get started learning driver development, preferably Vulkan. I'm familiar with C/C++ and how to write Vulkan applications, now I want to learn the other side of the stack. Do you have any recommendations on where to start reading? My initial plan is just to study the RPi4 and Intel Vulkan drivers, and see what I can figure out
<airlied> the intel and amd drivers are probably simpler to understand than the rpi one
<airlied> though may also have more features
<airlied> there is also the main vulkan driver and the shader compiler
ngcortes has joined #dri-devel
<airlied> Lynne: I'm not sure how much more is needed on the driver side for P frames
pcercuei has quit [Quit: dodo]
<Lynne> not a lot, I'm almost done
lemonzest has quit [Quit: WeeChat 3.6]
ngcortes has quit [Ping timeout: 480 seconds]
Didgy has quit [Quit: Konversation terminated!]
<Lynne> airlied: pushed
<Lynne> 2-frame gop, first frame in slot 0 is key, second frame in slot 1 is a p-frame
<Lynne> btw I asked this yesterday, but do you know of any drivers or devices where layout conversions aren't actual noops?
<Lynne> (my rewrite from earlier eliminated most layout conversions, since the DBP doesn't need any)
ybogdano has quit [Ping timeout: 480 seconds]
<bnieuwenhuizen> are we talking vulkan image layout?
<bnieuwenhuizen> if so, AMD, just only for compressed surfaces, which we only support for tiled images (and in particular haven't implemented for multiplanar images)
<Lynne> huh, curious
<Lynne> how does it work, is there a GPU memcpy to convert between the layouts?
<bnieuwenhuizen> most of it is just decompressing (or moving it to a somewhat more decompressed state, e.g. with clear colors)
<bnieuwenhuizen> generally happens in place (either by a fullscreen draw where we tell the color target unit to decompressed or by compute shader)
<Lynne> must be nice having enough registers and vector sizes to store and decompress block-wise
<airlied> Lynne: typo? .pictureType = pic->type == FF_VK_FRAME_P ? STD_VIDEO_H264_PICTURE_TYPE_I :
<bnieuwenhuizen> the block wise decompression is done by using LDS/shared memory in a workgroup (though a block is 256 bytes for decompression so that would fit in a single invocation if needed)
<Lynne> airlied: yup, a typo, fixed that, now P-frames have a "reference overflow 49 > 15 or 0 > 15" error when decoding
<Lynne> it's progress
<bnieuwenhuizen> actually never mind, we don't even use shared memory, just a workgroup barrier
<Lynne> on a related note, for gsoc, I'm planning on getting someone to write some hybrid vulkan encoders/decoders for simple codecs like vc2/dirac and prores
* airlied is considering openh264/lavapipe crossover at some point, could also do av1 I suppose
co1umbarius has joined #dri-devel
camus has joined #dri-devel
<Lynne> do you really need it? practically everything comes with h264 decoding these days
<kisak> if you want to expose Vulkan video via lavapipe, you have to back it with something. bolting on an existing implementation is easier than reinventing the wheel
columbarius has quit [Ping timeout: 480 seconds]
<airlied> Lynne: I have to make things work in wierd places for completion :-P
<kisak> airlied: is openh264's license compatible with mesa?
<kisak> oh, 2 clause BSD license, less strange than I expected
<jenatali> We've got internal versions of our software rasterizer that do D3D12 video for testing purposes by bolting on software dec/enc. Makes a lot of sense
camus1 has quit [Ping timeout: 480 seconds]
<airlied> Lynne: I'm missing something, how do I know the dpb slot of the current image I'm encoding? or is that not something I need?
<airlied> Lynne: some more conformant frames now
<Lynne> it's via the picture slot in encode info
<Lynne> pSetupReferenceSlot
<airlied> ah not sure how I missed that, thanks!
<Lynne> making the quantizer higher in radv_enc_rc_per_pic reveals what's happening
<Lynne> *lower
<Lynne> the reference used seems to be at an offset
<Lynne> in that objects towards the middle of the frame are pushed to the left in the ref
<airlied> Lynne: is frame_num == 0 always correct?
HerrSpliet has joined #dri-devel
RSpliet has quit [Ping timeout: 480 seconds]
<airlied> pushed some minor cleanups
<Lynne> no, frame_num should be 1 for the p-frame
<airlied> okay I'm seeing a 0 there
<Lynne> checked, it's a 1 on my end for I-frames
<airlied> Lynne: frame_num is used uninit at line 618?
<airlied> setting frame_num to 0 gets me a frame num of 1
<airlied> https://paste.centos.org/view/00be9215 is my current diff
<airlied> oops the second one is in your tree
<Lynne> oh, that frame number
<Lynne> it's meant to be zero, because your keyframe is at slot 0
<airlied> yeah but for the P frame you had prev->is_reference to it so it should be 1?
<airlied> ^had^add
<airlied> in any case adding to an uninit var is wrong :-)
<Lynne> uninit var? where
<Lynne> also, that frame number is in the reflist
<Lynne> there, it should be zero, because it's referencing the keyframe
<airlied> Lynne: int frame_num; then you have frame_num = frame_num + prev->is_reference;
<airlied> in the non key frame path
<airlied> vulkan_encode_h264.c:618
<Lynne> ah, I'll fix it in a bit
<airlied> Lynne: should you be setting pictureType to IDR for key frames?
<airlied> i.e. is there a difference between I + idr_flag = true and IDR pictureType?
<airlied> since the header defines STD_VIDEO_H264_PICTURE_TYPE_IDR
<Lynne> oh, it does?
<airlied> yeah slice type is p/b/i but picture type is p/b/i/idr
<airlied> though I think you get the slice_type wrong
<airlied> since you use the spec values not the STD_VIDEO one
<Lynne> ah, no, I looked at that, the standard is wrong
<Lynne> slice types above 5 indicate that all following slices are going to be coded in the same slice type
<airlied> okay so the vulkan spec needs fixing?
<Lynne> yup, I'll add a SPEC note
<Lynne> pushed
<Lynne> if you need a reference, look at vaapi_encode_h264_init_picture_params in vaapi_encode_h264.c
<Lynne> since I did copy some code out of it
<airlied> Lynne: is there a vaapi command I could run to reproduce the behaviour we are doing for vulkan?
<Lynne> yeah, "./ffmpeg_g -init_hw_device "vaapi=vp:/dev/dri/renderD128" -i SAMPLE_720.nut -filter_hw_device vp -vf format=nv12,hwupload -c:v h264_vaapi -g 2 -keyint_min 2 -vframes 2 -rc_mode CQP -qp 20 -y test.ts"
jernej- has quit []
jernej has joined #dri-devel
<DemiMarie> <tleydxdy> "not before nv go out of business" <- I wonder if some Linux kernel dev has made it so that one cannot write a GPU driver without `EXPORT_SYMBOL_GPL` APIs.
<Lynne> no, there are more elegant ways of doing this, like breaking the floating-point enabling api on every release or so
camus has quit [Remote host closed the connection]
<ccr> I'm sure the magic will just move onto closed firmware and userspace blobs.
<airlied> it's already moved
<airlied> they have an GPL compatible kernel module now
<ccr> not mainlined yet .. or has that progressed in some significant way?
<airlied> that doesn't matter to them
<ccr> yah, I suppose not.
<airlied> the kernel devs changing GPL symbols won't affect them anymore
<airlied> well once they make it default
<airlied> Lynne: pushed a few more changes one for qp again
<airlied> hmm throwing my horror ff trailer at it gets me a free gpu lockup
<airlied> oh and possibly some vmfaults
<DemiMarie> What is the Intel Protected Xe Path? The documentation I have found is utterly useless.
<Lynne> airlied: hm, nope, changing the QP in ffmpeg still doesn't change it on the output
<Lynne> I also had a hangup when I messed around with the slots
<Lynne> (and an epic hangup when I ran video commands on a general queue by accident)
<ccr> sounds like happy fun debugging times :P
<DemiMarie> airlied: did you see my message?
<DemiMarie> wanting to maek sure it made it to IRC
<hays> are you all ok fielding a question about errors when linking against mali blobs?
<hays> if so, https://h0c.us/v/P1phLA/r im trying to understand if there is a fix for this kind of error. getting it on a few things
<airlied> DemiMarie: yeah no idea about PXP
<airlied> Lynne: wierd I'd have expected that to do something :-P
<Lynne> speaking of crashes, I wonder if my one-liner ffmpeg command to hard-freeze intel gpus still works
<Lynne> they had an issue with SIMD and workgroup barriers
bmodem has joined #dri-devel
rcf has quit [Ping timeout: 480 seconds]
<DemiMarie> airlied: Thanks!
rcf has joined #dri-devel
<Frogging101> PXP sounds like something for DRM
JohnnyonF has quit [Ping timeout: 480 seconds]
elongbug_ has quit [Remote host closed the connection]
elongbug_ has joined #dri-devel
<DemiMarie> It does, but Microsoft seems to be considering using PXP with SGX for hybrid CPU/GPU enclaves.
<airlied> yeah it's probably more confidential compute stuff
bmodem1 has joined #dri-devel
bmodem has quit [Ping timeout: 480 seconds]
elongbug_ has quit []
jewins has quit [Ping timeout: 480 seconds]
elongbug has joined #dri-devel
<elongbug> airlied: thanks for merging 6.2 rc1 to drm-next.
lemonzest has joined #dri-devel
Company has quit [Read error: Connection reset by peer]
kts has joined #dri-devel
heat has quit [Ping timeout: 480 seconds]
kts has quit [Read error: Connection reset by peer]
YuGiOhJCJ has joined #dri-devel
srslypascal is now known as Guest763
srslypascal has joined #dri-devel
Guest763 has quit [Ping timeout: 480 seconds]
alanc has quit [Remote host closed the connection]
alanc has joined #dri-devel
macromorgan is now known as Guest764
macromorgan has joined #dri-devel
ahajda has joined #dri-devel
kts has joined #dri-devel
Guest764 has quit [Ping timeout: 480 seconds]
bmodem1 has quit [Ping timeout: 480 seconds]
srslypascal is now known as Guest767
srslypascal has joined #dri-devel
Duke`` has joined #dri-devel
Guest767 has quit [Ping timeout: 480 seconds]
bmodem has joined #dri-devel
dantob has joined #dri-devel
mvlad has joined #dri-devel
rasterman has joined #dri-devel
jkrzyszt has joined #dri-devel
elongbug_ has joined #dri-devel
elongbug has quit [Read error: Connection reset by peer]
sh-zam has quit [Ping timeout: 480 seconds]
sh_zam has joined #dri-devel
Didgy has joined #dri-devel
<Didgy> I understand there's many helper functions and tools in Mesa. Is there an overview or API reference to these? I'm particularly interested in the ones related to Vulkan
<ishitatsuyuki> didgy: If you are interested in the common Vulkan entrypoints for drivers, maybe searching for the respective merge requests would help
YuGiOhJCJ has quit [Quit: YuGiOhJCJ]
bmodem1 has joined #dri-devel
bmodem has quit [Ping timeout: 480 seconds]
<Didgy> So it seems there's gone a lot of work into making reusable components that can be reused in various drivers. How do you keep track of which functions you can use?
camus has joined #dri-devel
<kusma> didgy: Are you looking at Gallium drivers or Vulkan drivers? The philosophy is a bit different between those...
Duke`` has quit [Ping timeout: 480 seconds]
Duke`` has joined #dri-devel
<kusma> For gallium drivers, most "reusable components" are in src/gallium/auxiliary, whereas for Vulkan, you can find most helpers in src/vulkan
fab has joined #dri-devel
<Didgy> I'm mostly looking for Vulkan, that is my area of interest
HerrSpliet has quit [Quit: Bye bye man, bye bye]
RSpliet has joined #dri-devel
Haaninjo has joined #dri-devel
Duke`` has quit [Ping timeout: 480 seconds]
Duke`` has joined #dri-devel
fab has quit [Ping timeout: 480 seconds]
Duke`` has quit []
Duke`` has joined #dri-devel
<Didgy> How did you guys get started with GPU driver development?
sgruszka has joined #dri-devel
Duke`` has quit []
<ishitatsuyuki> I started with messing around performance with Radeon GPU Profiler, then I digged into the non-shader side of stuff when trying to get a game working properly on Linux
<kode54> elongbug_: your patch series merges just fine into 6.2-rc1
sgruszka has quit [Ping timeout: 480 seconds]
<kode54> elongbug_: I thought the patch crashed my startup
<kode54> but it turns out it was a big mistake to downgrade linux-firmware to the stable release
<kode54> 2022-12-16 snapshot works
<jani> tomba: cheers, any DSI insight on why a single-link panel would behave like this: https://gitlab.freedesktop.org/drm/intel/-/issues/7717 ?
<jani> tomba: I know the Intel GPU part does not interest you in the least, but any ideas on the DSI level? I'm a bit baffled, since it's not dual-link
bmodem has joined #dri-devel
pcercuei has joined #dri-devel
bmodem1 has quit [Ping timeout: 480 seconds]
<kusma> didgy: I got hired by Falanx Microsystems (now ARM Norway) back in the early days, where a friend through the demoscene was already the only person on the driver development team, and I had been helping him with the robustness and performance for the SW T&L clipping code...
bmodem has quit [Ping timeout: 480 seconds]
JohnnyonFlame has joined #dri-devel
warpme_____ has joined #dri-devel
elongbug_ has quit []
elongbug has joined #dri-devel
kts has quit [Remote host closed the connection]
<elongbug> kode54: could you share your crash log or dmesg?
Company has joined #dri-devel
q4a has joined #dri-devel
agd5f has quit [Remote host closed the connection]
<q4a> Is there any news about this bug https://gitlab.freedesktop.org/mesa/mesa/-/issues/7688 ? Looks like it's not only rusticl problem
kts has joined #dri-devel
kts has quit [Quit: Leaving]
Akari has joined #dri-devel
rmckeever has quit [Quit: Leaving]
<tomba> jani: is there just a vertical split, or also a horizontal split? hard to say from the pic. in any case, nothing on the DSI level comes to mind causing this. there could, e.g, be two pixel packets per line, and for some reason the other one is broken. but I can't really say anything sensible with these details (and no understanding of the display controller).
bmodem has joined #dri-devel
bmodem has quit [Ping timeout: 480 seconds]
jkrzyszt has quit [Remote host closed the connection]
<Didgy> kusma: That's cool, I had an interview with Arm Norway this summer, I'm hoping to maybe get a job there after I'm done with my degree
Surkow|laptop has quit [Ping timeout: 480 seconds]
jkrzyszt has joined #dri-devel
Surkow|laptop has joined #dri-devel
heat has joined #dri-devel
ADS_Sr has joined #dri-devel
paulk-bis has joined #dri-devel
paulk has quit [Read error: Connection reset by peer]
turol has quit [Ping timeout: 480 seconds]
turol has joined #dri-devel
agd5f has joined #dri-devel
arnd_ has quit []
arnd has joined #dri-devel
jewins has joined #dri-devel
bmodem has joined #dri-devel
kts has joined #dri-devel
kts has quit []
gouchi has joined #dri-devel
tobiasjakobi has joined #dri-devel
tobiasjakobi has quit []
JohnnyonFlame has quit [Ping timeout: 480 seconds]
ADS_Sr_ has joined #dri-devel
fab has joined #dri-devel
ADS_Sr__ has joined #dri-devel
ADS_Sr_ has quit []
ADS_Sr is now known as Guest802
ADS_Sr__ is now known as ADS_Sr
Guest802 has quit []
fab has quit [Quit: fab]
Akari has quit [Quit: segmentation fault (core dumped)]
egbert has joined #dri-devel
jkrzyszt has quit [Ping timeout: 480 seconds]
Duke`` has joined #dri-devel
camus has quit [Remote host closed the connection]
camus has joined #dri-devel
bmodem has quit [Ping timeout: 480 seconds]
JohnnyonFlame has joined #dri-devel
sarnex has quit [Quit: Quit]
ADS_Sr has quit [Remote host closed the connection]
ADS_Sr has joined #dri-devel
sarnex has joined #dri-devel
ADS_Sr has quit [Remote host closed the connection]
ADS_Sr has joined #dri-devel
sarnex has quit []
sarnex has joined #dri-devel
ngcortes has joined #dri-devel
ADS_Sr has quit [Read error: Connection reset by peer]
sarnex has quit [Quit: Quit]
warpme_____ has quit []
ADS_Sr has joined #dri-devel
sarnex has joined #dri-devel
ngcortes has quit [Ping timeout: 480 seconds]
camus has quit [Remote host closed the connection]
camus has joined #dri-devel
ADS_Sr has quit [Read error: Connection reset by peer]
ADS_Sr has joined #dri-devel
camus1 has joined #dri-devel
camus has quit [Ping timeout: 480 seconds]
<airlied> Lynne: dreamt up a problem in the dpb setup, pushed a fix, still not prefect I don't think
fab has joined #dri-devel
camus1 has quit [Remote host closed the connection]
camus has joined #dri-devel
<airlied> at least fixes the lockups/faults with my ff trailer
<Lynne> airlied: found out I'm not locking the previous reference frame, nor supplying its semaphore
<Lynne> tried to, but it doesn't get signalled
Akari has joined #dri-devel
<Lynne> pushed to my branch
<Lynne> if I just ref the keyframe while it's being encoded so its reference leaks, and I do a sleep() before I do the query, the results look different
<Lynne> still corrupt, but it looks like the image is correct beneath the corruption, movement happens correctly
camus has quit [Remote host closed the connection]
rmckeever has joined #dri-devel
<airlied> Lynne: will that frame locking work okay with layered dpb?
camus has joined #dri-devel
mvlad has quit [Remote host closed the connection]
camus has quit [Remote host closed the connection]
camus has joined #dri-devel
<Lynne> aaaah, you're right, I have to add a check for that
<Lynne> also I just noticed the quantizer setting works
<Lynne> did someone fix this?
<Lynne> pushed
m00nlit[m] has joined #dri-devel
<airlied> Lynne: maybe fixing the dpb fixed it
<Lynne> ah, the driver didn't report any dpbs were supported
<Lynne> yeah, that would do it
camus has quit [Remote host closed the connection]
<Lynne> the image does look okay with regards to prediction
ADS_Sr has quit []
camus has joined #dri-devel
<Lynne> just not with the random patches of translucent magenta around
ADS_Sr has joined #dri-devel
<airlied> Lynne: thinjk I got it
<airlied> fix in my branch
sarnex has quit [Quit: Quit]
<Lynne> almost, it's slightly better now
* airlied doesn't have purple patches anymore
<Lynne> let me test with a nicer video
ADS_Sr has quit [Read error: Connection reset by peer]
<Lynne> airlied: I do
<Lynne> the luma is 100% fine
<Lynne> the chroma has the corruption
sarnex has joined #dri-devel
<Lynne> I take that back, the luma has minor corruption, occasionally
<airlied> okay must still be some alignment issues in there
<Lynne> brb, gotta go to the store before it closes
fab has quit [Ping timeout: 480 seconds]
<airlied> Lynne: okay one more fix in there
<airlied> cool go store, let me know later, I'm pretty much finished in terms of time to do anything more before hols :-)
ADS_Sr has joined #dri-devel
<Lynne> airlied: IT WORKS!
<Lynne> 100% fine now, no corruption when comparing frame by frame
<airlied> yay happy dance! in your face other vendor who we shall not mention
<psykose> hurra
<Lynne> I'll be sure to insert my brand of snide in the issue when I casually mention it
<airlied> okay I think B frames will have to wait until post holidays :-P
<Lynne> I'll get everything ready, and get past 2-frame gops, which should be possible with the current driver
<Lynne> since p-frames may only have a single ref
<kode54> elongbug: the crashbug was unrelated to your patch
<kode54> and it wasn't a crashbug
<kode54> it was GuC failing to upload
<kode54> possibly related to the bug on the tracker for failing to upload after suspend
<kode54> except in my case, it was after a soft reboot
<kode54> I posted a bug to the i915 tracker on gitlab
<kode54> but it was not what I thought, so I closed it and linked to the other issue
<kode54> (the two firmware versions didn't change anything i915 related)
Duke`` has quit [Ping timeout: 480 seconds]
ybogdano has joined #dri-devel
ADS_Sr has quit [Remote host closed the connection]
ADS_Sr has joined #dri-devel
ADS_Sr has quit [Remote host closed the connection]
camus has quit [Remote host closed the connection]
camus has joined #dri-devel
ADS_Sr has joined #dri-devel
<Lynne> airlied: replicated the AV1 decoding issue, "amdgpu: The CS has been rejected (-22), but the context isn't robust." is what gets printed on stderr
ADS_Sr has quit [Read error: Connection reset by peer]
zaratustra has quit [Quit: zaratustra]
oneforall2 has quit [Remote host closed the connection]
oneforall2 has joined #dri-devel
zaratustra has joined #dri-devel
camus1 has joined #dri-devel
<airlied> Lynne: dmesg should have more info
camus has quit [Remote host closed the connection]
Haaninjo has quit [Quit: Ex-Chat]
<Lynne> nothing in dmesg
gouchi has quit [Remote host closed the connection]
<Lynne> ah, it's mesa printing this
<airlied> ah so doesn't sound like a gpu hang then just something getting miscoded
inverted has quit []
invertedoftc has joined #dri-devel
ngcortes has joined #dri-devel
camus1 has quit [Remote host closed the connection]
camus has joined #dri-devel
lemonzest has quit [Quit: WeeChat 3.6]
rasterman has quit [Quit: Gettin' stinky!]
ngcortes has quit [Ping timeout: 480 seconds]
ahajda has quit [Ping timeout: 480 seconds]
cef has quit [Quit: Zoom!]