01:13DavidHeidelberg: karolherbst: Adreno has only rotate-left (ROT inst., enough for CL).. would be ok just enable the flags?
01:13karolherbst: DavidHeidelberg: in a separate commit as the one in my MR needs to be backported
01:13karolherbst: or uhm.. applied to stable branches anwyay
01:13karolherbst: DavidHeidelberg: btw, what bit sizes?
01:14karolherbst: mhhh
01:14karolherbst: actually
01:14karolherbst: nir does optimize towards uror if enabled
01:14karolherbst: though.. I assume it's still relatively cheap implementing uror on top of urol?
01:15DavidHeidelberg: tbh, not much idea, just looked into your MR and found "unused" ROT inst. and while proprietary Adreno has CL support..
01:16karolherbst: I wonder if you can do a negative roll to get the other direction...
01:16DavidHeidelberg: I think it look like 16+32 support
01:16karolherbst: but if it needs to be split (uror/urol support), I'd rather do it in a new MR anyway
01:17karolherbst: would be good to first figure out what the hw can actually do
01:21DavidHeidelberg: karolherbst: sure the MR look good as is :)
01:22alyssa: alu is cheap o:)
01:26karolherbst: DavidHeidelberg: does adreno have a funnel shift?
01:30DavidHeidelberg: I don't think so, at least from docs/code
01:30karolherbst: mhhh
01:31karolherbst: it's kinda weird to add a rotate-left but not a rotate-right...
01:31DavidHeidelberg: maybe no-one needed it yet (no OpenCL until lumag started writing it), so it's undocumented..
01:32karolherbst: I actually wonder...
01:33alyssa: alu is cheap o:)
01:33karolherbst: if you left rotate by -1, you right rotate by 1, no?
01:34alyssa: with sm5 semantics (and 2's complement), yes i think so
01:34karolherbst: I wonder if that's true for any rotation
01:35karolherbst: worst case the backend puts a neg into the mix, if we are nice, we do that in opt algebraic...
01:35karolherbst: but it's kinda pain
01:35karolherbst: aren't we at the point where we need a better solution instead of doing `struct nir_shader_compiler_options`? :D
01:36alyssa: iirc, the original plan was that drivers would bring their own nir algebraic pases
01:37alyssa: maybe have common rules to choose from to paste together as desired?
01:37alyssa: obviously that's not the path we took though
01:37alyssa:shrug
01:37alyssa: there are worse things
01:37karolherbst: I mean.. that's what we kinda have right now, no? :D
01:37karolherbst: just different
01:38karolherbst: with nir_shader_compiler_options you select the rules you want to have (opt_algebraic)
01:39karolherbst: I just wonder if drivers filling a table with supported bit sizes of nir_op's would be the more sane way of dealing with all of this here...
01:39karolherbst: oh well...
01:39karolherbst: not that it matters much
01:45DavidHeidelberg: hmm, only SHFL, not SHFR. So something like negative value is probably the way to go
01:46DavidHeidelberg: and it should support 16 and 32 bit
01:52DavidHeidelberg: hmm, hold a sec, it's not like on nvidia it can be adjusted by subop.. so not sure how it's called in adreno driver :(
09:09vsyrjala: demarchi: "dim: line 187: [: -eq: unary operator expected"
09:22jani: meh, I've missed the pull request with that change :(
10:34karolherbst: anybody with some knowledge about linker/compiler flags (-fPIC specifically) mind giving this a thought? https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25568
10:34karolherbst: I'd rather have some explicit review on that part before forcing `-fPIC` generally
10:40karolherbst: jenatali: one thing I was thinking about is to add a `clc_init()` with potentially returning a `struct clc_context` object to cache some calculation made clc_compile_to_llvm_module, but also elsewhere. I don't think it's really worth it from a compilation overhead perspective, though we do a couple of syscalls in there so it might actually matter for smaller kernels... ever played around with that?
10:47rgallaispou: Hi
10:47rgallaispou: I've a dependency in my serie [1] which is merged in linux-next. I am based on drm-misc-next which does not include it yet, and cherry-pick the dependency manually. When generating the patches I cannot specify the base commit for the dependency (git format-patch --base='...') because it is on another tree. So I get striked by the kernel test robot.
10:47rgallaispou: How should I handle it ?
10:47rgallaispou: Should I base it and test directly on linux-next to get the dependency right, or was it correct the way I did previously ?
10:47rgallaispou: [1] https://lore.kernel.org/lkml/170532917312.565061.10381473169126019945.robh@kernel.org
13:03jenatali: karolherbst: nah, I haven't seen that overhead be a problem I think
13:03karolherbst: yeah.. on windows it's fine, but now that I want to use `dladdr` and `realpath` on Linux it might be significant enough to shave off a few seconds of CL CTS runtime...
13:03karolherbst: but haven't checked yet
13:04karolherbst: realpath is quite expensive as it resolves all symlinks in the path, so it has to do quite a few syscalls like `stats` on each part of the path and the likes... but compared to the full compilation I'm sure it's still entirely irrelevant
13:05karolherbst: but who knows
14:08demarchi: vsyrjala: https://gitlab.freedesktop.org/drm/maintainer-tools/-/merge_requests/29
14:34HdkR: realpath can get /real/ spicy over an NFS share if the metadata isn't cached yet on the host
14:37HdkR: Although after first run of something, that's usually less of an issue
15:17karolherbst: HdkR: yeah.. though I hope nobody runs cl on a system where clang lives on NFS storage
15:19karolherbst: or rather libclang
15:19karolherbst: HdkR: though I guess if you do it 1 time or 1000 times doesn't really matter much here then, right? :D
15:20daniels: karolherbst: CI
15:21karolherbst: mhhhh
15:21karolherbst: but I guess the same thing applies, once it's cached it's fine
15:21karolherbst: but if you have weirdo symlinks inside your /usr/ hierachy, it's also kinda your fault
15:23tomeu: bl4ckb0ne: looks like at least one header is missing from the xtensor package:
15:23tomeu: /usr/include/xtensor/xrandom.hpp:23:10: fatal error: xtl/xspan.hpp: No such file or directory
15:23tomeu: (from https://gitlab.freedesktop.org/tomeu/mesa/-/jobs/54042894)
15:23bl4ckb0ne: ill have a look later today, I noticed some issues regarding their release and the dependencies
15:36tomeu: thanks!
15:42bl4ckb0ne: https://pkgs.alpinelinux.org/contents?branch=edge&name=xtl&arch=x86_64&repo=testing xspan should be there
15:42bl4ckb0ne: the file is in xtl since 2018
15:43bl4ckb0ne: maybe an issue in the include path folders or something wrong in the pkgconfig? those are header only libs
15:43tomeu:scratches head
15:43tomeu: yeah
15:55daniels: can someone with an opinion on cmake version requirements in piglit please comment on https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/796
15:57daniels: it's present in debian oldstable and the old ubuntu LTS so should be fine, but last time I tried to increase a dependency version the policy seemed to be that it was completely unacceptable to require anything released in the last 5 years, other than libdrm
15:58karolherbst: daniels: I think for piglit that's fine...
15:58karolherbst: I think if your use case is to run piglit main on 5 year old software, you might want to either pin your piglit version or reconsider your life choices
15:59karolherbst: however
15:59daniels: shrug, that's the policy for mesa
15:59karolherbst: you don't need custom cmake modules for finding pkg-config based deps
16:00daniels: kinda-sorta
16:00daniels: Wayland relies on wayland-scanner to parse XML for extension definitions and generate C, so for cross-compiling you want to discover wayland-scanner and wayland-protocols from the host
16:00karolherbst: ohh, you want to use helper stuff for wayland codegen things...
16:00karolherbst: mhh
16:01karolherbst: maybe we should pull those into wayland git repos...
16:01karolherbst: and not make everybody write their own wrappers
16:01emersion: meh
16:01emersion: i'd rather not add helpers for each and every build system
16:02daniels: for Meson it's pretty trivial, for autoconf we do install wrappers into aclocal to use, but the state of the art for cmake seems to be to find a module somewhere and vendor it into your tree
16:02daniels: I also, specifically, don't want to spend any more time on CMake than is strictly necessary
16:02karolherbst: yeah...
16:02emersion: ^
16:03daniels: doing the libclc spirv stuff was at least 20x my lifetime quota
16:03karolherbst: :D
16:03karolherbst: fair enough
16:09bl4ckb0ne: are dmabufs available in android? I'm looking at a way to import a buffer into vk without using AHardwareBuffer
16:33alyssa:doesn't understand why anyone wants anything older than debian stable
16:34karolherbst: *unstable :P
16:34karolherbst: but yeah.. 5 years is kinda sketchy
16:35karolherbst: I mean... nvk needs rust 1.73 ๐
16:35karolherbst: so that's going to be fun if anybody comes around and claims "but 5 years"
16:57mupuf: daniels: my policy is that if it is in Debian stable, the thing is already too old
17:01mupuf: End users shouldn't use them, and especially not devs
17:01daniels: mupuf: this is not a universally-shared opinion
17:01mupuf: Haha, indeed!
17:01karolherbst: well.. luckily it's about piglit, not mesa here
17:02mupuf: But people in the know know that stable distros sell false promises unless they pay for it
17:03karolherbst: I wished more would know that
17:04mupuf: And even for paid ones, what you pay for is developer time to provide guidance and emergency fuxes
17:04karolherbst: well.. and you pay for testing of updates
17:04mupuf: But that only covers known issues
17:04karolherbst: and regressions
17:04karolherbst: but yeah
17:04mupuf: Yep
17:05karolherbst: better than what LTS distros do :P
17:05mupuf: +9000
17:05mupuf: Worse, Debian doesn't even update packages to their current LTS before releasing a new stable
17:05karolherbst: I think the issue is that they don't care about upstream LTS anyway
17:06karolherbst: I wished they would, but...
17:06mupuf: It's all a show ;)
17:06karolherbst: anyway, nothing wrong with debian for fire&forget use cases
17:07karolherbst: or if you don't necessarily care about either
17:07mupuf: Look, we have 70k packages!! Oh, they aren't outdated, they are just "stable"
17:07karolherbst: or if stuff not moving is your use case
17:07mupuf: And even unstable has years old packages :D
17:07mupuf: Yeah, Debian should focus on server use cases
17:07karolherbst: I think it's fine, we just all have a different opinion on what "unstable" means
17:07mupuf: Drop the rest
17:07karolherbst: or uhm..
17:07karolherbst: "stable"
17:10mupuf: </rant>
17:11mupuf: I wouldn't get so upset if users did not come expect developers to support their insanity
17:11karolherbst: well.. most users seem to be fairly understanding
17:11karolherbst: I think last year I only had one "but what I'm supposed to do" case
17:11mupuf: But hey, it is 2024, if your distros doesn't provide packages: fire up podman
17:12mupuf: Or distrobox and develop there
17:13karolherbst: I mean.. that's kinda an option that docker/podman/flatpak make distributions pointless overhead (like having 1000, not just let's say 10), because of their inability to change
17:13daniels: mupuf: it's not about users - iirc it was mareko and mattst88 saying that we couldn't require newer wayland-protocols until it was in LTS
17:13emersion: well, depends which distro
17:13karolherbst: yeah... but that's why I said "10", not "1" :P
17:14emersion: i'm working on a libva patch which fixes an issue, which will take a while to ship in a release, and i think a very long while to ship in flatpak
17:14emersion: if at all
17:14karolherbst: but yeah....
17:14mupuf: Ubuntu LTS or Debian stable?
17:14emersion: like, all flatpak packages will need to bump their SDK
17:14daniels: mupuf: iirc AMD mostly runs Ubuntu LTS-1
17:15karolherbst: yeah.. that SDK thing is I think what needs to be sorted out
17:15emersion: so flatpak is more of a hurdle in my case
17:15karolherbst: or at least give a stability guarantee, that you can always update the SDK
17:15karolherbst: or update within declared constraints
17:15karolherbst: but anyway
17:15karolherbst: things we'll figure out
17:20mattst88: daniels: FWIW I have no memory of being on that side of any similar discussion -- seems like I've usually been on the other side in fact
17:20daniels: mattst88: sorry for the slander then :)
17:21mattst88: heh :)
17:24mattst88: emersion: I suspect you've been busy with sourcehut stuff lately -- are you planning to retag pixman as 0.44.0?
17:24AnuthaDev: Hello! Does the DRM subsystem still take part in Xorg endless vacation of code?
17:25AnuthaDev: I was looking here: https://www.x.org/wiki/SummerOfCodeIdeas/
17:25AnuthaDev: I couldn't find much discussion about Xorg EVoC online so asking here. I am interested in some ideas listed in the DRM TODO
17:25karolherbst: AnuthaDev: we can't take any students atm
17:25karolherbst: (should probably update the wiki)
17:25AnuthaDev: Ah, I see
17:26AnuthaDev: tbh I was suspecting it given the lack of online activity about it
17:26AnuthaDev: unfortunate nonetheless
17:27karolherbst: yeah... maybe it will be all sorted out this year
17:27AnuthaDev: Hope so :)
17:28mattst88: karolherbst: remind me why we can't take students now?
17:29karolherbst: SFC stuff
17:29mattst88: ahh, right. switching from SPI to SFC
17:29karolherbst: yes
17:29karolherbst: kinda have to make real and proper contracts with students about work like that
17:29karolherbst: so yeah...
17:30mattst88: AnuthaDev: FWIW, I haven't seen many students do EVoC -- I think it's mostly been useful for cases where a student is already involved in the project
17:31karolherbst: I had an EVoC student being new working on rusticl tho
17:32AnuthaDev: Well I would've participated via GSoC but have already exhausted my limit of 2
17:32karolherbst: and they were more or less new to the project, well.. kinda
17:32karolherbst: mhh yeah...
17:33karolherbst: maybe sima is able to give an ETA on when we'll be able to take EVoC students again?
17:34AnuthaDev: I actually tried emailing evoc@foundation.x.org like 4 weeks ago, but never received a response...
17:34karolherbst: huh
17:34karolherbst: you got two replies, no?
17:35karolherbst: wait..
17:35karolherbst: alyssa messed up replying and sima didn't fix it :D
17:35AnuthaDev: Yeah, I just checked, no replies
17:35sima: ugh
17:35karolherbst: I'll forward :D
17:35karolherbst: done
17:36sima: ugh we haven't updated the evoc page yet I think :-/
17:36karolherbst: sima: anyway, we can still do EVoC via SPI now?
17:37sima: karolherbst, yeah I think we should be set up now
17:37sima: just need to make it clear that spi requires a signed contract, and the thing internship cannot start before that's sorted out
17:37karolherbst: okay, and here I thought we have to wait until the SFC stuff is done :D
17:37AnuthaDev: Oh damn I got a reply from alyssa? They're my inspiration ๐
17:39AnuthaDev: Also, if I didn't mess up the email address I emailed sima too ๐ ๏ธ
17:39sima: my email situation is a disaster unfortunately
17:40karolherbst: stop doing email then, it solves all problems :P
17:40sima: but yeah I got it I think, somewhere, but I failed to realize that the reply I typed on the other thread went nowhere :-/
17:40sima: karolherbst, currently at the "stop doing" part :-P
17:40AnuthaDev: Because of the timing being during holidays I didn't send followup messages....
17:41sima: AnuthaDev, so you got what alyssa & me wrote through karolherbst now?
17:41AnuthaDev: Yep
17:41sima: also sorry for this mess :-(
17:41karolherbst: email is hard
17:42AnuthaDev: Ah its alright :)
17:42sima: ok need to prep dinner now, kinda wanted to get that started an hour ago ...
17:42karolherbst: mood
17:42karolherbst: just with everything today
17:43sima: I did manage to pull out the salad bowl but then got distracted ...
17:43karolherbst: I decided I'm not able to cook today
17:44karolherbst: welll
17:44karolherbst: s/decided/accepted/
17:46sima: yeah there's days where accepting stuff aint happening is too much ...
17:46karolherbst: oof
17:46karolherbst: I got pretty good at it
17:49emersion: mattst88: hm, still not sure whether that's what we should go for
17:51mattst88: emersion: I don't see a ton of value in the even-odd stable-unstable split for pixman anymore; but also switching away from it seems like more work
17:55alyssa: AnuthaDev: :-)
17:57AnuthaDev: ๐๐
17:58alyssa:isn't good at email
17:58AnuthaDev: How to send these sort of "narrator" messages? I am very new to IRC
17:58karolherbst: /me
17:59karolherbst:wonders if AnuthaDev meant that
17:59AnuthaDev:check test
17:59AnuthaDev: Oh it works, cool!
18:00AnuthaDev:feels blessed he gets to eat mom's cooking
18:00alyssa:recommends against saying everything in 3rd person, though
18:00AnuthaDev:thinks its common in anime probably
18:01AnuthaDev: ok i'll stop lol
18:04AnuthaDev: OK, so from what I understand I can apply for EVoC , but I'll need a project plan and a mentor. Correct?
18:06AnuthaDev: And the contract will need to be sorted beforehand...
18:07karolherbst: yeah
18:08karolherbst: well
18:08karolherbst: the contract needs to be sorted before you start the work
18:08karolherbst: it's basically to protect you from doing unpaid work
18:08karolherbst: but you can work on small tasks to get familiar with the projects/code base you want to do the EVoC with
18:09karolherbst: and mentors are generally more open for the program if they see the student being capable beforehand
18:09AnuthaDev: Yep, I'll need to do a lot of "unpaid work" to even get started ๐๏ธ
18:09karolherbst: well...
18:09karolherbst: "a lot" :P
18:11AnuthaDev: No experience below userspace ๐ ๏ธ
18:11karolherbst: well.. you don't have to work on the kernel
18:11karolherbst: it can also be mesa
18:11karolherbst: or anything in xorg/freedesktop
18:11AnuthaDev: But you see, I want to work on the kernel :)
18:11karolherbst: fair :)
18:11karolherbst: do you have a second machine?
18:12AnuthaDev: Not at the moment, had an old laptop which is currently broken
18:12karolherbst: mhhh
18:12AnuthaDev: Am thinking of getting a pi 5
18:12karolherbst: ohh, that might be good
18:12karolherbst: if you want to get one anyway
18:12karolherbst: kernel development without a serial console can be pain
18:13AnuthaDev: From what I see on mesamatrix.net I can even work on the pi's GPU drivers?
18:13karolherbst: sure
18:13karolherbst: might want to speak with the devs there and figure out what would be a goo beginners task
18:14AnuthaDev: I should've messaged the IRC earlier. So many cool people around.
18:15karolherbst: apinheiro: ^^ tldr: EvoC student might be interested working on the v3d driver, though not sure if you are the best person to ping for the kernel side of things
18:19AnuthaDev: As opposed to email... I spent my New Years wondering whether I had spelled sima's email correctly :P
18:19sima: AnuthaDev, for kernel rpi gpu driver ping melissawen and mairacanal
18:20AnuthaDev: Understood.
18:24AnuthaDev: Oh I had a question btw, how do you develop for devices that you don't have physcially for testing?
18:24AnuthaDev: Like : https://dri.freedesktop.org/docs/drm/gpu/todo.html#convert-logging-to-drm-functions-with-drm-device-parameter
18:25AnuthaDev: > Maintainer of the driver you plan to convert
18:25AnuthaDev: Do i just send patches hoping that they are correct and the maintainer would test them?
18:40alyssa: Ideally you'd get the hardware
18:40alyssa: AnuthaDev: ^
18:41AnuthaDev: Hmm, that sounds expensive
18:41alyssa: yeah..
18:41alyssa: in mesa we have drm-shim to mock devices which helps here
18:41alyssa: don't think kernel has an equivalent /
18:41alyssa: :/
18:44AnuthaDev: I should probably stick to focusing on one driver then
18:45AnuthaDev: Either the one in my laptop or a pi 5
18:47AnuthaDev: "AMD RX Vega 7"
18:48Company: I vote pi 5
18:49Company: my pi 4 that I use for testing needs lots of love
22:01apinheiro: karolherbst, sorry, has just seen your ping now (just when I'm about to disconnect)
22:02apinheiro: for the kernel side of things, perhaps maira (or even melissa) are more suited
22:02apinheiro: not sure if she will have time for an Evoc though
22:03apinheiro: karolherbst, maira is mairacanal at #videocore
22:03apinheiro: oh, she is here too
22:03apinheiro: mairacanal, ^
22:03apinheiro: just in case you were not connected then:
22:03apinheiro: "<karolherbst> apinheiro: ^^ tldr: EvoC student might be interested working on the v3d driver, though not sure if you are the best person to ping for the kernel side of things"
22:05apinheiro: and now going to sleep
22:55JoshuaAshton: sima: Bump on bubbling fence errors to userspace :)
23:04gfxstrand: Ooh, spicy!
23:07JoshuaAshton: gfxstrand: You want in? :p This could also allow us to do away with check_status in Mesa VK Common Code (which also isn't used by RADV anyway as it doesn't function with soft recovery)
23:07gfxstrand: I'd love it if we can somehow verify that the only errors returned are ones generated by our context somehow.
23:07gfxstrand: But I've not looked at any of the proposals.
23:08gfxstrand: The problem with general error propagataion is that dma_fences get passed around so if you're not careful you can end up with errors from other contexts in your context.
23:09gfxstrand: We had bugs for a while where a GPU hang on Intel in an app would kill Xorg.
23:09JoshuaAshton: Yeah, eg if you imported a drm syncobj and it resulted in Mesa saying VK_ERROR_DEVICE_LOST and marking the decide as lost because it had an error
23:09JoshuaAshton: That would be a problem
23:10gfxstrand: Oh, it's worse than just imports
23:10JoshuaAshton: VK_SUCCESS works but doesn't give enough info for eg. a compositor to discard a frame because it's fence actually had an error and was garbage. (Unless there was some way to query it explicitly)
23:10gfxstrand: You could have some shared buffer somewhere that causes implicit fence imports due to memory management stuff.
23:10JoshuaAshton: gfxstrand: Oh?
23:10JoshuaAshton: Yeah...
23:10gfxstrand: Even if you're using explicit sync
23:10gfxstrand: :D
23:11gfxstrand: You have to assume any dma_fence from any context can arbitrarly land in any other context even if the two don't know about each other according to userspace.
23:11JoshuaAshton: Perhaps we don't actually surface it through any client API eg GL/VK, and instead return VK_SUCCESS (like AMD does now for signalled fences with errors), and allow the application to check its imported fences/syncobj explicitly?
23:12JoshuaAshton: I'd propose VK_TIMEOUT but that's forbidden if timeout is UINT64_MAX :(
23:13gfxstrand: Taking a step back... I think the idea of being able to VK_ERROR_DEVICE_LOST on vkWaitEvents or vkWaitSemaphore is a good one.
23:13gfxstrand: The question is how we go about making it safe inside the kernel.
23:14gfxstrand: We need some way of specifying that you only care about errors from your own VkDevice, whatever that is.
23:14JoshuaAshton: I think that should only be done if the error was signalled by the current context
23:14JoshuaAshton: yeah
23:14gfxstrand: Which, annoyingly, may not be just the DRM fd. At least not on RADV.
23:15JoshuaAshton: Indeed, that's on physical device level
23:15JoshuaAshton: (As much as I disagree with that...)
23:15gfxstrand: Restricting to your DRM FD wouldn't be too hard, I don't think. We'd need some extra tracking but it's probably tractable.
23:15gfxstrand: Doing it per-context would probably mean driver-specific syncobj wait ioctls which would suck.
23:19gfxstrand: That or some sort of per-engine cookie that gets passed around that lets us identify which queue generated an error.
23:20gfxstrand: That sounds problematic for security, though.
23:20gfxstrand: Passing global things to clients seems bad
23:20gfxstrand: I guess we could have a drm-fd-local thing that gets passed around
23:20gfxstrand: Feels annoyingly complicated but probably doable.
23:35JoshuaAshton: Yeah, makes sense
23:38daniels: basically just dmabuf/fence again, but this time for identifying contexts