08:12tagr: skeggsb: thanks for testing, I'll send out a proper patch soon
13:43karolherbst: okay so.. uff
13:44karolherbst: runpm + gdb = fail
15:25imirkin: tagr: wow, you've been busy!
15:59tagr: imirkin: there's more where that came from =)
15:59tagr: imirkin: I've also revived my sync FD series that will allow Tegra DRM and Nouveau to work together to support implicit synchronization
16:00tagr: which will make kmscube -A work
16:00tagr: imirkin: just need to clean up the series and push out rebased userspace changes (there's a libdrm and a Mesa patch that go with it)
16:01tagr: there's a tiny bit of new ABI, which it a bit of churn for something that's actually pretty tiny
16:01tagr: but I don't really see a way around it
16:02tagr: might be useful to hold the ABI change back and roll it into something bigger, but I'm not sure if anything's in the works
16:02tagr: the ABI is mostly compatible with the current PUSHBUF IOCTL (it's uncreatively named PUSHBUF2 =) and layered on top, so it's not actually that bad
16:05karolherbst: tagr: uff.. pushing for a new interface is always troubling :/
16:05karolherbst: usually we need to merge the mesa changes first or... something?
16:05karolherbst: there is something stated in the drm document as we really don't want to go through the pain to support something for many years
16:06karolherbst: and figure out a year later that the interface isn't worth it
16:06karolherbst: or broken or whatever
16:06karolherbst: tagr: anyway, skeggsb is working on a new interface. You might want to sync up with him
16:07tagr: karolherbst: I understand that, but on the upside I do have the libdrm and Mesa changes and this is for implicit synchronization, so it's fairly mainstream
16:07tagr: yeah, if skeggsb has anything that we could roll this into, that'd be preferable of course
16:08tagr: I'll likely just refresh everything I have and send out the series, then we can discuss about how best to move this forward
16:08karolherbst: but yeah.. I am also working on moving libdrm into mesa to fix the outstanding multi context issue...
16:08karolherbst: and it's quite painful
16:08karolherbst: yeah.. sending them out is probably the best
16:09tagr: are you trying to actually move libdrm into Mesa, or just replace libdrm usage in Mesa by direct IOCTL usage and duplicating whatever infrastructure is present in libdrm_nouveau?
16:09karolherbst: because I actually want to change the interface
16:09karolherbst: and libdrm does annoying bits internally
16:09tagr: mhm... I see how that would be a bit tedious
16:10tagr: fortunately something you only have to do once, though
16:10tagr: it'd still be interesting to have something lower-level than Mesa around for basic testing, though
16:10karolherbst: ohh, it won't be part of gallium
16:10karolherbst: and only depends on libdrm actually
16:10karolherbst: so it should be fairly easy to use for other stuff
16:11tagr: it's going to take me a while before I get gv11b support far enough (if I actually do get past secboot at all =) to make use of Mesa
16:11karolherbst: we don't support volta anyway
16:11karolherbst: or turing
16:11tagr: shouldn't it be possible to run at least some basic rendering with the existing driver?
16:11karolherbst: new ISA
16:12tagr: ah... bummer
16:12karolherbst: and quite incompatible
16:12karolherbst: it's not just new encodings
16:12karolherbst: but the entire c/r stack was reworked
16:12karolherbst: (or removed?!?)
16:13karolherbst: and gr/compute are also different :)
16:13karolherbst: and turing is different as well for the classes... at least the ISA stays the same compared to volta
16:13tagr: not sure I can convince anyone to let me work on the ISA...
16:13karolherbst: skeggsb already has patches
16:14tagr: not that I had even the faintest idea about any of that
16:14karolherbst: but he wants to figure out secboot on turing first
16:14tagr: okay, one thing at a time
16:14karolherbst: tagr: write a smart script pushing bits through nvdisasm -> congrats, you jut got the entire ISA :p
16:15karolherbst: the ISA is indeed the trivial part
16:15tagr: you still have to put things back together in Mesa, right?
16:15karolherbst: the gr/compute classes are more annoying + writing the actual code
16:15tagr: hmm... didn't somebody from NVIDIA publish class documentation for these? or was this only for display?
16:16karolherbst: let me check
16:16karolherbst: it's usually only displays + compute
16:16karolherbst: graph is way too much I think
16:16karolherbst: there isn't much going on in the compute class..
16:16karolherbst: it's actually not that big
16:44HdkR: karolherbst: CRS was removed
17:03karolherbst: okay, then it was removed :)
17:05HdkR: It doesn't make as much sense with the new threading model
17:06HdkR: (Although it could have been nice to still receive a "free" mask handling mechanism)
17:07karolherbst: I never actually looked into compiled code with a complex CFG actually
17:07karolherbst: maybe I should
17:07karolherbst: or maybe not
17:07karolherbst: depending on how much it will damage my sanity
17:07HdkR: It won't be that bad
17:08HdkR: It's way easier to track the CFG than previous archs
17:08karolherbst: three nested loops was already bad enough on older gens
17:08karolherbst: or rather the loop merging opt nvidia did
17:08karolherbst: and honestly.. I don't look forward to ever implement that in codegen
17:09karolherbst: I'd rather add if/else trees in nir than attempting any magic in codegen
17:10HdkR: nir_nv instructions? :P
17:11karolherbst: huh, why?
17:11HdkR: Would anyone else actually benefit from if/else being described in the IR?
17:12karolherbst: I am sure loop merging is worth it
17:12karolherbst: on every arch
17:12karolherbst: just.. I am sure you have a hard time finding people being insane enough to actually implement it.. even though, loop merging isn't that complicated
17:13karolherbst: just looking at the shaders is
17:13HdkR: Loop merging doesn't directly rely on if/else does it?
17:13karolherbst: it does
17:13karolherbst: you predicate instructions in the fully optimized shader
17:14karolherbst: loop merging is more of a path selection kind of thing
17:15HdkR: I guess I'm thinking of the wrong kind of loop merging or the constraints incorrectly
17:16karolherbst: well.. instead of doing nested loops, you merge them into one loop
17:17HdkR: oh! Nested loop merging, okay, I was thinking independent loops :P
17:17karolherbst: ahh, no
17:17karolherbst: that's boring :D
17:17HdkR: THat makes way more sense of being annoying
17:18karolherbst: it's a good way to reduce pressure on the crs....
17:19karolherbst: I am sure that's one huge reason why some games run like shit on nouveau
17:19HdkR: I could see that
17:20HdkR: You'll still have stack woes on Volta+ in this instance though
17:20karolherbst: HdkR: ever wondered if there are actually shaders using 7 predicates? :D
17:20HdkR: Oh definitely, I've generated them before
17:21HdkR: It's not terribly difficult but usually doesn't happen
17:23HdkR: Spilling a predicate is always fun to see happen