00:16 koz_: imirkin_: How do I get a gltrace?
00:17 imirkin_: apitrace dump
00:17 koz_: OK, I'll provide them to the thread ASAP.
00:38 Lyude: karolherbst: btw, I forgot to tell you: before I left for thanksgiving last week I actually managed to get kepler2 cg_ctrl working! there were two registers that weren't CG_CTRL that we apparently needed to program
00:39 imirkin_: Lyude: what does that translate into? power savings?
00:39 Lyude: imirkin_: yeah
00:39 imirkin_: measured? or just hoping?
00:40 Lyude: measured! Although I haven't actually tried kepler2 under stress yet, but so far I've managed to save a p significant amount of power on kepler1 with CG_CTRL+BLCG
00:40 imirkin_: cool
00:40 koz_: Hi karolherbst!
00:41 Lyude: imirkin_: after this I'll be working on the isohub most likely
00:41 karolherbst: Lyude: anoyed by the flickers on reclocking?
00:42 Lyude: not yet, but I definitely see them happen
00:42 Lyude: we need it for dynamic reclocking, so it's gotta get done at some point :)
00:42 karolherbst: right, because they happen like only when you reclock
00:42 karolherbst: and I think there is a tiny chance to kill the GPU in the process
00:42 Lyude: also: it's likely just programming the isohub correctly will lead to more power savings
00:42 karolherbst: Lyude: well actually not so critical, because it only happens if you switch pstates
00:42 imirkin_: afaik ben made some progress in understanding it
00:42 imirkin_: so check with him
00:43 imirkin_: maybe RSpliet as well
00:43 Lyude: ok
00:45 Lyude: also karolherbst re: that random cg register you showed me (one of the UNK ones?), I've seen that before but I think it's better that we don't touch it. Most of the time I don't even see nvidia's driver writing to it
00:45 karolherbst: some of the regs are only touched once anyway
00:45 karolherbst: might be on of those
01:02 Lyude: rhyskidd: btw: all those registers you mentioned in those pushes ^ do you know if they've got BLCG/ELPG registers near them as well or are they just standalone
01:06 koz_: imirkin_: The traces they want are huge. Where can I put them (Github won't take them).
01:06 koz_: (yes, I have compressed them)
01:07 imirkin_: first xz -9 them
01:07 imirkin_: then put them on google drive
01:07 imirkin_: or similar
01:07 imirkin_: how huge is huge?
01:07 koz_: imirkin_: I did zip -9. Will xz work better?
01:07 imirkin_: shouldn't be more than a couple GB
01:07 koz_: ~600M each, compressed.
01:07 imirkin_: well, zip is extra annoying
01:07 imirkin_: xz should work much better in any case
01:07 koz_: OK, I'll do that instead then.
01:11 imirkin_: (zip is annoying since it's a container format, which is overkill for a single file)
01:11 koz_: imirkin_: Fair enough.
01:11 imirkin_: it'd be like making a tar file with a single file inside.
01:11 koz_: Compressing now, should be up momentarily.
01:12 imirkin_: not sure when i'll be able to look
01:12 imirkin_: btw you're complaining about it being slow in-game, right? not during startup?
01:12 koz_: imirkin_: It's fine - I think the other person was the one who requested it.
01:12 koz_: And yes, that's right.
01:12 koz_: Basically, my framerate goes down to ~20.
01:15 imirkin_: unfortunately i only have totally shit GPUs
01:15 imirkin_: so i'm sure my framerate will be 0.02fps
01:15 imirkin_: bbl
01:15 koz_: See ya!
05:37 rhyskidd: Lyude: ^^ there's at least BLCG registers near some. can double check later, but wouldn't be surprised by ELPG as well
09:15 karolherbst: mupuf: I was able to narrow the missing bits down by quite a lot! https://gist.github.com/karolherbst/d82372046148582d8204f26d62af670b
09:15 karolherbst: with this hack, the falcon start without any issues
09:16 karolherbst: and this should give us a nice trace I can look into
09:17 mupuf: So, it is an ordering issue
09:17 karolherbst: huh?
09:17 karolherbst: no
09:17 karolherbst: this is nvkm_engine_ref
09:17 karolherbst: this is basically called on ioctl time
09:17 karolherbst: where just gr is refed
09:18 karolherbst: so this patch basically aborts the gr init a bit earlier, runs fini on gr, and does a full init on gr
09:18 karolherbst: so you start something like glxinfo in userspace and the gr engine gets put into the init state
09:19 mupuf: ....
09:22 karolherbst: dmesg if debug=trace: https://gist.github.com/karolherbst/67cb3e9d57c657e6f1f4ba90cece4572
09:22 karolherbst: this is basically what happens
09:23 karolherbst: that "sec2: queue 0 rewinded" part is a bit odd though
09:23 karolherbst: and that the "priv: GPC1: 419c9c 00030000 (1940820d)" message appears a bit later
09:24 karolherbst: my guess is, that in the gr init path (because fini does nothing in the mmio space) some condition change depending on the GPU state
09:24 karolherbst: and that we put some slightly different values into certain regs
09:25 karolherbst: and maybe that's what you meant by ordering issue? But I am quite sure we do everything in the same order as nvidia does
09:25 karolherbst: but we sometimes stick different values into certain regs
09:25 karolherbst: anyway. tracing time
09:49 karolherbst: interesting
09:51 karolherbst: there is basically just one thing which stands out
09:51 karolherbst: first round: W 0x087a00 0x01000010 second round: W 0x087a00 0x01000030
09:52 karolherbst: but this is also just some msgquere stuff
11:51 RSpliet: Lyude: there's a good chance that correct isohub configuration leads to better bandwidth utilisation for multi-monitor set-ups. If not a marginally lower power consumption (better use of data (bank) locality -> fewer precharge/activate commands -> lower power consumptions in DRAM chips -> profit), then a slightly higher performance of other applications.is feasible. Not sure if measurable.
11:52 RSpliet: but by the very least it's one fewer papercuts to die from
12:12 karolherbst: mupuf: ... okay... I think in the end you were right about ordering issue, I just thought you were refering to the ordering of the objects/engines within nouveau. disable/enable PGRAPH in PMC.ENABLE seems to be the most crucial part in this entire do init twice thing.... and my assumption is now: SEC2 has to be ready _before_ GR is enabled, which kind of makes sense, right?
12:14 karolherbst: or maybe even the GR has to be in NS mode from the begining, otherwise SEC2 doesn't trust it or something like that?
12:14 karolherbst: well, I will check it out. Those suspend/resume cycles are annoying
12:36 karolherbst: .... https://gist.github.com/karolherbst/d82372046148582d8204f26d62af670b this makes it work, because it makes sense
12:36 karolherbst: nvkm_pmu_pgob is a noop on pascal
12:46 karolherbst: how does this makes even sense
12:46 karolherbst: SEC2 is even started after that part
13:42 imirkin: koz_: can you also make a trace with mipmapping disabled?
18:06 Lyude: RSpliet: I figured as much, skl does a lot of similiar power saving stuff
19:06 koz_: imirkin: On Nouveau or Nvidia blob?
19:06 imirkin_: koz_: doesn't really matter
19:06 koz_: imirkin_: OK, sure, will do.
19:15 Lyude: btw RSpliet or rhyskidd:either of you have any idea what PTHERM.FECS_IDLE_FILTER and PTHERM.HUBMMU_IDLE_FILTER are supposed to do?
19:16 johnjay_: hmm, lots of non-functioning links on this page: https://github.com/pathscale/pscnv/wiki/Introductorycourse
19:16 johnjay_: imirkin_: looks like what you said in the other channel may not be as easy as I thought!
19:16 Lyude: Those two ended up being the magic registers I had to write in order to get normal CG_CTRL working on kepler2
19:16 imirkin_: johnjay_: all the pathscale stuff is beyond ancient
19:17 imirkin_: johnjay_: docs basically don't exist for anything
19:17 imirkin_: so i wouldn't bother searching for them
19:17 imirkin_: if you're looking for a high-level overview, i'd recommend ....
19:17 imirkin_: [gimme a few to find it]
19:18 johnjay_: imirkin_: yeah it's basically what I saw the last time I went there looking for some docs to read lol
19:18 imirkin_: johnjay_: https://keyj.emphy.de/files/linuxgraphics_en.pdf
19:18 johnjay_: oh nice i have that bookmarked
19:18 johnjay_: i knew that was for something
19:19 imirkin_: docs from intel or amd assume you already know how GPUs work in general
19:19 imirkin_: everything gets outdated pretty quickly, so ... not worth really writing
19:19 johnjay_: right
19:19 johnjay_: well is there anything relevant to the fact I have an nvidia card?
19:19 johnjay_: i.e. something I could do with that that I couldn't do with a radeon card say
19:19 johnjay_: or is it all too general at the intro level?
19:20 imirkin_: you could run nouveau with it, can't do that with an amd card ;)
19:20 johnjay_: sigh
19:20 johnjay_: alright i'll see about getting a dvd burned so i can install on bare metal
19:20 imirkin_: usb key
19:20 johnjay_: i think i only gave myself 16GB partition though for linux
19:20 johnjay_: my usb key is also 16GB
19:20 imirkin_: so it's a match.
19:20 johnjay_: coincidentally
19:20 imirkin_: and a dvd is 4gb
19:21 imirkin_: so it should def fit on there
19:21 johnjay_: i guess. the problem with debian is the installer is garbage
19:21 johnjay_: essentially if you want packages you have to already know what they are called
19:21 imirkin_: yeah, so much worse than windows
19:21 johnjay_: clicking all the text boxes leaves out things like vim or emacs. -_-
19:21 imirkin_: where if you know what it's called, you still can't have it.
19:22 johnjay_: i think windows and linux are both crap
19:22 johnjay_: it's just a relative type of crap. :D
19:22 imirkin_: anyways, from the sounds of it, you're not really ready to dive into driver development
19:23 imirkin_: you should familiarize yourself with ... linux, graphics, etc
19:23 imirkin_: and depending on the aspects that interest you, compilers, simd architectures
19:23 johnjay_: what do you recommend after I watch those slides?
19:23 imirkin_: find another set of slides that explains those slides ;)
19:24 imirkin_: while accurate, it's a hard set of slides to understand fully
19:25 johnjay_: ok
19:26 gnarface: i know the names of lots of debian packages
19:26 imirkin_: more than anything, you need to have motivation to fix or implement $x
19:26 gnarface: you should easily be able to get a working build environment in less than 2GB
19:27 gnarface: you can have emacs and vim and a network connection in less than 512MB
19:27 gnarface: the biggest roadblock for you is going to be your bad attitude
19:27 gnarface: which, unfortunately i can't fix for you
19:28 imirkin_: oooh. can you fix mine?
19:28 gnarface: probably not
19:28 imirkin_: :(
19:29 gnarface: the debian metapackage "build-essential" should bring in most the important developer tools though
19:31 gnarface: https://wiki.debian.org/BuildADebianKernelPackage
19:31 gnarface: this might help
19:35 johnjay_: gnarface: have you ever tried to get an hp photosmart to print in linux?
19:36 gnarface: no, but if it's possible i can tell you how to do it
19:36 gnarface: well i can tell you where to start
19:36 gnarface: 1) make sure cups is installed and running
19:37 gnarface: 2) connect to http://localhost:631/
19:37 gnarface: (with a web browser)
19:37 gnarface: click around in that web interface, find the printer, try to activate it and print a test page
19:37 imirkin_: johnjay_: i've always gotten that stuff to work
19:37 imirkin_: however there are some printers that are too crazy
19:37 gnarface: HP is usually pretty good about printer support compared to other brands, but that's not to say much more than half of their printers actually work
19:37 imirkin_: the problem, of course, is that you're getting printers from shitty vendors (definition of shitty is "no linux drivers")
19:38 gnarface: (and even if the printer part works, don't bet on the scanner part working too)
19:39 gnarface: i've had luck in some cases using the generic postscript driver on unsupported printers, but it's been years since i've tried that trick so i don't know how well it works these days (that was before CUPS)
19:40 johnjay_: gnarface: I tried apt-cache search . | grep -i metapackage
19:40 johnjay_: build-essential wasn't listed. apparently it's in the devel and optional sections
19:40 gnarface: no, metapackages don't show up in that search
19:40 gnarface: there's no devel and optional section
19:41 gnarface: there's main, contrib, and non-free
19:41 gnarface: and all the developer stuff is in main
19:41 johnjay_: it says Section: devel
19:41 johnjay_: Priority: optional
19:41 imirkin_: either way - this channel is not the right place to discuss debian's awesome packaging system
19:41 gnarface: johnjay_: just apt-get update && apt-get install build-essential, it will prompt you before actually doing anything
19:42 johnjay_: imirkin_: maybe they could add a package learn-nouveau
19:42 johnjay_: then you just apt-get install it and it opens that slide show
19:42 imirkin_: feel free to suggest it to them.
19:48 allmightymart: is me jesus here, or monkey tax payer, Lyude aka monkey do you pay some bills?
19:49 allmightymart: *bejesus
19:49 allmightymart: metsjeesus raisk tyra vittu raisk
19:49 allmightymart: siin me kokku saime
21:34 koz_: imirkin_: Uploaded as a new comment on that thread.
21:44 RSpliet: Lyude: no idea, soz
21:47 orbea: Just curious, are there any noteworthy improvments for nouveau between 4.12 and 4.14 kernsls?