02:50 bazzy: I haven't tested the recent fix to my screen flicker bug extensively yet, but I feel that's behind me now. I want to thank each and everyone in here that helped me out during my first time in #nouveau -- Thanks to RSpliet pmoreau karolherbst imirkin mwk and gnarface. I hope I got everyone. Happy holidays!
17:37 karolherbst: ui, actually found a codegen bug: cube arrays also have 3 args, not 3+1. Not quite sure if some codegen internal thing depends on that being 4, but...
17:41 karolherbst: that's because those arg is not a vector, but texel coordinate + face index
17:42 pmoreau: imirkin: How would you prefer the renaming series to look like: one single patch that renames the files + renames the namespaces (nv50_ir -> nvir), or one patch for each, or something else?
17:43 karolherbst: imirkin: maybe now you know why that texture grad didn't work out for cube map arrays?
17:44 AndrewR: Hi all! There is syslog about two nouveau freezes (machine was powered down by ACPI -so, only GPU freezed): https://www.pastebin.ca/3951807 . First hang was after 1+ day of uptime, and second just after two hours ...
17:45 karolherbst: imirkin: because cube map arrays == cube map in terms of accessing, there is no additional dimension for access
17:45 karolherbst: for cube map arrays that is
17:46 karolherbst: and that handleManualTXD kind of depended on the fact, that an array has one another dimension
17:47 karolherbst: pmoreau: uhm... probably tomorrow or the day after, I will work on adding a lowering helper, because this is like the only big thing left I have to take care of (64bit integer lowering)
17:48 pmoreau: karolherbst: Cool! I was going to have a quick look at it for the Split64BitOpThing, but I’ll let you look into it then ;-)
17:48 karolherbst: well
17:49 karolherbst: I was more thinking about moving the lowering in from_tgsi into common code
17:49 pmoreau: I’ll let you create the files and such, and I’ll just scheme in and plug in my thing in it
17:50 karolherbst: like i64ABS
17:50 karolherbst: okay
17:52 pmoreau: Sounds good. I’ll do some checking on my 64-bit integer constant propagation and send a pull request for it.
17:53 pmoreau: Where do you think the handling of `cvt u64 s64` should be happening? During the legalisation of SSA, or legalisation pre-SSA?
18:56 pmoreau:does not understand how CTS image tests can succeed when images aren’t supported/fully implemented
18:57 pmoreau: Ah, I found how to make things work without implementing them: run the tests on another driver/GPU ;-)
20:19 karolherbst: pmoreau: everything we do in from_tgsi should be moved in pre SSA
20:20 karolherbst: we should keep changes minima;
20:20 karolherbst: l
20:20 karolherbst: pmoreau: well, there are a lot of false positives. even piglit is full of those
21:23 pmoreau: karolherbst: It seems like a good idea to keep changes minimal.
21:34 karolherbst: pmoreau: I know, but we should at least copy it
21:34 karolherbst: it was just to point out what we will need in the end
21:34 karolherbst: but the hepler should also be SSA compatible
21:40 pmoreau: 38% success rate for the basic test of the CTS. Almost half of the failing ones are linked to images.
21:40 karolherbst: :)
21:40 karolherbst: well the math ones should have a better rate
21:41 pmoreau: Maybe, or they are all missing one or two opcodes. :-D
21:41 pmoreau: But they should be rather easy to implement.
21:58 karolherbst: pmoreau: I shouldn't have kept the most annoying issues until the end :(
22:00 pmoreau: karolherbst: Cause they are extra annoying? :-)
22:00 karolherbst: something like that
22:00 karolherbst: and important
22:00 karolherbst: like the interpolation things in arb_gpu_shader5
22:01 karolherbst: those are just expressed in an annoying way in nir
22:01 pmoreau: :-/
22:01 karolherbst: but I could just lower it away actually with a nir pass
22:01 karolherbst: well basically they have opcoodes for the centorid and the other thing
22:01 karolherbst: but... for us it is just a flag on pinterp
22:02 karolherbst: the nir variable accessed tells me this though
22:02 karolherbst: so I think I can just go through the nir shader and replace those ops with the "normal" ones and just check the variable for the mode falgs
22:02 karolherbst: *flags
22:04 pmoreau: IIRC, those are decorations in SPIR-V.
22:35 karolherbst: pmoreau: I think I want to remove all the lowering logic out of the IR translators
22:35 karolherbst: if they want to use a 64bit version of an OP, where we have no hardware supporting it, I don't see why it is the resonsibility of the translator to know that
22:35 pmoreau: That seems look a good idea.
22:36 pmoreau: Right
22:36 karolherbst: and there is also things like OP_VOTE which has only u32 results
22:36 karolherbst: but nir wants a 64bit one
22:36 pmoreau:Time to solve that out-of-SSA issue.
22:36 karolherbst: :)
22:36 pmoreau: There should be a u64 one, at least on recent generations
22:37 karolherbst: yeah, doesn't matter really
22:37 karolherbst: because the translator shouldn't care
22:37 karolherbst: exactly because in the future it might be valid
22:37 karolherbst: or maybe never
22:37 pmoreau: Hum, probably note since you vote within a warp, which are still 32 threads.
22:37 karolherbst: but translators should be dump
22:39 karolherbst: I would even say that we should have two SSA stages: SSA -> make hw compatible -> SSA again
22:39 karolherbst: or at least the opts
22:40 karolherbst: well bad wording there
22:41 pmoreau: Isn’t that what the legalisation passes are for?
23:13 karolherbst: pmoreau: I meant it differently. Like for some lowerings you never know if you want to do theam before SSA opts or after
23:13 karolherbst: there are a few things you could do again, like CSE
23:14 karolherbst: but maybe when somebody finds some time, we could try to decouple the passes and remove dependencies. Or make them more visible
23:14 karolherbst: one good example is pow
23:15 karolherbst: pow gets lowered into lg2/mul/ex2
23:15 karolherbst: you could do smart opts for pow with constants
23:15 karolherbst: or you could do other things
23:16 karolherbst: but you can also optimize the lowered version with something which came before/after
23:16 karolherbst: *with
23:46 pmoreau: local_arg_def is not there yet: it generates an ILLEGAL_INSTR_PARAM2 error, causes a buffer eviction to fail, the card is locked up and I have a full core at 100% trying to flush some CPU TLB. \o/
23:49 karolherbst: yay
23:52 pmoreau: karolherbst: Want to try out that test on your laptop? O:-)
23:52 karolherbst: I would rather not to