00:07fdobridge_: <rinlovesyou> that's on x11 btw, on wayland it doesn't seem to work at all, getting this on wayland with the headset not reacting at all
00:07fdobridge_: <rinlovesyou> https://cdn.discordapp.com/attachments/1034184951790305330/1204579251043442758/image.png?ex=65d53ed9&is=65c2c9d9&hm=519c75ece47628096f334e82ba52b1b644f91ae3c2251e66b539d9527997ad39&
00:14fdobridge_: <rinlovesyou> i just updated to 6.7.4 and these errors do not appear in dmesg anymore, although it seems unrelated
00:33fdobridge_: <!DodoNVK (she) 🇱🇹> KDE or GNOME?
00:33fdobridge_: <rinlovesyou> kde
00:42fdobridge_: <rinlovesyou> on gnome xorg it's the same result
00:42fdobridge_: <rinlovesyou> gnome wayland however
00:43fdobridge_: <rinlovesyou> not sure how to describe this, direct mode does not seem to be working :Hehe:
00:43fdobridge_: <rinlovesyou> https://cdn.discordapp.com/attachments/1034184951790305330/1204588206784520192/image.png?ex=65d54730&is=65c2d230&hm=6fa6de14f2995a9c9e2a5981d7fe07e1390d98e7d40d947023ae5f76b6996ae2&
00:45fdobridge_: <rinlovesyou> looks pretty awesome though
00:53Lyude: weee, I think I'm slowly starting to understand how the general pattern for rust bindings goes
00:55fdobridge_: <mohamexiety> yeah those are some neat glitches
01:30fdobridge_: <airlied> at least stk vulkan works 😛
01:32fdobridge_: <zmike.> That's something
01:48fdobridge_: <rinlovesyou> We're definitely closer to functional vr than proprietary :Hehe: on xorg the headset lights up, it's just not properly presenting frames yet
01:50fdobridge_: <airlied> guess I should take my vive out
01:55fdobridge_: <rinlovesyou> would be a huge help
01:56fdobridge_: <rinlovesyou> this patch is the starting point
02:08fdobridge_: <babblebones> I came here to address this sooner rather than later, I really didn't want to bug you folks as I know you have enough on your plate without somebody bugging you about specific Vulkan features for NVK
02:08fdobridge_: <babblebones>
02:08fdobridge_: <babblebones> But the moment that direct mode begins working there's going to be a secondary issue of reprojection shaders requiring realtime properties to work.
02:08fdobridge_: <babblebones>
02:08fdobridge_: <babblebones> We were having this issue on RADV and pixelcluster helped mitigate the overwhelming majority of it with that cute little compute tunnel commit in mesa and the kernel. When the GPU is fully saturated with work there remains nothing to spare so that the compute warp shader can't hit its target and the result is the frame in the HMD sticking to your face for an extra frame since it can't properly reproject.
02:08fdobridge_: <babblebones>
02:08fdobridge_: <babblebones> Without this VR is pretty intensely jarring under most normal usage so I wanted to inquire about the status of VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT implementation and any hardware specific opts nvidia offers which could be used to prioritize the compute shader queue in specific over the graphics queue so people don't barf on first contact.
03:54fdobridge_: <Sid> 😲
03:55fdobridge_: <Sid> I need to try this
05:12fdobridge_: <ishitatsuyuki> I saw that Nvidia prop exposes lots of graphics queues but is my understanding correct that they are just multiplexed into one hardware queue by the HWS? Do you know if there is any advantage from HW multiplexing that cannot be done by the app or the kernel?
05:39fdobridge_: <airlied> we will likely eventually expose whatever they do
05:40fdobridge_: <airlied> they afaik do fixed scheduling between the gfx queues, but they may expose priorities
05:46fdobridge_: <ishitatsuyuki> ok, thanks
07:39fdobridge_: <!DodoNVK (she) 🇱🇹> That looks like a PS1 game though
08:40fdobridge_: <!DodoNVK (she) 🇱🇹> What could be the reason for this? I was enabling an output when this happened 🐸
08:40fdobridge_: <!DodoNVK (she) 🇱🇹> https://cdn.discordapp.com/attachments/1034184951790305330/1204708275283562496/nouveau_output_freeze_journal.log?ex=65d5b703&is=65c34203&hm=2e6e227015fa8331ae2c7785ac7ba083818588ca74086f2e324af8f0c789d030&
09:10fdobridge_: <!DodoNVK (she) 🇱🇹> Interesting errors when starting Monado 🐸
09:10fdobridge_: <!DodoNVK (she) 🇱🇹> https://cdn.discordapp.com/attachments/1034184951790305330/1204715783415136298/message.txt?ex=65d5be01&is=65c34901&hm=2871bc6a43efa52be84d545f6994d8a991351315d6218767b3e1f7d2f458b001&
11:55fdobridge_: <rinlovesyou> Oh yeah, if you're using envision you should turn off the debug & curated gui
12:16fdobridge_: <!DodoNVK (she) 🇱🇹> I obviously don't use that
13:46fdobridge_: <dwlsalmeida> Can somebody explain to me what `#define DRF_LO(drf) (0 ? drf)` and friends do?
13:49fdobridge_: <karolherbst🐧🦀> dealing with the drf.h header files
13:49fdobridge_: <karolherbst🐧🦀> it's to extract bits out of the "31:0" or such patterns
13:49fdobridge_: <karolherbst🐧🦀> ehh the numbers
13:50fdobridge_: <karolherbst🐧🦀> you can't look at one macro on its own as it explains nothing
13:50fdobridge_: <dwlsalmeida> the syntax looked weird to me, because `(0 ? foo)` looks like it does nothing, but looking at one expansion ` __set_u32(((th)), ((base_address)), (0 ? 63:32), (1 ? 63:32));;` makes more sense
13:50fdobridge_: <karolherbst🐧🦀> yeah
13:51fdobridge_: <dwlsalmeida> `(0 ? 63:32)` is just a ternary operator right? nothing "special" going on here?
13:51fdobridge_: <karolherbst🐧🦀> correct
13:51fdobridge_: <karolherbst🐧🦀> it's to expand to `32`
13:52fdobridge_: <dwlsalmeida> @karolherbst ty! 🙂
14:16fdobridge_: <!DodoNVK (she) 🇱🇹> xrgears works on nouveau + NVK for me (in the Wayland direct mode with DRM leasing magic) :triangle_nvk:
16:41fdobridge_: <babblebones> Thankyou both, is it possible you could keep me posted on any scheduler/ priority developments on nouveau/NVK? We have a server of a few Gentoo users willing to trial any experimental priority scheduling improvements and report their usability for realtime activities.
16:41fdobridge_: <babblebones>
16:41fdobridge_: <babblebones> I believe AMD is currently utilizing similar fixed behavior @pixelcluster could correct me if I am wrong here, but we do now have that hardware trick of compute tunneling (at least for RDNA hrdware.)
16:41fdobridge_: <babblebones>
16:42fdobridge_: <babblebones> It can't deal with large dispatch situations though where a single shader wave is too heavy and frustratingly we still rarely miss on AMD, I would hope Nvidia is being fairly transparent with documentation requests if you are able to ask how best to handle compute shaders that must be processed as soon as they are received regardless of existing GPU load on the graphics queue.
16:42fdobridge_: <babblebones>
16:42fdobridge_: <babblebones> The best solution may or may not be 1:1 what Nvidia is already doing in the open driver module as a heads-up. We can at least inform you if its functional or not from our end.
16:52fdobridge_: <rinlovesyou> incredible! could you get me a patch to play with? :3
16:53fdobridge_: <babblebones> I believe the intent of the compute tunneling feature was to assist realtime guarantees of scheduling by making them tighter but since no such thing is occurring it instead becomes the guarantee... Working most of the time.
16:53fdobridge_: <babblebones>
16:53fdobridge_: <babblebones> Trying to ensure at least one vendor can get out of this rut and make realtime assurances.
16:54fdobridge_: <!DodoNVK (she) 🇱🇹> It's the same one I sent you actually (maybe you should try to apply it to vulkan-nouveau-git package instead?)
16:54fdobridge_: <rinlovesyou> 🤨
16:55fdobridge_: <rinlovesyou> but doesn't that also just pull from source?
16:56fdobridge_: <rinlovesyou> the only difference i can see is that it applies two patches
16:56fdobridge_: <rinlovesyou> ```
16:56fdobridge_: <rinlovesyou> nak-iadd3-imad.patch
16:56fdobridge_: <rinlovesyou> nvk-memory-budget.patch
16:56fdobridge_: <rinlovesyou> ```
16:56fdobridge_: <!DodoNVK (she) 🇱🇹> Some of those patches may or may not make a difference (but I'm not sure)
16:57fdobridge_: <rinlovesyou> on wayland i couldn't even get the headset to light up at all
16:57fdobridge_: <rinlovesyou> so i'm surprised you got that working on wayland
16:57fdobridge_: <!DodoNVK (she) 🇱🇹> I also wonder how you're starting Monado/xrgears (I run them both manually)
16:57fdobridge_: <rinlovesyou> well i do it through envision
16:57fdobridge_: <rinlovesyou> but like, that just pulls the latest source from monado/opencomposite and runs them for you
16:59fdobridge_: <!DodoNVK (she) 🇱🇹> I compiled monado-git and ran `XRT_COMPOSITOR_FORCE_GPU_INDEX=<my NVIDIA GPU Vulkan ID> MANGOHUD=1 monado-service` to start it (my screen showed a grey screen with MangoHUD frozen but it unfreezes when I start an OpenXR application)
17:01fdobridge_: <rinlovesyou> yeah for me it only slightly lights up the headset
17:01fdobridge_: <rinlovesyou> and it's a black flickery void
17:01fdobridge_: <rinlovesyou> and on wayland nothing happens at all
17:02fdobridge_: <!DodoNVK (she) 🇱🇹> Can you disable GSP and enable atomic KMS (with `nouveau.atomic=1` kernel option)? 🤔
17:20fdobridge_: <rinlovesyou> yeah
17:20fdobridge_: <rinlovesyou> that works @asdqueerfromeu
17:20fdobridge_: <rinlovesyou> why the hell
17:21fdobridge_: <!DodoNVK (she) 🇱🇹> Did you do both of those things?
17:21fdobridge_: <rinlovesyou> yes
17:21fdobridge_: <rinlovesyou> gsp is off an atomic is on
17:21fdobridge_: <rinlovesyou> yet another gsp issue with my card?
17:22fdobridge_: <!DodoNVK (she) 🇱🇹> I wonder if this is another GSP weirdness issue (can you re-enable GSP?)
17:22fdobridge_: <rinlovesyou> and keep atomic?
17:23fdobridge_: <!DodoNVK (she) 🇱🇹> Yes
17:24fdobridge_: <rinlovesyou> yeah, gsp breaks it.
17:24fdobridge_: <rinlovesyou> typical..
17:24fdobridge_: <rinlovesyou> what is it with GSP and my god damn card
17:27fdobridge_: <rinlovesyou> it's getting just a tiny bit annoying, first it didn't work at all, now this
17:28fdobridge_: <!DodoNVK (she) 🇱🇹> I'll have to check if it happens with my GPU
17:30fdobridge_: <rinlovesyou> you're not using gsp?
17:30fdobridge_: <rinlovesyou> i thought we needed that for reclocking
17:38fdobridge_: <!DodoNVK (she) 🇱🇹> I'm not
17:38fdobridge_: <rinlovesyou> why not lol
20:13Lyude: C ffi in rust kind of rules
20:36karolherbst: yeah, it does
20:58betteroffwithout: It's not like i care what you say to a person that tried to help you negatively, cause you feel hinted over that both of your own considered functional brain cells are rotten :), i was not even trolling or pranking you, absolute truth was delegated, but that as you go to terror me at my own hotel, is something that gets you responses soon, that is the only thing i do care, shot that comes off or out your fingers in here i care
20:58betteroffwithout: none about, from mouth near me where you are discouraged and not even allowed to enter near proximity with me, is something about your scums behavior that needs correcting or forcing to take better direction. In other words of course you are scum in my book.
21:03juri_: so, how did we earn such dedicated spam?
21:06dwfreed: flavor of the week
21:10karolherbst: juri_: being unlucky :')
21:10airlied: he's been doing it for > 10 years
21:12airlied: from 2010 : https://people.freedesktop.org/~ajax/what-the-utter-fuck
21:18fdobridge_: <mohamexiety> holy shit that's dedicated
21:18karolherbst: health issues be like that
21:32juri_: wow.
21:35fdobridge_: <rinlovesyou> Absolute mental illness lol
21:36fdobridge_: <babblebones> And I thought I was persistent
22:25fdobridge_: <Sid> istg we need to disallow tor connections
22:26fdobridge_: <Sid> it'd reduce spam so much
22:44fdobridge_: <karolherbst🐧🦀> probably
22:44fdobridge_: <Sid> dewit karol
22:45fdobridge_: <karolherbst🐧🦀> how tho?
22:45fdobridge_: <Sid> you know you'd rather not have to deal with spam
22:45fdobridge_: <Sid> good question, I've never looked into it, gimme a moment
22:48fdobridge_: <karolherbst🐧🦀> yo...
22:48fdobridge_: <karolherbst🐧🦀> it kicked two others :ferrisUpsideDown:
22:49fdobridge_: <Sid> `/msg ChanServ SET #nouveau mlock +b $~a`
22:49fdobridge_: <karolherbst🐧🦀> I think one was a legit user..
22:49fdobridge_: <Sid> oh, you already got it 😅
22:49fdobridge_: <karolherbst🐧🦀> yeah.. I'm using the AKICK stuff for that usually
22:49fdobridge_: <karolherbst🐧🦀> mlock is.... weird
22:49fdobridge_: <Sid> I'm pretty sure you can have per user exceptions
22:50fdobridge_: <Sid> which would be easier than dealing with spam 😅
22:50fdobridge_: <karolherbst🐧🦀> but... uhh
22:50fdobridge_: <karolherbst🐧🦀> pain
22:50fdobridge_: <Sid> yeah
22:51fdobridge_: <karolherbst🐧🦀> it doesn't matter tho, they'll use VPN soon or something
22:51fdobridge_: <Sid> I'm asking my fluent-in-IRC friends on what'd be the best way
22:52fdobridge_: <karolherbst🐧🦀> I doubt there is any solution
22:52Sid127: yeah
22:52fdobridge_: <karolherbst🐧🦀> that's kinda the deal if your network is like anonymous or something
22:52Sid127: best we can do is constantly mitigate :\
22:52fdobridge_: <karolherbst🐧🦀> I'm sure on matrix it would be worse
22:52Sid127: oh, definitely
22:52Sid127: anything exposed to matrix.org is very prone to getting raided
22:53Sid127: I've seen it happen on the GrapheneOS channels myself
22:53fdobridge_: <karolherbst🐧🦀> yeah.. and you can't do any sensible moderation there
22:53Sid127: yup
22:53fdobridge_: <karolherbst🐧🦀> yeah.. they also had bricked rooms and all that kinda of fun stuff
22:53fdobridge_: <karolherbst🐧🦀> they told me 😄
22:53Sid127: heh
22:54Sid127: one thing we could do is require cloak to be on
22:54Sid127: apparently
22:54fdobridge_: <karolherbst🐧🦀> mhh
22:54fdobridge_: <karolherbst🐧🦀> that's kinda pain
22:55fdobridge_: <karolherbst🐧🦀> and won't really help here, would it?
22:55Sid127: yeah
22:55Sid127: welp
22:55Sid127: no winning :pensive:
22:56fdobridge_: <karolherbst🐧🦀> I think matrix would be viable if rooms were tied to a server, and one could just disallow bad actor servers
22:56fdobridge_: <karolherbst🐧🦀> but apparently it was a design choice to not allow moderation
22:56Sid127: another.. albeit small IRC network has just set bans on tor and vpn exit nodes
22:57fdobridge_: <karolherbst🐧🦀> yeah...
22:57Sid127: and asks people to connect without it if they wish to
22:57fdobridge_: <karolherbst🐧🦀> probably the best choice
22:57fdobridge_: <karolherbst🐧🦀> look.. if you think you need tor to join #Nouveau on IRC I think you have other issues
22:57fdobridge_: <benjaminl> you should be able to ACL-ban servers in a matrix room
22:58fdobridge_: <benjaminl> matrix moderation is, in general, a pain though
22:58fdobridge_: <karolherbst🐧🦀> maybe freedesktop matrix with banning matrix.org would be viable...
22:58fdobridge_: <benjaminl> yeah if you can get away with it, that might work
22:58fdobridge_: <karolherbst🐧🦀> and only allow servers with non pita account creation policies
22:58fdobridge_: <benjaminl> matrix.org is where like 99% of drive-by spam comes from
22:59fdobridge_: <karolherbst🐧🦀> I'd honestly be fine with SSO/oauth only matrix servers allowing to join
22:59fdobridge_: <karolherbst🐧🦀> if they allow email only reg, insta ban
22:59fdobridge_: <karolherbst🐧🦀> or something even weaker
23:00Sid127: we could also set +R
23:00fdobridge_: <benjaminl> the problem is that the person that keeps spamming the #Nouveau irc seems pretty dedicated
23:01fdobridge_: <karolherbst🐧🦀> isn't +R already set?
23:01fdobridge_: <benjaminl> they would probably be willing to manually set up accounts on servers that don't have open registration
23:02fdobridge_: <benjaminl> banning the open-registration servers gets most of the bots and low-effort manual stuff, but doesn't help that much against a determined person that only wants to spam with one account at a time
23:02fdobridge_: <karolherbst🐧🦀> it would be nice if we could only allow people who have a fdo gitlab account
23:02fdobridge_: <karolherbst🐧🦀> that kinda gives you 2-3 chances
23:02Sid127: karolherbst: +R is not set
23:02Sid127: current modes are +Mnt
23:03Sid127: though, yeah, account registration is too easy
23:03fdobridge_: <benjaminl> hmm, so you can also set a whitelist on a room, so if you set up a fdo matrix server that does auth through gitlab and then only whitelisted that one
23:03fdobridge_: <benjaminl> of course, then you have to admin a matrix server...
23:03fdobridge_: <karolherbst🐧🦀> yeah...
23:03fdobridge_: <benjaminl> lol
23:03Sid127: you *can* disable federation on the matrix server
23:03fdobridge_: <karolherbst🐧🦀> you can't win with matrix
23:04Sid127: but that's just annoying
23:04fdobridge_: <karolherbst🐧🦀> can you allow certain servers?
23:04Sid127: I think so
23:04fdobridge_: <benjaminl> on the room ACL?
23:04fdobridge_: <karolherbst🐧🦀> mhhhh
23:04fdobridge_: <benjaminl> yes
23:04Sid127: just a sec
23:04fdobridge_: <karolherbst🐧🦀> but that still means we'd have to admin a matrix server
23:05fdobridge_: <benjaminl> unfortunately, you probably can't do fancy auth stuff with conduit
23:05Sid127: https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#federation_domain_whitelist
23:05Sid127: oh, conduit
23:05fdobridge_: <benjaminl> so you're stuck with synapse, which is a _terrible_ experience
23:05fdobridge_: <karolherbst🐧🦀> I just want to have gitlab oauth login
23:05fdobridge_: <benjaminl> I haven't run a synapse server for a couple years now, but when I was we had constant problems with it triggering memory leaks in postgres
23:06fdobridge_: <karolherbst🐧🦀> can I just get something hoested?
23:06Sid127: very far shot: set channel invite only, redirect to a different channel, manually invex everyone that needs it, account ban the rest, maybe with some really agressive filters on that alt channel
23:06fdobridge_: <benjaminl> I think you can pay element to host a server for you, but don't know the details
23:06Sid127: karolherbst: I host a homeserver
23:07Sid127: but I'm not *entirely sure* I wanna open it up to a larger network e-e
23:07fdobridge_: <karolherbst🐧🦀> I mean.. we have servers, just need somebody willing to admin it forever
23:07fdobridge_: <karolherbst🐧🦀> 😄
23:07Sid127: I wouldn't mind the admin bit, methinks, at least not for a few years
23:07fdobridge_: <karolherbst🐧🦀> mhhhh
23:07fdobridge_: <karolherbst🐧🦀> I have an idea
23:07Sid127: I've been using synapse with few issues for well over a year now
23:08fdobridge_: <karolherbst🐧🦀> could we have a matrix room, which you can only join via an IRC bridge?
23:08fdobridge_: <karolherbst🐧🦀> or well..
23:08fdobridge_: <karolherbst🐧🦀> your account on the same server
23:08Sid127: don't think so
23:08fdobridge_: <karolherbst🐧🦀> mhh
23:09Sid127: because as soon as you bring IRC into the mix, you're able to connect from anywhere
23:09Lyude: karolherbst: how familiar are you with unsafe rust? i'm wondering if you might know how (or if even) one would have a C FFI function return Option<std::ptr::NonNull<some_foo>> instead of *mut some_foo
23:09Sid127: maybe we can look at dendrite instead of synapse
23:09karolherbst: Lyude: you can just do that stuff
23:10karolherbst: just have to make sure to the invariants hold
23:10Sid127: ok, neither conduit nor dendrite can do federation whitelists, *but* I think we can get by with a firewall
23:10Lyude: :)?
23:10Lyude: (does not know what an invariant is)
23:10karolherbst: Lyude: like.... the rules of the rust types
23:10fdobridge_: <benjaminl> we've had success with spam in #rust:matrix.org by temporarily setting the room to invite-only and then having people that want to join "knock"
23:10fdobridge_: <benjaminl> "success" as in "triggered a chain of state-resets that took several days to resolve", but like after that it was okay lol
23:10Sid127: block activity on the federation port and whitelist domains
23:10karolherbst: you don't have to use bindgen to call a function, you can always specify the C symbol name on any extern function
23:11karolherbst: and use whatever interface
23:11karolherbst: but if you want to use Option<NonNull<T>> instead of a raw pointer that should just work
23:11karolherbst: bindgen uses Option<...> for function pointers regardless e.g.
23:11karolherbst: I think you can also tell bindgen to replace certain types, but dunno if the cli exposes it
23:12Lyude: hm, fwiw: https://gitlab.freedesktop.org/lyudess/linux/-/blob/rvkms/rust/kernel/drm/kms/plane.rs?ref_type=heads#L128 this is the function I'm trying to make return Option<NonNull<*mut foo>> - since it would be very very nice if I could use ? here
23:13fdobridge_: <redsheep> Does another option besides this discord server need to exist? If there was an invite link on the website, or better yet somewhere in gitlab, then there would still be public access. It would only cut off people unable to navigate to discord in the browser.
23:13Sid127: redsheep but that requires account creation
23:13Sid127: irc always has allowed guest users
23:14Sid127: also, this server is not FDO approved :P
23:14karolherbst: Lyude: ohh.. that function is called from the C side, right?
23:15Lyude: karolherbst: correct
23:15karolherbst: then you _Should_ be able to just use Option<NonNull<T>> I think
23:15karolherbst: let's see...
23:16karolherbst: Lyude: worst case you can always wrap it..
23:16Lyude: yeah I've been considering that
23:16karolherbst: but you should be able to just cast the func pointer and it should be okay
23:16Lyude: https://paste.centos.org/view/7456f215 this is what I get
23:17karolherbst: (func as *const c_void).cast()
23:17karolherbst: maybe...
23:17karolherbst: worst case do a mem::transmute
23:17karolherbst: let's see...
23:24karolherbst: Lyude: https://godbolt.org/z/Tnze9fYvh
23:25karolherbst: or well...
23:25karolherbst: this: https://godbolt.org/z/ErneE8c1f
23:25karolherbst: not sure if the transmute stuff can be made any simpler
23:25karolherbst: ohh
23:25karolherbst: seems like you don't have to qualify the transmute
23:26karolherbst: Lyude: https://godbolt.org/z/WKcG5co8M
23:26karolherbst: https://godbolt.org/z/e49orc99T
23:26karolherbst: final version :D
23:27Lyude: yay! ok cool
23:28karolherbst: I wonder if that could be added to rustc directly, because that should "just work"
23:28karolherbst: though NonNull has some weirdo requirements
23:28Lyude: yeah I was gonna say, it seems like this is something that should just implicitly be cast if the transmutation is sound
23:29karolherbst: there is some work on making transmuting a bit easier to do, but not sure where the discussion was
23:31Lyude: also my team of professional furries may have pointed out a way (or at least a very strong hint) that I can get rust-analyzer to start giving me all of the errors in my editor instead of just some of them, so I'll have to try that later :)
23:31karolherbst: heh
23:32karolherbst: yeah, I might have to figure out how to do all that properly in visual code as well, but...
23:32karolherbst: uhh
23:32fdobridge_: <benjaminl> https://rust-lang.github.io/rfcs/2835-project-safe-transmute.html
23:32karolherbst: pain :D
23:32karolherbst: ahh yeah... that was it
23:40Lyude: mhm - seems transmute just complains it's a zero-sized type
23:40karolherbst: yeah...
23:40karolherbst: the cast is what makes it all work
23:40Lyude: huh
23:41karolherbst: I have no idea why, but transmute ain't happy without that `as *const ()` part
23:41karolherbst: well..
23:41karolherbst: I suspect in your case you might have to specify the args properly
23:41karolherbst: let me see if I can make it work without such pain
23:42fdobridge_: <benjaminl> does `mem::transmute::<fn() -> Option<NonNull<u32>>, fn() -> *mut u32>` not work?
23:43Lyude: i haven't yet tried typing the full thing out in that code - I was hoping the compiler might be able to infer the type (which, when using as - it very much does appear to infer it correctly)
23:43Lyude: but then complaints it's not a primitive cast
23:43karolherbst: Lyude: https://godbolt.org/z/K5o5nnaTM 🙃
23:44Lyude: oh hah
23:44Lyude: good enough for me, let's try that
23:45karolherbst: if the func has no args you can't use `fn(_)` but have to use `fn()` but.. uhh.. C funcs without args are like... non existent anyway :P
23:46fdobridge_: <karolherbst🐧🦀> @vdpafaor 1. it's a lot to type and 2. nope
23:47karolherbst: seems like `std::mem::transmute::<fn(_) -> _, _>(my_cb)` works...
23:48karolherbst: so yeah, it would work, but it's just pain to type
23:48karolherbst: but at this point either qualifying the transmute or doing a cast is kinda the same