05:21 imirkin: https://people.freedesktop.org/~imirkin/nvbios/
05:21 imirkin: online nvbios parser
05:21 imirkin: enjoy.
17:51 lovesegfault: imirkin, karolherbst Thanks again for the help yesterday
17:51 lovesegfault: I've been running on nouveau with absolutely no issues now
17:57 Lyude: Anyone know if any cards >= gf119 actually had any kind of PIORs?
17:57 Lyude: nvidia definitely seems to mention PIORs in gf119+, but I'm not sure if that actually means there were any cards that had them
17:58 Lyude: (skeggsb maybe?)
17:58 imirkin_: Lyude: remind the group what PIOR is used for?
17:59 Lyude: imirkin_: programmable input/output resource, basically just one of nvidia's equivalents to a video encoder that's off-chip (SORs, serial output resources e.g. on-chip encoders are more common, and of course you also have DACs)
17:59 imirkin_: oh right
17:59 imirkin_: i don't think i've seen anything like that on kepler
17:59 imirkin_: (or newer)
17:59 imirkin_: it's all SOR's from what i've seen.
18:00 Lyude: hm, imirkin_ - just leaves the gf119 then i'm assuming?
18:00 imirkin_: even that ... seems unlikely
18:00 imirkin_: why do you ask?
18:00 imirkin_: note that there are a lot of boards out there
18:00 imirkin_: with all kinds of weird shit
18:00 Lyude: wondering since i got bored at some point and actually went and hooked up more display cap probing
18:01 Lyude: oh wait, lyude, you have access to the vbios repo
18:01 Lyude: why not just check that
18:01 imirkin_: :)
18:01 imirkin_: Lyude: btw, dunno if you saw, but: https://people.freedesktop.org/~imirkin/nvbios/
18:01 imirkin_: should probably hook it up to github gists somehow
18:01 Lyude: imirkin_: no I haven't, neat o:
18:01 imirkin_: i did it for edid-decode too
18:02 imirkin_: https://people.freedesktop.org/~imirkin/edid-decode/
18:02 Lyude: imirkin_: btw, the thing in particular I hooked up with caps probing is the ability to probe for the highest supported pixel clock, so you might find that useful for 4k over hdmi :)
18:02 imirkin_: hdmi2.0 already works...
18:03 Lyude: yeah, but i thought you had to enable it via some kernel parameter?
18:03 imirkin_: no
18:03 Lyude: ah, lol
18:03 Lyude: well, it's a nice thing to have anyway
18:03 imirkin_: if you want to do something that's out of spec, you have to use a kernel param
18:03 imirkin_: e.g. if you want to drive your 165mhz tmds at 300mhz
18:03 Lyude: ahh
18:03 imirkin_: or if we "detect" it wrong
18:04 imirkin_: like for fermi, we just set it to 225, but i've seen strong evidence that blob driver allows 297 on some fermi boards
18:05 Lyude: yeah, having the max clk stuff might fix cases where we detect it wrong
18:09 karolherbst: Lyude: I see you've implemented the interlaced checks as well
18:09 karolherbst: I think there are also some clock caps somewhere around as well
18:09 karolherbst: not sure if for fermi though
18:10 Lyude: karolherbst: yep-that's the part I'm looking at :)
18:10 karolherbst: I wrote some patches a while ago.. let me check if I had anything
18:10 Lyude: karolherbst: there is for gf119, for earlier we should just hardcode the max clock
18:10 karolherbst: Lyude: https://github.com/karolherbst/nouveau/commits/fix_interlaced_reject
18:10 Lyude: karolherbst: ah lol, I was wondering if you still had that around. I've got most of the stuff written except for the hardcoded values before you could query for max clock caps
18:11 karolherbst: https://github.com/karolherbst/nouveau/commit/d837208d5e6b805ce8444b3511fd4cbacf9af9ce is the commit to read out the caps
18:12 karolherbst: which gen was 90 again?
18:12 Lyude: ahh, yeah i've got it done a little more simply - just moved the evo channel init into nouveau_display_create(), call the caps function from there (I don't think you need to actually wait for the 0x8c method to complete? but maybe i'm wrong on that
18:12 Lyude: karolherbst: gf119+
18:12 karolherbst: mhh, okay
18:13 imirkin_: so kepler+ is 297mhz
18:13 imirkin_: so it's basically not worth checking the maximums
18:13 karolherbst: yeah no idea, I didn't really spend much time investigating as much
18:13 karolherbst: imirkin_: well, we read the data anyway
18:13 Lyude: imirkin_: meh, may as well. i'm assuming if they're there there's probably a reason for it
18:13 imirkin_: Lyude: yeah, if the limits are reliable
18:13 karolherbst: but yeah...
18:14 imirkin_: which they might not be :)
18:14 karolherbst: I think I have some limits somewhere saved...
18:14 karolherbst: and it was weird
18:14 karolherbst: let me search a little
18:14 Lyude: i'd actually assume they're more reliable then anywhere else we can read them from, just based on some of the docs i've got from nvidia
18:14 karolherbst: Lyude: I think they are weird
18:19 karolherbst: heh.. apparently I didn't save the data... maybe it's somewhere else
18:20 karolherbst: oh well
18:20 karolherbst: Lyude: I remember that there were some weird values reported, but I don't remember
18:20 karolherbst: anyway, worth checking that on some gpus
18:24 Lyude: karolherbst: huh, interesting, just because I'm pretty sure that's the value that the fe itself actually validates the clock against
18:24 Lyude: also, confirmed basically no piors gf119+
18:25 karolherbst: well, we don't get 297MHz reported, but 300MHz eg
18:25 karolherbst: but maybe it doesn't matter
18:25 karolherbst: but there were some other oddities I think
19:35 imirkin_: tbh i don't remember where 297 comes from
19:37 Lyude: imirkin_: vbios apparently
19:37 imirkin_: yeah, i've seen it there
19:38 imirkin_: but i couldnt convince myself that it was reliable
19:38 Lyude: karolherbst: jfyi, the runtime PM issue doesn't affect the P50
19:38 imirkin_: back when i was investigating, i thought the vbios values could be wrong
19:38 imirkin_: and/or indications of something else
19:38 karolherbst: Lyude: yeah.. I am midly aware
20:21 lovesegfault: imirkin_: You cursed me yesterday, now I'm trying to understand ACPI
20:28 imirkin_: heh
20:28 imirkin_: don't worry, you'll get over it
20:29 lovesegfault: Why is it that running glxinfo shows info for my iGPU only, not the nv card?
20:29 imirkin_: glxinfo only shows the gpu it runs on
20:29 lovesegfault: c.f. https://gist.github.com/747ea9a38e7fa8677f0271c8c3aadbfb
20:29 lovesegfault: Oh, I see
20:29 imirkin_: you could run DRI_PRIME=1 glxinfo
20:29 imirkin_: which will spin up the nvidia gpu
20:29 lovesegfault:tries
20:30 lovesegfault: imirkin_: bingo :)
20:34 lovesegfault: Interesting, why does it seem like glxgears with vsync off runs _way_ faster on the iGPU than on nouveau?
20:34 lovesegfault: like, 10x more fps
20:34 imirkin_: because PCIe bandwidth is finite
20:34 imirkin_: glxgears with vsync off on a remote gpu is a measure of pcie bandwidth, basically
20:35 lovesegfault: Oh, I see!
20:35 imirkin_: you can transfer so many frames per second given PCIe speeds
20:35 lovesegfault: I had never thought of that, but it makes perfect sense
20:35 imirkin_: (whether nouveau hits that, i don't know for sure, but it seems probable)
20:37 lovesegfault: Also, what the hell is this gallium thing I see mentioned all over mesa-related discussions?
20:37 imirkin_: it's an abstraction that makes it possible to write a single hardware driver with various API layers on top
20:38 imirkin_: (and to have the idiosyncracies of those APIs be normalized so the drivers don't care)
20:39 lovesegfault: Oh, is it a similar effort to this[1] but at a lower level of the stack?
20:39 lovesegfault: [1]: https://github.com/gfx-rs/gfx
20:39 imirkin_: yeah
20:39 imirkin_: the inverse of that :)
20:40 imirkin_: i.e. allows multiple APIs to be used as input to a single hw driver
20:41 lovesegfault: I see, that must make you guys' lives easier!
20:42 imirkin_: yeah
20:42 imirkin_: it allows a nice separation of concerns
20:42 imirkin_: one could *probably* make a more optimal driver without it, but it'd be a lot harder, and less shareable across backends
21:02 Lyude: imirkin_: many have said that about gallium, but every time I worry about that I just remind myself that iris exists because it's faster then the non-gallium i965 driver ;)
21:02 Lyude: (there's more reasons then just gallium for that speed boost i'm sure, but it's a pretty good case in point imo)
21:15 lovesegfault: Lyude: What's iris?
21:15 lovesegfault: Oh, is it a gallium-based intel driver?
21:15 lovesegfault: (assuming since you compared it to i965)
21:31 imirkin_: yes
21:31 imirkin_: which is more performant in many cases
21:31 imirkin_: but just coz they did something dumb with i965 (or more likely, were sunk under the weight of some bad decisions)
21:31 imirkin_: doesn't mean that one couldn't make a more optimal drier by integrating GL + backend more closely
21:32 imirkin_: that said, it's definitely not worth it given the amount of developer time available
21:32 imirkin_: but e.g. back in the bad old days, glVertex* would just submit a command
21:32 imirkin_: this is more optimal than having layers.
21:35 Lyude: imirkin_: yeah, I think they made a bunch of big mistakes with RA iirc
21:35 imirkin_: that's unrelated
21:35 imirkin_: compiler is the same
21:35 imirkin_: they made mistakes in their command emission strategy
21:35 imirkin_: which weren't fixable without rewriting the whole driver
21:35 imirkin_: also iris takes advantage of some stuff htat wouldn't be possible if you supported pre-gen8
21:36 Lyude: ahh
21:36 lovesegfault: Is skylake post-gen8?
21:36 imirkin_: yes
21:36 imirkin_: skl = gen9
21:36 lovesegfault: Oh, then maybe I can use iris?
21:36 imirkin_: bdw = gen8
21:36 imirkin_: you definitely can
21:37 lovesegfault: Do I need some special version of mesa?
21:37 lovesegfault:wonders what his version of mesa is
21:37 lovesegfault: 19.3.3
21:37 Lyude: mesa collector's edition with added dlc only
21:37 imirkin_: while iris is available in that version
21:37 imirkin_: it's not enabled by default
21:37 imirkin_: it's enabled by default in 20.0
21:37 lovesegfault: Lyude: lol
21:38 Lyude: ;P
21:38 lovesegfault: 20.0 isn't stable yet, right?
21:38 imirkin_: it's released
21:38 imirkin_: i dunno what you mean by stable
21:38 imirkin_: bug-free? i don't think any version achieves that
21:39 lovesegfault: I mean that it isn't an RC or a pre-release, etc
21:39 imirkin_: it's not
21:39 lovesegfault: Nice
21:39 imirkin_: https://www.mesa3d.org/relnotes/20.0.0.html
21:40 imirkin_: wow, that's so sad ... a total of 7 changes from me for that whole release
21:40 imirkin_: (since 19.3, presumably)
23:01 Lyude: karolherbst: you still around by chance?