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