03:48fdobridge: <gfxstrand> First Ampere conformance run going. Starting with x86_64
04:14fdobridge: <airlied> dakr, gfxstrand : I talked a bit with Maria today about v3d and gpuvm but also she mentioned userptr ideas
04:23fdobridge: <benjaminl> okay so figuring out `SHFL.UP` was pretty simple after I actually read the PTX docs, but now I'm confused how it passes the CTS on turing
04:23fdobridge: <benjaminl> the lower 5 bits are a lower-limit on the source lane in `SHFL.UP` and an upper-limit for all the other ops
04:24fdobridge: <benjaminl> I'm betting they changed the behavior for turing and ptxas is transforming it
04:30fdobridge: <benjaminl> nope... ptxas emits the same value on both sm50 and sm75...
04:33fdobridge: <benjaminl> oh... it probably passes the CTS because we're not advertising `VK_SUBGROUP_FEATURE_SHUFFLE_BIT`, so the CTS is just skipping all those tests
04:33fdobridge: <benjaminl> I had to add that to get it to run the tests on maxwell
04:59fdobridge: <benjaminl> https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26202 MR against mesa/mesa to fix it, since this applies to SM75
05:00fdobridge: <![NVK Whacker] Echo (she) 🇱🇹> This is the only extension Wine uses for WoW64 support (there's map_memory_placed support for Wine in some branch though)
05:11fdobridge: <gfxstrand> Sounds plausible. Yeah, I got stuck on some control-flow stuff and that's why I didn't get all of subgroups wired up.
05:12fdobridge: <gfxstrand> That's my next task once I get back to actually writing code and not just moving stuff around. 😅
05:23HdkR: map_memory_placed? What's this?
05:24HdkR: Sounds interesting to my needs and google isn't giving me anything
05:30fdobridge: <![NVK Whacker] Echo (she) 🇱🇹> HdkR: An extension that allows mapping memory in a specific address: https://github.com/KhronosGroup/Vulkan-Docs/pull/1906
05:31HdkR: ah neat. Fixes the problem of wanting to allocate in to their allocator space without punching a hole in the mapping and introducing bugs
05:31HdkR: Doesn't quite fit my needs, but cool to see.
06:36fdobridge: <benjaminl> got vkcube running on SM50 🙂
06:37fdobridge: <![NVK Whacker] Echo (she) 🇱🇹> Is this Shader Model 5? /s
06:40fdobridge: <benjaminl> maxwell
06:40fdobridge: <benjaminl> no idea how things map to directx
06:42fdobridge: <![NVK Whacker] Echo (she) 🇱🇹> NVIDIA and Microsoft both using SM makes things confusing :nouveau:
09:43fdobridge: <![NVK Whacker] Echo (she) 🇱🇹> Here's my attempt at rebasing the pipeline cache MR (it compiles but I'm not sure how well it works but at least DXVK doesn't crash) 🐸
09:43fdobridge: <![NVK Whacker] Echo (she) 🇱🇹> https://cdn.discordapp.com/attachments/1034184951790305330/1174283543699013663/nvk-pipeline-cache.patch?ex=656707c5&is=655492c5&hm=0a13704556e9f137f85e4733fff284dfca257a951e59fb23d8d568b2d8d47fef&
10:29fdobridge: <phomes_> Thank you for the rebase. I appreciate it. The refactoring that just landed requires that the whole MR is redone a fair bit and I want to perhaps do some things in a different way. I plan to work on that next week
11:35fdobridge: <prop_energy_ball> https://www.youtube.com/watch?v=npxsD7u52qk
11:36fdobridge: <prop_energy_ball> Holy shit, Hat in Time running pretty well :)
11:36fdobridge: <prop_energy_ball> Awesome work
11:37fdobridge: <prop_energy_ball> Oh damn ♻️... I'm late. Sorry!
11:50fdobridge: <mohamexiety> check this out too @prop_energy_ball :3
11:52fdobridge: <prop_energy_ball> Niice
11:56fdobridge: <marysaka> :hatkid:
11:58fdobridge: <dadschoorse> would run better with fmulz in NAK 🐸
12:01fdobridge: <prop_energy_ball> DXVK should just pre-emptively enable the opencoded proper version now :demon:
12:37fdobridge: <airlied> https://youtu.be/LipsVK5d_vM?t=19576 (my nouveau talk from yesterday, in case anyone is interested)
12:50RSpliet: airlied: IIRC just sticking the firmware files in /boot is exactly what arch does? Or this is what I think I learned a few days ago when someone accidentally DD'd over the first gigabyte of his SSD and had to regenerate his partition table, boot and EFI partitions.
12:54fdobridge: <dadschoorse> inb4 nvidia refuses to optimize it because of the denorm issue
12:55fdobridge: <dadschoorse> @prop_energy_ball dxvk enabled it a while back for nvk
12:55fdobridge: <dadschoorse> I wrote that patch when codegen was used and we didn't know about the implied ftz yet
12:56fdobridge: <dadschoorse> so technically nak regressed dxvk
13:25fdobridge: <esdrastarsis> Dota Underlords (low settings)
13:25fdobridge: <esdrastarsis> https://cdn.discordapp.com/attachments/1034184951790305330/1174339298422689883/20231115_10h24m09s_grim.jpeg?ex=65673bb2&is=6554c6b2&hm=1d67b18aaa8fb41345b226ae8e966cced9908f063d39bbb55e360b9ebdd702ef&
13:25fdobridge: <esdrastarsis> On Wayland
13:32fdobridge: <karolherbst🐧🦀> :ferrisBongo:
14:32fdobridge: <esdrastarsis> No Man's Sky... at least it boots :ferris_happy:
14:32fdobridge: <esdrastarsis> https://cdn.discordapp.com/attachments/1034184951790305330/1174356240432902195/20231115_11h30m48s_grim.jpeg?ex=65674b7a&is=6554d67a&hm=ad76fddc52f2342fdc17066d26a6a68033c7b7ecee1be7ef714372f4bfd4b870&
14:33fdobridge: <![NVK Whacker] Echo (she) 🇱🇹> With an old DXVK version?
14:36fdobridge: <rhed0x> no mans sky uses vulkan directly
14:37fdobridge: <rhed0x> who needs depth testing anyway 🐸
14:42fdobridge: <![NVK Whacker] Echo (she) 🇱🇹> It's fairly rare to see Windows games using Vulkan
14:43fdobridge: <esdrastarsis> Yeah, I'm using the pcgamingwiki's list
15:31gfxstrand: dakr: I think we might have a fence roll-over issue or similar
15:35fdobridge: <gfxstrand> Thanks! Sorry for shifting the sand out from underneath you but I think caching will be a lot easier now.
15:38fdobridge: <marysaka> @gfxstrand did something changed around sample locations with the 2 MR you merged? I have 14 failures and I'm out of idea about what might cause them...
15:38fdobridge: <marysaka> https://cdn.discordapp.com/attachments/1034184951790305330/1174372865563439166/image.png?ex=65675af5&is=6554e5f5&hm=ef27f2be81e8adff47fccdbe8df1c789f9ea155ee6554cde76cbf74c21d8371e&
15:39fdobridge: <gfxstrand> Quite possibly...
15:39fdobridge: <gfxstrand> I didn't intend to change anything around sample locations
15:39fdobridge: <gfxstrand> But the FS input interp rework may have had a bug.
15:40fdobridge: <marysaka> Will push that somewhere and tomorrow I will try to diff my old branch vs the new one on the shader code output
15:40fdobridge: <gfxstrand> Also, I re-ordered the universe so that may have affected things, too.
15:40fdobridge: <gfxstrand> sounds good
15:40fdobridge: <marysaka> I tried to remove the ordering and remove flags for both my new intrinsic and ipa_nv but that didn't changed a thing sadly...
15:43dakr: gfxstrand: What did you observe?
15:46fdobridge: <marysaka> @gfxstrand did something changed around sample locations with the 2 MR you merged? I have 14 failures and I'm out of idea about what might cause them... (msaa_interpolate_at_offset / msaa_interpolate_at_sample but only for perspective) (edited)
15:46fdobridge: <marysaka> https://cdn.discordapp.com/attachments/1034184951790305330/1174372865563439166/image.png?ex=65675af5&is=6554e5f5&hm=ef27f2be81e8adff47fccdbe8df1c789f9ea155ee6554cde76cbf74c21d8371e&
15:51gfxstrand: dakr: Trying to do a full CTS run on Ampere last night. It failed twice at exactly the same test. It was a synchronization test. In both cases, the kernel thought it timed out and killed my context.
15:51gfxstrand: Unfortunately, I can't repro with a single test. If I run dEQP-VK.synchronization.timeline_semaphore.*, they all pass.
15:52gfxstrand: So there's some way in which we're sort of setting up for the bug.
15:53gfxstrand: I have trouble believing that it's a userspace bug but it's hard to tell
15:53gfxstrand: Fences wrapping is just a blind guess, BTW.
15:53gfxstrand: A full CTS run is enough fences that it could hit a u32 overflow bug if we had one.
16:00gfxstrand: dakr: So, yeah, kind-of a wild guess, unfortunately, but there's a bug of some sort in there.
16:01fdobridge: <![NVK Whacker] Echo (she) 🇱🇹> I guess I'm going to push this patch into my AUR package then
16:04gfxstrand: dakr: Yeah, I all of dEQP-VK.synchronization.* passis if I don't run the rest of the CTS before it. :sob:
16:38fdobridge: <esdrastarsis> I think the other patches need a rebase too
16:38fdobridge: <![NVK Whacker] Echo (she) 🇱🇹> Other ones seem to be fine
16:50fdobridge: <esdrastarsis> The patches are not applying here
16:51fdobridge: <![NVK Whacker] Echo (she) 🇱🇹> It's only the pipeline caching one (let me quickly push the updated patch)
16:52fdobridge: <phomes_> no problem. The code is much nicer to work with now 🙂
16:55fdobridge: <phomes_> VK_EXT_color_write_enable is done. That is one (small) step closer to zink
17:34olderfacebaby: What I was talking about was the simpler algorithm , you can envision that as you sideload the to values so each value compressed is sided with it's cancelation distance from where index is taken, it acts as scaffold, because those are controlling what content to eliminate, they themselves get eliminated by subtract which has their content outside of the mask buffer, in other words they always get eliminated through subtract, but the one you
17:34olderfacebaby: canceled by stuffing an index to mask the value entirely, comes back as from result as cancelation distance plus index, so if you know that this exactly ended up as clipping the focal value, the value at interest, then you can conclude, that to recover the Vai value at interest, you need no algebra anymore, but only have the values stored without scaffold subtracted from the values where scaffolds + index was eliminated i.e cut/subtracted out
17:34olderfacebaby: , so I understood that there's no need to take any half values like divide by two at all :( it's lot simpler.
17:35olderfacebaby: But I have suspicion that it's similar to Elias fano.
18:08olderfacebaby: Linear algebra is too much to say, cause delta like that is only single subtract in compiler, you eliminate values then, delta that collides with distance to clipping the values from scaffold coefficients, and just as such you eliminate the remainder of the scaffold like another delta, and the indexed value should pop up.
18:19olderfacebaby: So easiest is to distribute the logic through libre office calc spreadsheet, cause gnome-calculator has only logs which can not be saved, I assume tomorrow I can distribute the file.
18:21olderfacebaby: Then you can implement that logic if you want in any language, like c rust c++ or whatever
19:31fdobridge: <gfxstrand> Ugh.. Titan V's are expensive...
19:31fdobridge: <gfxstrand> @karolherbst, @airlied Do either of you have an actual Volta card?
19:32fdobridge: <gfxstrand> I don't really want to drop $600 on a GPU that's never going to be fast.
19:33fdobridge: <gfxstrand> Pascals are like $100 but Voltas are expensive
19:33fdobridge: <![NVK Whacker] Echo (she) 🇱🇹> I have a GPU with Volta NVENC 🐸
19:33fdobridge: <airlied> I have a GV100 in my bag sitting beside me
19:33fdobridge: <airlied> I was going to give it to Robert Foss to ship to Karol
19:33fdobridge: <gfxstrand> Heh
19:34fdobridge: <gfxstrand> Really, as long as someone has one, that's the important thing.
19:34fdobridge: <airlied> I just gave ajax a volta also yesterdayt
19:34fdobridge: <gfxstrand> I can write the Volta MR but I don't have the HW to test it
19:34fdobridge: <karolherbst🐧🦀> I can do it once I have the GPU 😄
19:34fdobridge: <karolherbst🐧🦀> but yeah...
19:35fdobridge: <karolherbst🐧🦀> on tha ISA side it's mostly like Turing just without uniform registers/predicates
19:35fdobridge: <gfxstrand> Yup
19:35fdobridge: <gfxstrand> I'm reworking NAK to use the Turing encodings for Volta
19:35fdobridge: <karolherbst🐧🦀> I think the 3d/compute stuff is a bit different...
19:35fdobridge: <![NVK Whacker] Echo (she) 🇱🇹> What other niche NVIDIA cards do you have laying around?
19:35fdobridge: <karolherbst🐧🦀> volta still uses the old sph?
19:35fdobridge: <karolherbst🐧🦀> something like that?
19:35fdobridge: <karolherbst🐧🦀> dunno
19:37fdobridge: <airlied> I have all the niche nvidia cards now, just not in my bag sitting beside me
19:37fdobridge: <airlied> I gave away a jetson tk1 and tx1 yesterday
19:37fdobridge: <karolherbst🐧🦀> the only niche one I have is the titan one :ferrisUpsideDown:
19:38fdobridge: <airlied> I think I gave ajax the Titan, this one is the quadro
19:38fdobridge: <karolherbst🐧🦀> @mupuf also still has a couple of GPUs
19:39fdobridge: <gfxstrand> Most of them aren't too hard to get your hands on. It's just that Volta only came in like 3 really high-end GPUs so they're stupid $$ on eBay.
19:39mupuf: A couple :D That's a gross misrepresentation :D
19:39fdobridge: <![NVK Whacker] Echo (she) 🇱🇹> How about the NV1?
19:40fdobridge: <airlied> I think I have an nv3 but the caps are blown
19:40fdobridge: <karolherbst🐧🦀> yeah....
19:40fdobridge: <karolherbst🐧🦀> my NV4x gpus are also half trash
19:40fdobridge: <karolherbst🐧🦀> though I never know if driver or hardware issue
19:41fdobridge: <marysaka> I have ton of Maxwell GPUs around (most of them GM20B), some Kepler, some Fermi, and two Ampere
19:41fdobridge: <![NVK Whacker] Echo (she) 🇱🇹> If they aren't SMD then they should be easy to replace 👩🔧
19:41fdobridge: <marysaka> ~~I will not count the two Geforce 6600LE cards I have~~
19:42fdobridge: <marysaka> I have ton of Maxwell GPUs around (most of them GM20B), 3 Pascal, some Kepler, some Fermi, and two Ampere (edited)
19:43fdobridge: <![NVK Whacker] Echo (she) 🇱🇹> I had a NV96 until 2014
19:43fdobridge: <marysaka> that remind me I need to open the issue about tegra's regression and the sync issue on prior versions
19:44fdobridge: <gfxstrand> @karolherbst Once you get the GPU, mind giving this a test? https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26212
19:44fdobridge: <marysaka> I would be nice to have the X1 be a nice target as it is quite faster than regular dGPU for Maxwell testing
19:44fdobridge: <gfxstrand> Or anyone else who has an actual Volta.
19:44fdobridge: <karolherbst🐧🦀> that's going to be fun
19:44fdobridge: <karolherbst🐧🦀> 🙂
19:44fdobridge: <gfxstrand> Shouldn't be too spicy
19:44fdobridge: <karolherbst🐧🦀> well
19:44fdobridge: <karolherbst🐧🦀> I wouldn't be surprised if we have a few `TURING_A` checks too many
19:45fdobridge: <gfxstrand> Yeah....
19:45fdobridge: <karolherbst🐧🦀> or well.. if some needs to be `VOLTA_A` instead
19:45fdobridge: <gfxstrand> That's going to be the tricky bit
19:45fdobridge: <karolherbst🐧🦀> run the CTS and check dmesg 😄
19:45fdobridge: <gfxstrand> It should only take like a day to find them all
19:45fdobridge: <karolherbst🐧🦀> yeah...
19:45fdobridge: <karolherbst🐧🦀> shouldn't be too hard
19:46fdobridge: <mohamexiety> I have 1 Ampere and 1 Pascal. _may_ get Ada in the future but really not sure
19:46fdobridge: <karolherbst🐧🦀> seems like Volta doesn't use the shader heap anymore, so that's good
19:47fdobridge: <marysaka> random question: do anyone have any re documentations around MME macros used by the proprietary driver?
19:47fdobridge: <karolherbst🐧🦀> @gfxstrand yeah soo... the new SPH stuff is Turing+ 🥲
19:47fdobridge: <karolherbst🐧🦀> I _hope_ the alignment stuff checks out for volta
19:47fdobridge: <karolherbst🐧🦀> as the header is 0x50 in size
19:48fdobridge: <gfxstrand> That's not a big deal. It only really impacts shader upload
19:48fdobridge: <marysaka> I think I check for 75
19:48fdobridge: <marysaka> I think I check for sm75 so should be fine (edited)
19:48fdobridge: <gfxstrand> For the compiler side, we just assume the full size header and it's fine.
19:48fdobridge: <gfxstrand> We should maybe assert that the high bits are 0 or something
19:48fdobridge: <karolherbst🐧🦀> yeah.. it's the same as previous gens
19:48fdobridge: <karolherbst🐧🦀> just the alignment matters I think
19:48fdobridge: <karolherbst🐧🦀> _should_ be fine
19:50fdobridge: <gfxstrand> Really, someone needs to spend a day with it to get the CTS passing, do a conformance submission, and then we can forget Volta exists.
19:50fdobridge: <gfxstrand> There's so few of them...
19:50fdobridge: <karolherbst🐧🦀> yeah
19:50fdobridge: <karolherbst🐧🦀> mood
19:51fdobridge: <marysaka> there is Tegra but yeah not even sure there is much product using the Xavier serie tbh...
19:51fdobridge: <karolherbst🐧🦀> @gfxstrand uhm... let me check instruction support
19:52fdobridge: <karolherbst🐧🦀> huh
19:52fdobridge: <karolherbst🐧🦀> volta has `FADD32I` whatever that is
19:52fdobridge: <karolherbst🐧🦀> oh wait.. that's just an alias...
19:53fdobridge: <karolherbst🐧🦀> Volta doesn't have `FOOTPRINT`
19:54fdobridge: <gfxstrand> Yeah, FOOTPRINT is a Turing feature
19:54fdobridge: <gfxstrand> Volta seems to be where they tried out the fancy new ISA and then Turing was when they added the featrues.
19:54fdobridge: <gfxstrand> Volta seems to be where they tried out the fancy new ISA and then Turing was when they added the features. (edited)
19:54fdobridge: <karolherbst🐧🦀> volta doens't have saturating `I2I`
19:54fdobridge: <gfxstrand> Oh fun....
19:54fdobridge: <gfxstrand> Wait, does turing?
19:54fdobridge: <karolherbst🐧🦀> yes
19:54fdobridge: <gfxstrand> We're not using it yet
19:55fdobridge: <gfxstrand> Probably should
19:56fdobridge: <karolherbst🐧🦀> volta doesn't have `IDE` which is uhm.. something weird
19:56fdobridge: <karolherbst🐧🦀> only relevant for shader debugging
19:56fdobridge: <![NVK Whacker] Echo (she) 🇱🇹> `SATA` is better anyway /s
19:57fdobridge: <karolherbst🐧🦀> @gfxstrand volta doesn't have `IMNMX`
19:58fdobridge: <gfxstrand> Oh, well that's annoying.
19:59fdobridge: <gfxstrand> Maxwell has IMNMX
19:59fdobridge: <gfxstrand> WTH
19:59fdobridge: <karolherbst🐧🦀> mhhh
19:59fdobridge: <karolherbst🐧🦀> maybe the name is different?
19:59fdobridge: <karolherbst🐧🦀> `MUFU.TANH` is turing+
20:00fdobridge: <karolherbst🐧🦀> seems like we don't use `IMNMX` for turing in codegen ;')
20:00fdobridge: <karolherbst🐧🦀> RIP
20:01fdobridge: <karolherbst🐧🦀> `GV100LegalizeSSA::handleIMNMX` 🥲
20:02fdobridge: <gfxstrand> RIP
20:03fdobridge: <karolherbst🐧🦀> I think that's more or less the biggest stuff
20:03fdobridge: <karolherbst🐧🦀> it's kinda a pain to compare 😄
20:04fdobridge: <marysaka> that's ood how do you debug stuffs huh
20:07fdobridge: <karolherbst🐧🦀> you just trust the c++ compiler
20:08fdobridge: <dadschoorse> I guess you just have to use a plain text editor instead? 🐸
20:09fdobridge: <karolherbst🐧🦀> yeah, what else are you using on your HPC cluster anyway
20:30fdobridge: <gfxstrand> Okay, I've actually merged that one because it's a rename and conflicts with a bunch of the SM50 work. I've also rebased the sm50 branch on top of it.
20:32fdobridge: <gfxstrand> The new Volta MR lives at https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26214 and I've assigned it to @karolherbst . Feel free to add patches to the nvk/volta branch to fix whatever you find and let me know when it's working. Or you can tell me about a bug and ask me to type a patch. That works, too. I just don't have the HW. I put the new branch in nouveau/mesa so it's a bit easier for us to both push to it.
20:35fdobridge: <karolherbst🐧🦀> cool
20:35fdobridge: <karolherbst🐧🦀> nah, I can write some code once in a while :ferrisUpsideDown:
20:46fdobridge: <airlied> Well either I will find robert in next hour or I will do Volta support when I get home 🙂
20:50fdobridge: <karolherbst🐧🦀> 😄
21:02fdobridge: <gfxstrand> Is NVK going to be the first conformant open-source Khronos API implementation on NVIDIA hardware?
21:02fdobridge: <gfxstrand> DId we ever do GL or GLES on nouveau GL?
21:10fdobridge: <karolherbst🐧🦀> uhm...
21:10fdobridge: <karolherbst🐧🦀> no
21:10fdobridge: <karolherbst🐧🦀> for $reasons
21:10fdobridge: <karolherbst🐧🦀> like
21:11fdobridge: <gfxstrand> Okay, cool. More stuff I can brag about in my upcoming blog post. 😅
21:11fdobridge: <karolherbst🐧🦀> driver is dying randomly 🥲
21:11fdobridge: <gfxstrand> Well, yeah, that'd be a reason. 😝
21:11fdobridge: <karolherbst🐧🦀> I think a normal GL CTS run passes like 99.9%
21:11fdobridge: <karolherbst🐧🦀> and I had patches to fix the rest
21:11fdobridge: <karolherbst🐧🦀> but doesn't help if the GPU dies randomly
21:12fdobridge: <karolherbst🐧🦀> worst part is that it mostly happens after a couple of hours
21:13fdobridge: <karolherbst🐧🦀> it's a pain
21:17HdkR: the imnmx missing in Volta thing is fun. it's like, oops missed a couple of instructions in the new ISA and then they get added back the next generation :P
21:22fdobridge: <gfxstrand> Yeah... That's very much the way it looks.
21:23fdobridge: <gfxstrand> "We reworked the ISA for you."
21:23fdobridge: <gfxstrand> "WTF did you put IMNMX?!?"
21:23fdobridge: <gfxstrand> "Oh, right... we forgot about that one. Sorry!"
21:28fdobridge: <gfxstrand> Missing both IMNMX and saturating I2I is kinda brutal, NGL.
21:32HdkR: Silver lining that they started throwing way more ALUs on the cards, so it can handle missing a few while they get added back
21:33fdobridge: <gfxstrand> Yeah
21:34fdobridge: <karolherbst🐧🦀> it also misses `I2IP` but that probably doesn't matter much for now
21:35fdobridge: <karolherbst🐧🦀> or well.. that's also saturating so it makes sense
21:35fdobridge: <karolherbst🐧🦀> wait a sec...
21:36fdobridge: <karolherbst🐧🦀> there are `I2IP` variants with `S4`/`U4` dest formats...
21:36fdobridge: <karolherbst🐧🦀> on turing
21:36fdobridge: <karolherbst🐧🦀> and `S2`/`U2`
21:36fdobridge: <karolherbst🐧🦀> huh...
21:36fdobridge: <karolherbst🐧🦀> that instruction is like super weird
21:37fdobridge: <gfxstrand> Wait, what?!? Why do you want S4?
21:37fdobridge: <gfxstrand> I mean, why not but also why?
21:37fdobridge: <gfxstrand> Maybe for some crazy S4 machine learning stuff?
21:38fdobridge: <karolherbst🐧🦀> it's super odd.. let me say how it works
21:38fdobridge: <karolherbst🐧🦀> if you do `4` you get the lower 24 bits from src2 into upper 24 bits the dest, with `2` 26 bits
21:39fdobridge: <karolherbst🐧🦀> with `2` 28 bits
21:39fdobridge: <karolherbst🐧🦀> so src0 gets placed at 0, src1 at + size and then filled with src2
21:40fdobridge: <gfxstrand> Okay, that might almost be useful
21:40fdobridge: <karolherbst🐧🦀> `8` also allows you to select `HI`/`LO` of src2
21:40fdobridge: <karolherbst🐧🦀> but yeah.. no idea why 2 and 4 😄
21:41fdobridge: <karolherbst🐧🦀> let's see if ptx has something there
21:42fdobridge: <karolherbst🐧🦀> maybe that's `e4m3x2` and `e5m2x2` stuff?
21:42fdobridge: <karolherbst🐧🦀> aren't those weirdo float formats?
21:42fdobridge: <karolherbst🐧🦀> no idea
21:43fdobridge: <karolherbst🐧🦀> `Sub byte types (.u4/.s4 and .u2/.s2) requires sm_75 or higher.` ahh
21:43fdobridge: <karolherbst🐧🦀> so yeah.. PTX has those natively as well
21:43fdobridge: <karolherbst🐧🦀> `cvt.pack`
21:43fdobridge: <karolherbst🐧🦀> https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#data-movement-and-conversion-instructions-cvt-pack
21:44fdobridge: <airlied> Some of those are for tensors but also I think some got removed in hopper
21:46fdobridge: <karolherbst🐧🦀> I hate it when vendors remove changelogs 😄
21:47fdobridge: <karolherbst🐧🦀> ahh found it
21:48fdobridge: <karolherbst🐧🦀> yeah.. sounds like tensor stuff
22:12fdobridge: <benjaminl> curious what other people's workflows are for testing runtime behavior when REing shader instructions
22:12fdobridge: <benjaminl> normally I've been doing this by sticking the encoding in NAK and then trying to write a glsl shader that causes it to emit the instruction I'm interested in, but this can be a pain for some stuff
22:13fdobridge: <benjaminl> currently want to test signed IMUL behavior for https://gitlab.freedesktop.org/nouveau/mesa/-/merge_requests/255#note_2169502, and haven't found a way to generate it from glsl yet
22:20fdobridge: <gfxstrand> https://gitlab.freedesktop.org/gfxstrand/mesa/-/commits/nak/hw-tests
22:21fdobridge: <gfxstrand> It's not in great shape and I'd like to replace it with something that involves less back-doors (maybe just submit a compute shader directly?) but that's what I did to figure out IAdd3
22:22fdobridge: <karolherbst🐧🦀> new wiki is live :ferrisSmug:
22:23fdobridge: <benjaminl> ooh, that looks very helpful, thanks!
22:36fdobridge: <gfxstrand> I'm not actually fundamentally opposed to the back-door. I more struggled with the fact that I didn't have a good way get the GPU generation or SM out.
22:47fdobridge: <gfxstrand> I could probably patch that through `deviceUUID`
22:53fdobridge: <esdrastarsis> Strange Brigade was working on nak/main branch but it crashes on mesa upstream
22:53fdobridge: <gfxstrand> backtrace?
22:56fdobridge: <esdrastarsis> How? I'm using proton
22:57fdobridge: <gfxstrand> Good question. I, unfortunately, don't know the answer. I've heard a rumor that GDB works but I've never had a good time with it.
22:57fdobridge: <gfxstrand> Do you see a panic?
22:58fdobridge: <esdrastarsis> Yeah, an assertion failure in winevulkan
23:22fdobridge: <gfxstrand> 😭
23:30fdobridge: <dadschoorse> that should you at least tell you the vk function that's failing