hertz has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
seeeath has joined #asahi-gpu
hightower4 has joined #asahi-gpu
hightower3 has quit [Ping timeout: 480 seconds]
hightower3 has joined #asahi-gpu
seeeath has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
seeeath has joined #asahi-gpu
hightower4 has quit [Ping timeout: 480 seconds]
seeeath has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
amarioguy has joined #asahi-gpu
hightower4 has joined #asahi-gpu
hightower3 has quit [Ping timeout: 480 seconds]
possiblemeatball has joined #asahi-gpu
seeeath has joined #asahi-gpu
seeeath has quit []
seeeath has joined #asahi-gpu
seeeath has quit []
* cr1901
reads the driver survival guide
hertz has joined #asahi-gpu
nyx_o has quit [Quit: WeeChat 3.5]
possiblemeatball has quit [Quit: Leaving]
c10l has quit [Quit: Bye o/]
c10l has joined #asahi-gpu
faruk has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
nyx_o has joined #asahi-gpu
<lina>
alyssa: Is there some way of compiling GLSL for an internal shader in mesa, and some reasonable way of adding intrinsics to it?
<lina>
For the compute context save/restore/misc blob, the logic is complicated enough I don't want to be messing around with assembly/binary (or building it in raw NIR), but I need some way of inserting at the very least some special register loads and some still-mysterious instructions...
zzywysm has joined #asahi-gpu
LinuxM1 has joined #asahi-gpu
amw has quit [Ping timeout: 480 seconds]
LinuxM1 has quit [Quit: Leaving]
c10l1 has joined #asahi-gpu
Misthios has quit [Quit: Misthios]
Misthios has joined #asahi-gpu
c10l has quit [Ping timeout: 480 seconds]
tim has joined #asahi-gpu
tim is now known as Guest1569
faruk has joined #asahi-gpu
faruk has quit []
<karolherbst>
lina: sooo... intel is using OpenCL C to implement ray traycing. They compile it to spir-v/nir and use that at runtime
<karolherbst>
You can, in theory, use whatever language you want to compile to llvm and then to spir-v, but we have some internal tooling around for CL C and GLSL specifically
<cwabbott>
radv uses glslang to compile GLSL to SPIR-V, Intel uses OpenCL C because that's what the Windows driver is using and the kernels are shared between drivers
<cwabbott>
glslang is a lighter weight dependency and might be better for intrinsics because there's a SPIR-V intrinsics thing that allows you to insert SPIR-V more or less directly
<cwabbott>
however you'd still have to define your own SPIR-V extension somehow, not sure what the process for that is
hightower3 has joined #asahi-gpu
hightower4 has quit [Ping timeout: 480 seconds]
hightower3 has quit [Ping timeout: 480 seconds]
zalyx has quit [Read error: Connection reset by peer]
seeeath has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
seeeath has joined #asahi-gpu
nate8 has quit [Quit: Leaving]
nate8 has joined #asahi-gpu
<alyssa>
NIR builder is probably still the sane way to go.
<alyssa>
I don't remember the blob being that big
<alyssa>
Also, I would just straight up use the blob first, and then once it's properly working look into reverse-engineering the fine details and replacing it.
<alyssa>
dougall: mentioned he was interested in r/e'ing that
<lina>
alyssa: I already looked through some of it, I'll probably cover it during tomorrow's stream ^^
<lina>
dougall might want to look at the mystery instructions though
<lina>
I'm more interested in what it's doing at a higher level and how to replace it
<lina>
The main reason I wanted a higher level actual language is that it has to deal with data structures to some extent, and a big outer switch statement inside a loop, and it just feels pretty painful to write all that in NIR...
<lina>
It's funky, I think one of the special registers is actually a FIFO? The outer loop and the way it reads one register twice and adds together the values makes no sense otherwise.
<alyssa>
what register #?
<lina>
146/147 is the save/restore context descriptor pointer, but then 144 seems to be a command FIFO, and after reading that it reads 146 again and (for some commands) treats it as an offset into a pointer which only makes any sense if reading 144 pops the FIFO and 146/147 are a data payload.
<lina>
I only ever saw command 0xf, which is the one that runs some mystery instructions and terminates, and never saw 146/147 changing, but that would make sense if there is only one item in the FIFO here
<lina>
Also I'm pretty sure 20 is core ID
<alyssa>
plausible
<lina>
Those are the only SRs it reads
<lina>
Also this is all assuming I'm reading the shader asm correctly... I'm not exactly used to it ^^;;
yamii has quit [Remote host closed the connection]
yamii has joined #asahi-gpu
Guest1569 has quit [Ping timeout: 480 seconds]
seeeath has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
seeeath has joined #asahi-gpu
cr1901 has quit [Remote host closed the connection]
cr1901 has joined #asahi-gpu
cylm has joined #asahi-gpu
faruk has joined #asahi-gpu
bcrumb has joined #asahi-gpu
bcrumb_ has joined #asahi-gpu
bcrumb_ has quit []
bcrumb_ has joined #asahi-gpu
bcrumb has quit [Ping timeout: 480 seconds]
alyssa has quit [Quit: leaving]
bcrumb_ has quit [Quit: WeeChat 3.8]
faruk has quit [Read error: Connection reset by peer]
possiblemeatball has quit [Quit: Leaving]
possiblemeatball has joined #asahi-gpu
possiblemeatball has quit []
possiblemeatball has joined #asahi-gpu
seeeath has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
seeeath has joined #asahi-gpu
faruk has joined #asahi-gpu
faruk has quit []
nate8 has quit [Remote host closed the connection]
nate8 has joined #asahi-gpu
possiblemeatball has quit [Quit: Leaving]
seeeath has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]