ChanServ changed the topic of #asahi-gpu to: Asahi Linux GPU development (no user support, NO binary reversing) | Keep things on topic | GitHub: https://alx.sh/g | Wiki: https://alx.sh/w | Logs: https://alx.sh/l/asahi-gpu
mkurz has quit [Ping timeout: 480 seconds]
mkurz has joined #asahi-gpu
DarkShadow4444 has quit [Quit: ZNC - https://znc.in]
DarkShadow44 has joined #asahi-gpu
hightower2 has quit [Remote host closed the connection]
hightower2 has joined #asahi-gpu
<alyssa> 16: 9e138c0202840100 imadd r4_r5.cache, r6.cache, 32, u2
<alyssa> I *think* the u2 should be u2_u3..
<alyssa> from context of the shader I'm staring at
<alyssa> (Spoiler alert: bindless image writes are 100% a thing and it's a straightforward mechanism and I just need a bit more staring to get the details)
<alyssa> or not, uh
<alyssa> oh, no
<alyssa> I see what's happening. cute.
<alyssa> they implement (u32 * u32) + u64 in two instructions
<alyssa> lo_hi = mad(u32, u32, u64_lo)
<alyssa> hi = hi + u64_hi
<alyssa> i just mised the second add due to the scheduling
<alyssa> ok, so there's full bindless image_write, so what? well..
<alyssa> next question is whether there's proper bindless image load i missed
<alyssa> I still feel like I'm missing something
<alyssa> are these addresses 32-bits or not?!
<alyssa> maybe I just need to try to wire this stuff up and see what breaks.
pthariensflame has joined #asahi-gpu
pthariensflame has quit []
<TellowKrinkle> I think the bindless register references are register pairs and we're not decompiling correctly
<TellowKrinkle> It usually sets up a valid pair before each of those calls
<TellowKrinkle> Actually maybe not
c10l9 has quit []
c10l9 has joined #asahi-gpu
skmp__ has quit []
md_ has joined #asahi-gpu
<i509vcb> hey ella-0, I recall hearing you have gotten vkcube to "work" on agxv. vkcube obviously requires WSI and agxv is probably some time away from working wsi so I imagine that showcase was probably from some fork of vkcube. I was wondering if you had the vkcube fork somewhere (if it even exists) to experiment with?
<i509vcb> I am interested in trying to see if I *could* help with agxv, but I guess I am a bit unfamiliar with the hardware and I imagine some stuff is probably blocking larger open contribution on that
md_ has quit [Quit: Konversation terminated!]
md_ has joined #asahi-gpu
md_ has quit []
bisko has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bisko has joined #asahi-gpu
MajorBiscuit has joined #asahi-gpu
bisko has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
stickytoffee has quit [Quit: brb]
seeeath has joined #asahi-gpu
bisko has joined #asahi-gpu
seeeath has quit [Ping timeout: 480 seconds]
stickytoffee has joined #asahi-gpu
cylm has joined #asahi-gpu
Cyrinux9 has quit []
Cyrinux9 has joined #asahi-gpu
jannau_ has quit []
jannau has joined #asahi-gpu
seeeath has joined #asahi-gpu
seeeath has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
seeeath has joined #asahi-gpu
possiblemeatball has joined #asahi-gpu
tertu has quit [Ping timeout: 480 seconds]
tertu has joined #asahi-gpu
stickytoffee has quit [Ping timeout: 480 seconds]
stickytoffee has joined #asahi-gpu
stickytoffee has quit []
possiblemeatball has quit [Quit: Quit]
MajorBiscuit has quit [Ping timeout: 480 seconds]
seeeath has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
seeeath has joined #asahi-gpu
linuxgemini1 has quit []
kesslerd has joined #asahi-gpu
mkurz_ has joined #asahi-gpu
kesslerd has quit [Ping timeout: 480 seconds]
mkurz__ has joined #asahi-gpu
mkurz has quit [Ping timeout: 480 seconds]
alyssa has left #asahi-gpu [#asahi-gpu]
mkurz_ has quit [Ping timeout: 480 seconds]
mkurz__ has quit [Read error: No route to host]
mkurz__ has joined #asahi-gpu
mkurz__ has quit []
zalyx has quit [Ping timeout: 480 seconds]
alyssa has joined #asahi-gpu
<alyssa> an unknown ALU instruction? on M1?
<alyssa> likelier than you would think
<alyssa> er no it's a funny encoding of convert
mkurz has joined #asahi-gpu
<alyssa> this doesn't make any sense, why are they converting a float from uint to float
<alyssa> what kind of witchcraft is this
mkurz has quit []
<alyssa> be91c8280000 is the spicy convert
<alyssa> for anyone following along at home
<alyssa> this is for alpha to coverage with msaa 4x
<alyssa> First, they calculate the alpha and clamp it to [0.0, 1.0]
<alyssa> Then, they multiply it with 255.0
<alyssa> So now they have a 32-bit float in the range of [0.0, 255.0]
kesslerd has joined #asahi-gpu
<alyssa> Then they... reinterpret the float as a 32-bit integer and convert it to a float?
<alyssa> Range (0.0, 255.0] corresponds to an exponent of [-126, 7]
<alyssa> encoded as [1, 134]
<alyssa> sign bit is clear
<alyssa> and then adding back 0 we get an exponent range of [0, 134]
seeeath has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<alyssa> mantissa is free (save for denormals which have been flushed), so we end up encoding [0, 135 << 23)
seeeath has joined #asahi-gpu
zalyx has joined #asahi-gpu
<alyssa> so end up with a float in the range [0, 1132462080.0) i guess
<alyssa> this, this doesn't make sense to me why they would do that, which makes me think i'm missing something
<dottedmag> Ability of Apple engineers to make bugs?
<alyssa> dottedmag: No, I don't have any reason to think it's wrong
<alyssa> It just doesn't make sense what's happening
<alyssa> see https://developer.apple.com/documentation/metal/mtlrenderpipelinedescriptor?language=objc for the pseudo code, of course the actual expression is implementation-defined
kesslerd has quit [Ping timeout: 480 seconds]
seeeath has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
seeeath has joined #asahi-gpu
hightower3 has joined #asahi-gpu
hightower4 has joined #asahi-gpu
hightower2 has quit [Ping timeout: 480 seconds]
hightower3 has quit [Ping timeout: 480 seconds]
seeeath has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
seeeath has joined #asahi-gpu
seeeath has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
seeeath has joined #asahi-gpu