00:04airlied: gfxstrand: got the latest firmwares to work, so going to see if I can get Linus to allow it in 6.7 which might be a stretch
00:04airlied: the tlb invalidation will probably have to go with the big hammer fix for now
00:06airlied: gfxstrand: you planning on nak by default once it merged?
00:06daniels: NAK for all
00:07gfxstrand: airlied: NAK for Turing+
00:07gfxstrand: I want the default config to be the conformant one
00:07gfxstrand: We'll fix bugs from there
00:09gfxstrand: Once I figure out warp barrier spilling, we should be able to get 1.1
00:14gfxstrand:makes supper
00:15DavidHeidelberg:thanks for breaking his brain which has special category for a NAK
00:17DavidHeidelberg: wish I could NAK NAK name; Thanks got we have Salad, right mupuf ? Now only Nah, Yes, No, Aladeen and Hello remains as a available names.
00:18DavidHeidelberg: ok, I was too harsh, we have these options also in all other popular spoken languages :D
00:51Company: is there a good way to autodetect if a device runs better with Vulkan or with GL?
00:51Company: I'm trying to figure out how to choose between my 2 renderers
00:52HdkR: Microbench your renderer at runtime and select
00:55Company: not sure that's a good idea with GTK - the demands of apps vary a lot
00:55Company: and usually the thing people worry more about is which one has fewer bugs
00:56Company: Gnome Settings is fast enough either way
00:58HdkR: That's the problem, "apps vary a lot." A render path that is faster on vulkan versus GL on one hardware and driver combination could easily change for either hardware or software changing
00:58Company: I am very aware
00:59airlied: I'd just pick vulkan where it exists
00:59airlied: and move forward
01:00Company: I think medium-term that's definitely the best way
01:01Company: but I wonder if it's the right time for that yet
01:01airlied: at least for all the desktop vendors it is
01:01airlied: on mobile if you are on qualcomm it's probably fine
01:02airlied: not sure on non-Linux
01:03Company: macos doesn't have Vulkan ootb
01:03Company: and on Windows, I suspect preferring Vulkan works, too - because the bad driver vendors don't ship Vulkan?
01:04HdkR: Qualcomm is just starting to ship Vulkan there, not available on any current WoA devices there :)
01:04airlied: yeah I think it's mostly fine if you have vulkan use vulkan
01:04Company: I suppose I should bring that up internally too wrt RHEL10
01:13Company: a benefit of keeping GL is that the rest of the stack uses GL, too - compositor and XWayland
01:13Company: so GTK won't be the odd one out
01:31gfxstrand: Do wraps not work in the CI build containers?
01:31gfxstrand: NAK kinda depends on them for crates to work
01:36gfxstrand: Ah, --wrap-mode=nofallback. Well, that's not gonna work...
01:37gfxstrand: We'll have to chat about what to do about that in the morning
01:40cmarcelo: for those familiar with hawkmoth/doxygen, is there an equivalent of "@file" section?
04:54DemiMarie: gfxstrand: distributions will hate you if they cannot build in nodownload mode. Fedora at least requires building against system packages.
05:12DemiMarie: From a distribution PoV, C not having an easy way to use third party dependencies is a feature, not a bug. It means that programmers use dependencies sparingly.
05:15DemiMarie: If you really want to make distro maintainers upset, have a security patch that bumps a dependency major version to something not in the distro, so the distro now has to bump that dependency and risk breakage.
05:16DemiMarie: Personally I think Mesa should at least bundle LLVM but distros tend to not like that.
05:21DemiMarie: Distros, especially LTS ones, prefer few and slow-moving dependencies, as that means less work for the distro vendor.
08:24daniels: gfxstrand: —force-fallback-for?
08:33MrCooper: DemiMarie gfxstrand: FWIW, Debian package autobuilders have no network access
09:58karolherbst: gfxstrand: fyi.. I kinda wanted to land https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22580 but you also have this new MR messing with indirects, and I was wondering if we should just leave glsl_get_length alone...
11:38alyssa: jenatali: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8635#note_2151669 thoughts?
11:39alyssa: ideally we could get that warning caught in gcc/clang so it's hit before marge hits it
11:39alyssa: failing that can we allow the warning in ci?
11:40alyssa: ./src/compiler/spirv/spirv_to_nir.c(7277): error C2220: the following warning is treated as an error
11:40alyssa: ../src/compiler/spirv/spirv_to_nir.c(7277): warning C4047: 'return': 'bool' differs in levels of indirection from 'void *'
11:40jenatali: Yeah I would've expected GCC to hit that too
11:40alyssa: wild.
11:41alyssa: not upset about this one
11:41alyssa: mostly. confused lol
11:41jenatali: Werror has been useful for me, I don't want to turn it off
11:46alyssa: you are valid ^^
13:21gfxstrand: daniels: Oh, nice! Let me give that a go
13:24gfxstrand: DemiMarie: I plan to keep the number of dependent crates small. However, there is a suite of 4 crates that is basically required if you want to write proc macros. If distros are going to have any mechanism at all for packaging crates, they'll package those 4.
13:28gfxstrand: daniels, DavidHeidelberg: Any ideas why my update to the CI script won't marge?
13:28gfxstrand: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25999#note_2151305
13:28gfxstrand: It looks like CI is failing because there's nothing to CI.
13:29daniels: gfxstrand: oh, hilarious, guess there's a crevice where it doesn't create any pipeline
13:30daniels: the rules filter down to only the jobs which need to be run, but ... nothing needs to be run
13:30daniels: you could either go through test-source-dep.yaml and find something to stick it on, or just roll it into your next MR
13:36pq: hwentlan__, bwt. did Mario Kleiner ever tell you about their unsigned int 16 bpc research displays, and driving them with false-color mode because KMS hardware just can't do that deep?
13:38pq: and that Linux is currently the best OS for driving those displays in spite of all the unknowns in KMS
13:39vsyrjala: mario added proper 16bpc formats to kms at some point. i should probably get the i915 supported merged finally
13:40pq: can HDMI, DVI-D or DP actually carry 16 bpc RGB?
13:42vsyrjala: DP can, in theory. HDMI 2.0 has "16bpc" 4:2:0 iirc
13:42pq: is there i915 hardware that can deliver 16 bpc to display, too? or would the kernel driver somehow encode that as 8 bpc double-wide image or something?
13:44pq: I understood that Mario has displays that expect 8 bpc double-wide image ("false-color"), and display that as 16 bpc single-wide image.
13:54vsyrjala: i don't think we have support for 16bpc output even in the latest hw. so yeah, you'd still need magic tricks to make it happen
14:01gfxstrand: dcbaker: Could you glance at the top half-dozen patches or so of my NAK MR when you get the chance. It's building in CI now and I would love to assign it to Marge. :)
14:01gfxstrand: But I'd also like review in case I'm committing grave meson or CI sins.
14:01gfxstrand: I just threw the CI and meson tags on it too in case someone else wants to take a look
15:44dcbaker: gfxstrand: Reviewed. It looks like everything else I'd noticed had already been spotted by other people. I had one minor question, but otherwise things looked good to me
16:13gfxstrand: dcbaker: You happy with daniels' answer?
16:15dcbaker: gfxstrand: yeah
16:15dcbaker: locking to an RC makes me nervous, but I guess it isn't too big of a deal to update it to a non-rc later
16:15gfxstrand: Would you look at that! I have a 32-bit driver :tada:
16:15gfxstrand: dcbaker: Yeah, I'm fine with bumping to a real version the moment the RC is done.
16:17dcbaker: sounds like a plan to me
16:17gfxstrand: I should probably test said 32-bit driver before I declare total victory but the fact that it linked is encouraging.
16:19alyssa: dcbaker: btw, is clc on i386 going to kabloom?
16:20dcbaker:hopes not
16:22alyssa: k
16:22alyssa: ty
16:26gfxstrand: Okay, we're assigning this mess to Marge.
16:27gfxstrand: Looks like there's two things ahead of it in the queue.
16:27gfxstrand: Something something a watched MR never merges...? ¯\_(ツ)_/¯
16:29alyssa: real
16:55mattst88: I'm working on updating vulkan-cts from 1.3.6.0 to 1.3.7.1 in ChromeOS and 1.3.7.1 seems massively slower than 1.3.6.0 -- is that known or expected?
16:56Sachiel: shader object tests got added there, I think
16:56Sachiel: so there's roughly double the number of tests
16:56mattst88: okay, thanks
16:57Sachiel: my usual deqp-runner runs on one machine went from ~1:10 hours to ~2. 50 extra minutes of largely NotSupported tests
16:57mattst88: looks like on a TGL 1135 the estimated duration goes from 1:15 to like 5 hours :(
16:57Sachiel: that... is a bit too much
16:57daniels: mattst88: yep, can confirm
16:58daniels: that's the fast one too. 1.3.7.0 was worse
17:00mattst88: ouch
17:03mattst88: are there any significant perf improvements in deqp-runner since 0.16.1?
17:18gfxstrand: mattst88: Yeah, ESO did a number on the CTS
17:19DemiMarie: Why do e.g. browsers not have VA-API support?
17:30alyssa: 7
17:30alyssa: the number it did was 7
17:30alyssa: ("7 what?" "7.")
17:32mattst88: DemiMarie: I think FF and Chrome do
17:35DemiMarie: mattst88: Chrome doesn’t support it officially.
17:37DemiMarie: How useful is acceleration for free codecs only.
17:39DemiMarie: If acceleration with free codecs only is not worthwhile, then the answer is probably flatpaks from places where software patents are invalid.
17:45Lynne: it's useful now that av1 has become somewhat widespread
17:47gfxstrand: dcbaker: It'd be cool if you could take one more look at the top patch.
17:47gfxstrand: Unless you trust me to write meson...
17:47gfxstrand: (Narrator: He really shouldn't)
17:48gfxstrand: If you're happy with that, I'll rebase it in so my git branches never existed
18:02jenatali: Ugh. Why is there a "create merge request" button on an issue? How is that ever a useful thing to do straight from an issue page?
18:07gfxstrand: I don't know...
18:10daniels: it's primarily intended for one-liners and smaller changes, where you can usefully and quickly do it from the web IDE
18:10daniels: Mesa is obviously not that project
18:20Company: I use it for docs typos or updates of links in docs all the time
18:23jenatali: I mean, I get going to the web editor first and creating a MR from there, but starting from an issue seems wrong 🤷♂️
19:07greenjustin: DemiMarie: Chrome definitely uses VA-API. https://source.chromium.org/chromium/chromium/src/+/main:media/gpu/vaapi/
19:20HdkR: Would be nice if Chrome had runtime selection between vaapi and v4l2 rather than compile time
19:23greenjustin: Are there any devices that support both simultaneously?
19:23HdkR: Bigger issue is packaging, you have to select one versus the other
19:25gfxstrand: Are there non-Intel devices that support va-api?
19:25greenjustin: Ah, I see why that would annoying for mainline.
19:25greenjustin: AMD
19:26gfxstrand: I mean, generally anything you're likely to see on x86 isn't going to have v4l2 and anything you're likely to see on arm isn't going to have va-api
19:26gfxstrand: So it's maybe not as big of a problem as it sounds
19:26gfxstrand: It's still pretty terrible that they have code for both and can't select at runtime.
19:28greenjustin: Cuts the binary size a little I suppose.
19:29mareko: VAAPI is the main video API for AMD
19:29airlied: vulkan video will solve it all :-P
19:30mareko: ok, I'll hold your beer (and drink it)
19:31greenjustin: I think we just need more video APIs in general. Two isn't enough to maintain, we gotta pump up those numbers :-P
19:32mareko: 3
19:32mareko: VDPAU and OpenMAX
19:32mareko: and the latter is required by Android
19:32mareko: and then Vulkan, so 4
19:33greenjustin: Still too few. We need at least a dozen competing standards imho.
19:33anarsoul: mareko: NVDEC/NVENC?
19:33mareko: 4 non-vendor-specific ones
19:33anarsoul: and for v4l2 there are stateful and stateless decoders
19:35greenjustin: Yeah and I think you can make the case that stateful V4L2 isn't exactly a single API
19:35Company: https://trac.ffmpeg.org/wiki/HWAccelIntro#PlatformAPIAvailability says you've seen nothing yet
19:36mareko: I've seen AMF, that's enough for me
19:37mareko: it should say Y for VAAPI on AMD
19:37Company: mareko: while you're here and talking about video stuff
19:38Company: mareko: I've been playing with imprting dmabufs into EGL/Vulkan and AMD has this annoying stride limit
19:38mareko: indeed
19:38Company: mareko: what's the recommended way to deal with that?
19:38mareko: set it to 256
19:38Company: assuming I can't do that
19:38mareko: or rather aligne to that number
19:39Company: because I get the dmabufs from pipewire or wherever
19:39emersion: ideally there would be stride negotiation
19:39airlied: tell them to set it to 256
19:39Company: also, how would I know that requirement? Vulkan and EGL don't tell me - or I haven't found it
19:40emersion: (1) travel to the future (2) use buffer allocation constraints
19:40airlied: I think it's one of those just make everyone use 256, and hope hw manufacturers don't go 512
19:41mareko: gfx6-9 can set any stride that's reasonable (not byte alignment by small enough that it shouldn't bother you), gfx10.1 (Navi1x) must use 256 alignment, gfx10.3-gfx11.x can set any N*256 alignment, in the future it will be dropped to N*128
19:42mareko: *but small enough
19:43mareko: you can also import the image as a buffer and do your own addressing in the shader
19:43Company: in Vulkan I can probably also allocate a new image and doing a buffer copy
19:44mareko: that too
19:44Company: but I was mostly wondering what the recommended way to deal with it is from your side
19:44Company: so I don't implement something that's considered a bad idea
19:45mareko: the stride alignment is a hw constraint, nothing you can do about
19:45Company: is 256 the highest one there is?
19:46Company: or do some drivers require even more?
19:46airlied: the recommended way is to realise we screwed up and go back and add stride negotiation
19:46airlied: but now 256 seems to be where things are at
19:47Company: I'm considering filing bugs against pipewire etc to make all its plugins use 256
19:47mareko: the best workaround is to set the image width in bytes to N*256 in the source device
19:47gfxstrand: We hard-code 256 lots of places
19:47gfxstrand: Is that good? No. Does it work? Yes.
19:49Company: so the best solution is (1) try and make everyone use 256, (2) write a generic fallback that handles the cases where that doesn't work
19:49mareko: yes
19:51mareko: (3) get a time machine and tell hw folks what to do 7 years ago
19:52gfxstrand: And hope they listen. (-:
19:52Company: ndufresne: ^^^ backlog of last 15 minutes might be interesting for you
19:55ndufresne: oh
19:59ndufresne: Yeah, you can try and do system wide 256, happy patching though ;-P
19:59ndufresne: V4L2 have stride negotiation, but some highly used driver don't implement it for no good reason (UVC)
20:00ndufresne: I'm not really aware of HW that can't deal with that kind of alignment, but CODEC and blitter engineers can be creatives
20:01ndufresne: and you basically depends on driver maintainer to fix it here ;-P
20:01Company: ndufresne: it's mostly about "if given the choice, make sure that choice is taken"
20:02Company: once it's common enough, people will remember to do it automatically
20:02ndufresne: yeah, "if given the choice"
20:02ndufresne: you might hit a wall with ARM devs, that consider RAM precious
20:02ndufresne: (even though the RAM delta here is marginal I think)
20:03Company: my camera does 640x480 - that'd be 20% extra
20:03ndufresne: anyway, this "idea" will require tones of patching, its possible, but not as easy as when everything is concealed into mesa
20:03gfxstrand: 256B, not 256 pixels
20:04ndufresne: if you camera do I420 ?
20:04Company: gfxstrand: everything uses NV12
20:04gfxstrand: Right...
20:04gfxstrand:is thinking RGBA8
20:04ndufresne: kind of, cameras more naturally do packed, like YUY2
20:04gfxstrand: but noooo those fancy video people and their YUV formats...
20:04gfxstrand: hehe
20:04Company: I think most drivers handle RGBA8 fine
20:04Company: with any stride
20:05ndufresne: in CODEC, sometimes reference frames format is stiff, but most of the time you endup using post processed buffer, and these are usually very flexible
20:05jenatali: gfxstrand: Windows has va-api support now, including a VaOn12 video mapping layer :)
20:06ndufresne: indeed, saw couple of gst patches recently
20:06Company: though all the RGBA8 I got so far was from inside Mesa - with a few exceptions where I manually created something with /dev/dma_heap
20:08ndufresne: which make sense no ?
20:09ndufresne: cameras and codec all works mostly in YUV, and VA postproc are most of the time implemented by Mesa (on AMD I think these are just shaders)
20:10daniels: jenatali: woah, vaon12 shipped?
20:10Company: still, it's a bit meh that stride 1 works for R8 buffers, but not for NV12
20:10jenatali: Yep
20:11jenatali: daniels: https://devblogs.microsoft.com/directx/video-acceleration-api-va-api-now-available-on-windows/
20:23kisak: jenatali: it's probably nothing but ... devblog has LIBVA_DRIVER_NAME=vaon12 [...] vaon12_drv_video.dll and looking at my mesa build log, I see /usr/lib/x86_64-linux-gnu/dri/d3d12_drv_video.so in mesa-va-drivers https://launchpadlibrarian.net/689693254/buildlog_ubuntu-lunar-amd64.mesa_23.2.1~kisak1~l_BUILDING.txt.gz
20:25jenatali: kisak: I believe the Windows target is different than the Linux target, yeah
20:25gfxstrand: jenatali: Vulkan video in dozen when?
20:25jenatali: I haven't looked at it... might be easy, might be nigh impossible
20:26kisak: oh, that's where my undercaffinated brain misfired, win32/windows versus WSL2/windows. Oops.
20:26jenatali: gfxstrand: As for when, once someone important needs Vulkan video
20:27jenatali: kisak: Right, this blog is primarily about native Win32 support. Pretty sure we had a different one a while back for WSL video hardware acceleration
20:28jenatali: Oh, "a while back" being 2 days earlier lol
21:00daniels: jenatali: nice!
21:24kchibisov: Is it valid for glGetString to return a NULL?
21:25karolherbst: yes
21:25karolherbst: "If an error is generated, glGetString returns 0. "
21:26kchibisov: huh, I was searching for NULL or something, but it just says 0 for pointer.
21:26kchibisov: ¯\_(ツ)_/¯
21:39mattst88: FWIW, it looks like the number of tests executed in vulkan-cts-1.3.6.0 is 1077400 and the number in 1.3.7.1 is 3974726 /o\
21:52jenatali: That's a big oof
21:53airlied: yeah cts itself spend a lot of time just generating test names now
21:53airlied: make sure to build release cts, otherwise you hit this horrible string compare of every test name at start
21:56robclark: mattst88: related, https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26015 .. hopefully in the slightly longer term deqp prunes some tests
21:59mattst88: interesting, thanks
22:40robclark: alyssa: ../src/asahi/clc/meson.build:11:18: ERROR: Unknown variable "idep_mesaclc".
22:41jenatali: https://gitlab.freedesktop.org/mesa/mesa/-/jobs/51124087 :(
22:44robclark: alyssa: fwiw, might be related to having -Dtools=all but not something else (tools=all was what was pulling asahi into the build)
22:52kode54: who gave intel tests only 30 seconds
22:53alyssa: robclark: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26017
22:53alyssa: if that fixes please merge
22:55robclark: looks plausible.. lets see
22:59robclark: yeah, that does the trick..
23:00robclark: I guess -Dtools=all could be a bit more clever about not building tools for drivers that are not built, but that is probably more than a couple line fix (and pre-existing bug/misfeature)