08:34 dboyan: karolherbst: I scanned through the mmt trace you gave me yesterday, and found (sadly) that none of GK104_COMPUTE.UPLOAD is frame data
08:35 karolherbst: ohh, sad :(
08:35 dboyan: Most of them, including those long data, are shader binaries
08:36 karolherbst: okay
08:36 karolherbst: mhh, so despite being/having nvenc it still does CL kernel stuff?
08:36 karolherbst: "CL"
08:36 karolherbst: compute kernels
08:36 dboyan: I did see some compute invocations
08:37 karolherbst: well, the nvenc APIs are based upon CUDA, so I guess it has to be compute stuff
08:37 dboyan:wonders where all the frame data went
08:37 karolherbst: unified memory
08:38 karolherbst: I guess the GPU just has memory pages pointing to sys memory or so
08:38 karolherbst: I have a link for you
08:38 dboyan: actually the uvm module is writtem in C, and is growing as version increases
08:39 karolherbst: dboyan: https://developer.nvidia.com/sites/default/files/akamai/designworks/docs/NVIDIA%20Capture%20SDK%20Programming%20Guide.pdf
08:40 karolherbst: no idea if that helps with NVENC itself, but it explains how the both other things based upon nvenc work
08:41 dboyan: sadly, that seems windows-only
08:45 karolherbst: well sure, but still
08:45 karolherbst: this document might explain important things
08:48 dboyan: okay, i'll read when i have spare time
08:49 dboyan: btw, do we want to parse ioctls of nvidia-uvm in valgrind mmt?
10:57 dboyan: karolherbst: The capture sdk is actually available for linux: https://developer.nvidia.com/capture-sdk, might give it a shot tonight
10:57 karolherbst: :)
10:58 karolherbst: it would be so cool if nouveau would support this
10:59 dboyan: yeah
10:59 karolherbst: but it could be, that the SDK is only available for quadro class GPUs
11:00 karolherbst: I know that you can use it with the nvidia experience app on windows though
11:03 dboyan: "Failed to create a NvIFROGL session"
12:12 karolherbst: dboyan: figures
12:15 dboyan: karolherbst: what figures?
12:17 karolherbst: I mean, that this API is only there for Quadro class hardware
12:19 dboyan: hmm, sad
12:21 karolherbst: well, we will figure this out sooner or later
15:17 MarcinWieczorek: Hi. I need help with enabling vsync. Is anyone on?
15:32 medfly: hello nouveau. I am a hardware newbie reading the code. I'm curious about nvkm_msec etc.. why is it necessary to use the GPU's time for polling if an event occurred?
16:03 MarcinWieczorek: medfly: look for imirkin, he's a helpful guy
16:05 MarcinWieczorek: take care.
16:42 Lyude: "Little hope of reclocking becoming available for GM20x and newer GPUs as firmware now needs to be signed by NVIDIA to have the necessary access." is this just referring to the fact we don't have firmware to actually make these GPUs run?
16:43 Lyude: Also, what exactly is the "evo channel" ? Trying to debug some display issues with a GM204
16:44 skeggsb: Lyude: we could change clocks and voltage on gm20x (not sure about pascal), but, nvidia blocked the host from touching the fan control regs.. so, we'd run the risk of overheating the GPU if we tried...
16:45 skeggsb: Lyude: and, the nvidia display engine is controlled by a command buffer, not direct reg access, this is what "evo channels" are
16:45 Lyude: ah
16:45 skeggsb: nfi where "evo" comes from, but it's nvidia's name for them
16:46 Lyude: skeggsb: so the GM20x doesn't just have it's own internal fan controller that responds to temperatures?
16:47 skeggsb: nope, it's controlled by firmware running on PMU
16:47 skeggsb: some boards potentially have i2c controllers or something, but, generally not
16:47 Lyude: and I'm guessing the firmware we got from them isn't handling that?
16:48 skeggsb: fan control is actually the same as what we do for gm10x, nvidia just don't let the driver touch the registers anymore...
16:48 skeggsb: they haven't given us any PMU firmware at all
16:48 Lyude: ugh, and no plans on doing so I'm guessing
16:48 skeggsb: who knows
16:48 skeggsb: i won't hold my breath though...
16:48 Lyude: can it at least be extracted from the nvidia blob?
16:49 skeggsb: sure, if you can find it
16:49 skeggsb: they used to be in nice gzipped files, and you could scan for gzip signatures.. they caught onto that though, and stipped the headers
16:51 Lyude: i'll definitely look at it at some point
16:52 Lyude: noticing how nicely formatted nouveau's code is is pretty encouraging to make me want to play with nvidia stuff more
16:52 skeggsb: it depends what parts you look at ;)
16:52 Lyude: hehe
16:52 Lyude: can't be any worse then the glorious world of radeon copy pasta
18:27 Riastradh: drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c: for (todo = mask; engn = __ffs64(todo), todo; ...)
18:28 Riastradh: I don't think __ffs64(0) is allowed, so `engine = __ffs64(todo), todo' should be `todo && (engn = __ffs64(todo), 1)'.
18:33 Lyude: btw, does this error ring a bell for anyone? https://paste.fedoraproject.org/paste/aLMAQUBn1lG-5jDE5qZcpl5M1UNdIGYhyRLivL9gydE= seeing it on a GTX 970
18:35 karolherbst: Lyude: 4GB version? yes
18:36 karolherbst: Lyude: https://bugs.freedesktop.org/show_bug.cgi?id=94990
18:36 skeggsb: that's not that bug
18:36 karolherbst: ohhh
18:36 karolherbst: weird
18:37 Lyude: phew, was worried for a sec I might have gotten an annoying card
18:37 karolherbst: you did regardless
18:38 karolherbst: "To Be Filled By O.E.M." :D
18:38 mlankhorst: that vendor is the worst :)
18:38 Lyude: ah, I had just bought a bunch of cards for testing and didn't think of looking at the manufacturer
18:39 karolherbst: well if you wanna know what runs best on nouveau, get a 780 ti ;)
18:39 Lyude: Also going through the source code am I correct in saying that does have something to do with parsing information on the ram?
18:39 Lyude: karolherbst: hehe, this is testing for other things
18:40 karolherbst: skeggsb: but I guess there is also no progress on the one bug?
18:40 skeggsb: karolherbst: i'll try and get to that again later in the week
18:41 karolherbst: and by any chance, do you have a GPU with HBM2 somewhere near around you? :D
18:41 skeggsb: it slipped my mind atm, however, i haven't slept, so, today isn't a great day to try fixing that :P
18:41 skeggsb: i don't even know what my GP100 has
18:41 karolherbst: it has HBM2 for sure
18:42 karolherbst: skeggsb: mind checking the first byte of the mem type table on that?
18:42 karolherbst: we figured out GDDR5X, but not HBM2 yet
18:43 karolherbst: for odd reasons GDDR5X is 0x8, so HBM2 should be something in [0x4, 0x7]
18:43 skeggsb: i wasn't sure if it was HBM or HBM2, it definitely has a different type code than the other gp10x though, i can't recall it off the top of my head
18:44 karolherbst: HBM2
18:44 skeggsb: i'll probably have it plugged in when i get to the office at some point though
18:44 karolherbst: would be awesome :)
18:44 karolherbst: Echelon9 want to write a patch for nouveau to add both to the code
18:44 karolherbst: *wants
19:09 Lyude: Also, just so i don't end up putting myself on a wild goose chase: are there any MMIO faults that would happen that wouldn't result in things nessecarily breaking?
19:26 Calinou: Lyude: be happy, I have a GTX 1080, probably the worst Nouveau card
19:26 Calinou: IIRC the mouse cursor is stuck at the top-left with Nouveau
19:26 Calinou: (haven't tried with a kernel > 4.8)
19:29 Lyude: Calinou: i'm not bothered by this lol, I only have these cards for dev purposes
19:29 Lyude: also the 1080 doesn't have firmware just yet :P, so that's probably a pretty big part of it
19:29 Lyude: unless you already extracted all the firmware yourself
19:30 skeggsb: it does, if you use gnurou's branches.. i'll likely merge those today
19:30 skeggsb: and, the cursor issue is fixed
19:30 Lyude: oh awesome
19:30 Lyude: skeggsb: jfyi i'm taking a look at the MST issues I was seeing with nouveau and that dell monitor
20:35 Riastradh: skeggsb? imirkin? What's the right way to submit a quick ~one-line bug/patch? (Misuse of __ffs64 -- replace `for (...; engn = __ffs64(todo), todo; ...)' by `for (...; todo && (engn = __ffs64(todo), 1); ...)' to avoid passing 0.)
20:51 skeggsb: Riastradh: it's not a bug
20:52 skeggsb: yes, "0" is undefined for it, but, the result will never be used if "todo" is 0
20:52 skeggsb: so, it doesn't matter
21:12 Riastradh: skeggsb: So the contract for __ffs64(0) is simply garbage value, not undefined behaviour? I got the impression undefined behaviour. Treating it that way -- and asserting nonzero -- makes it easier to detect legitimate mistakes.