00:48
JoshuaAshton has joined #asahi-gpu
02:36
_whitelogger has joined #asahi-gpu
04:52
ar has quit [Quit: brb]
04:56
ar has joined #asahi-gpu
06:11
rwhitby has joined #asahi-gpu
06:17
rwhitby has quit [Quit: rwhitby]
06:17
rwhitby has joined #asahi-gpu
06:19
rwhitby has quit []
09:40
crabbedhaloablut has quit []
09:40
crabbedhaloablut has joined #asahi-gpu
09:44
phiologe has joined #asahi-gpu
10:34
richbridger has quit [Remote host closed the connection]
10:36
sven has joined #asahi-gpu
10:37
sven has joined #asahi-gpu
12:05
psydroid[m] is now known as psydroid
12:26
Lightsword has joined #asahi-gpu
15:29
ar has quit [Quit: leaving]
15:29
ar has joined #asahi-gpu
15:34
alyssa has joined #asahi-gpu
15:38
bloom has joined #asahi-gpu
15:38
<
bloom >
Hello hello :)
15:38
alyssa has left #asahi-gpu [#asahi-gpu]
15:39
<
bloom >
marcan: can i haz op? :-p
15:44
<
marcan >
bloom: done, rejoin should autoop
15:45
<
bloom >
marcan: thank you uwu :p
15:45
<
bloom >
well, no excuse not to AGX today then!
15:46
<
bloom >
and tomorrow might be a stat holiday so I might even get something done
15:46
<
marcan >
I'm definitely going back to the hypervisor tomorrow, better hope I don't finish that too soon or else I'll start working on the drm drver :p
15:46
<
bloom >
I'm kinda over it
15:46
<
bloom >
finish your hypervisor, start the DRM driver, see what I care ;-p
15:47
<
marcan >
aw, and you'd gotten me excited :p
16:30
cepheus has joined #asahi-gpu
16:36
kubes has joined #asahi-gpu
17:47
choozy has joined #asahi-gpu
18:04
ar has quit [Quit: brb]
18:04
ar has joined #asahi-gpu
18:36
mini has quit [Quit: ZNC closing...]
18:43
minimaul has joined #asahi-gpu
19:23
ar has quit [Quit: brb]
19:23
ar has joined #asahi-gpu
20:24
kubes has quit [Quit: Leaving]
21:13
richbridger has joined #asahi-gpu
22:05
yrlf has joined #asahi-gpu
23:29
<
bloom >
I admit I'm confused by the idioms the Metal compiler uses for loops
23:43
<
bloom >
I guess the primitive is "do { ... } while(x)" as opposed to plain while
23:44
<
bloom >
which means "while(x) { .. }" becomes "if (x) { do { ... } while (x) }"
23:48
<
bloom >
of course, it could also become "do { if (!x) { break } ... } while(true)"
23:48
<
bloom >
which is the natural translation from the NIR `loop { if (!x) { break } .. }`
23:49
<
bloom >
the number of instructions is the same between the two -- HOWEVER, the Metal translation should be faster
23:49
<
bloom >
why? the loop body is much smaller
23:50
<
bloom >
the literal NIR way has a body of "if_fcmp, break, pop_exec, ..., while_fcmp, jmp_exec_any"
23:50
<
bloom >
whereas the Metal way, despite adding 2 instructions
_outside_ the loop, has a body only of "..., while_fcmp, jmp_exec_any"
23:50
<
bloom >
so for a single iteration they're the same, for 2 or more the Metal one is faster