00:45RSpliet: imirkin: Is that an excerpt from a G.M. Hopkins poem? https://www.lexico.com/definition/rewinded
00:48imirkin: yes, perhaps someone took poetic license in the kernel error print...
00:48imirkin: was trying to get that error to rhyme with another one
00:48imirkin: or have the right number of syllables..
15:32codedmart: Lyude: Just following up to see if there is any new news or ways I can help? I have been away for a few weeks.
15:34imirkin_: what was your issue?
15:35imirkin_: pci pm related?
15:58codedmart: imirkin_: I don't know the details exactly. I have a couple of issues I think. One is this: https://bugzilla.kernel.org/show_bug.cgi?id=205623. The other I am not sure, but I have a new P1 gen 2 Thinkpad with a Quadro T1000.
17:36Lyude: ah, it would definitely appear that having igt running on nouveau is exposing quite a number of bugs :)
17:36imirkin_: in igt, i hope :p
17:36Lyude: imirkin_: possible but unlikely
17:37Lyude: note this is also stuff we likely very rarely test in the real world, like overlays
17:37imirkin_: ben and i have tested them
17:37Lyude: also, my goal is to have basic igt tests passing with atomic so that's probably showing a bunch of bugs I wouldn't be seeing otherwise as well
17:37imirkin_: but yeah, not extremely commonly used in practice
17:37imirkin_: given that they're shit on nv50+
17:38imirkin_: (and only semi-recently added, as part of making stuff work on volta which is overlay-only)
17:38Lyude: imirkin_: tbh they're not much different from the kms planes that everything >icl (this code has been in i915 for a while, no nda to qorry about :) on i915 provides
17:39Lyude: although it seems like they're kind of limited on size?
17:39Lyude: but that might be yet another bug
17:39imirkin_: which gpu are you testing on?
17:39Lyude: imirkin_: GK104
17:39imirkin_: ok, so GK104 only does horizontal scaling iirc
17:40imirkin_: and i'm not *100%* sure that we even support scaling at all
17:40Lyude: fun :D
17:40imirkin_: although the underlying hw does do horizontal iirc
17:40imirkin_: we should reject anything that tries vertical
17:40imirkin_: (whether we do or not, dunno)
17:41imirkin_: basically on nv50+, there's no (usable) scaling
17:41imirkin_: which is like 75% of the point of overlays
17:41imirkin_: there are also no alpha overlays pre-volta
17:41imirkin_: (there's colorkey, but not sure that's implemented for nv50+... works fine for the pre-nv50 boards)
17:41Lyude: imirkin_: usable as in "nouveau supports this"??
17:41imirkin_: as in "hw supports this"
17:42Lyude: that is major lol
17:42imirkin_: iirc it only supports horizontal scaling
17:42imirkin_: which is ... less than useful
17:42Lyude: yes it is :S
17:42Lyude: but heh, that's nvidia's problem :P
17:42imirkin_: not entirely useless, if you think about e.g. DVD's with images that don't match the presentation AR
17:42imirkin_: but not entirely useful.
17:43imirkin_: volta gets you alpha blending at least
17:43imirkin_: but i don't think it gets you scaling.
17:43imirkin_: would have to check
17:44imirkin_: scaling should work on pre-nv41 iirc. i forget what the nv4x overlay situation is ...
17:44Lyude: wait, so they had scaling on nv4x but not nv50+? o-O
17:44imirkin_: well, they had scaling on nv4 through nv40 (but not nv41+)
17:45imirkin_: nv41+ has something funny. i don't remember.
17:46imirkin_: GeForce 256 added better scaling than what the Riva TNT(2) had
17:46imirkin_: not to mention higher bandwidth for those 1920x1200 resolutions.
17:47imirkin_: on nv5, at least, i get snow sometimes
17:47Lyude: what is colorkey btw? is it something like the CRTC background colors that intel display hw has/
17:48imirkin_: imagine that the year is 1995
17:48imirkin_: and you want to display a video
17:48imirkin_: you have your video in a nice buffer
17:48imirkin_: but then some pesky video player wants a big play button OVER that video buffer
17:49imirkin_: the idea is that the video player fills in a window with e.g. blue
17:49imirkin_: and the video buffer will only be displayed over the blue sections
17:49imirkin_: and so it can have its controls or whatever rendered on its "lower" plane show through the video
17:49Lyude: ohhhh, ok
17:50Lyude: that's absolutely silly lol, but maybe that was more common for GPUs of the time then it is these days
17:50imirkin_: or if you have multiple windows
17:50imirkin_: (i know, another insane thing...)
17:50imirkin_: and one window is actually OVER another one
17:50imirkin_: like the video player window
17:50Lyude: no i meant having to sacrifice a color to represent transparency in a plane
17:50imirkin_: you don't want the video to be displaying over the other window
17:50imirkin_: well, it's a hack to deal with a very real situation
17:50Lyude: mhm, makes sense
17:50imirkin_: the keying can be turned on and off
17:51imirkin_: at least on nvidia
17:51imirkin_: but it's just a nice and simple thing ... the video player fills the "video" area with blue, and then magic happens
17:52imirkin_: (could be any color, but blue is frequently used for whatever reason)
17:53imirkin_: anyways, pre-volta support colorkeys for overlays but not alpha blending
17:53imirkin_: we used to advertise alpha formats, but we don't anymore as of some moderately recent kernel
17:54imirkin_: (except on volta, where it actually works)
17:58Lyude: Ah, NV907E_SET_SIZE_OUT_WIDTH and no NV907E_SET_SIZE_OUT_HEIGHT, that's so bizarre
17:59imirkin_: one might assume it maintains AR
17:59imirkin_: but one would be mistaken
18:06Lyude: it's kind of weird too since I would have expected SIZE_OUT_HEIGHT to live in 30:16 of 0xE8. I wonder if when they introduced evo if they accidentally broke part of plane scaling in hw, but no customers were using it so they just never exposed it from the evo channel and left it broken in hw
18:10Lyude: on skl they've got a similar situation where iirc the hw comes with three controllable hardware planes (the cursor plane is disabled and replaced with a normal plane in order to use all three planes), but you can't actually use the third one in i915 because then gamma controls don't work for the third plane
18:14imirkin_: oh yeah, the way the LUT applies to overlays is also weird
18:14imirkin_: i don't remember whether it applies the way we have it set up
18:15imirkin_: anyways -- you can try sticking the height into those high bits
18:15imirkin_: perhaps it's there and just undocumented
18:15imirkin_: weirder things have happened
18:15Lyude: imirkin_: yeah that's what I was thinking :)
18:15imirkin_: i don't think anyone's done any serious RE on it
18:21Lyude: i want to mess around with some other stuff on the evo channel when I get some time and am extremely bored anyway, I realized that I'm pretty sure you can actually tell where nvidia's got methods hooked up (nvapeek 0x660400 0x15c, pretty sure anything that isn't 779ffddd is a method which might be implemented). and i'm fairly sure there's likely some more debugging methods beyond CRC stuff (like the
18:21Lyude: underflow method nvidia documents here: https://github.com/NVIDIA/open-gpu-doc/blob/master/gk104-disable-underflow-reporting/gk104-disable-underflow-reporting.txt )
18:25imirkin_: there's also nvamask which can be used to guess which bits of a register are defined
18:25imirkin_: basically it writes 0xfffffff to a reg and reads it back
18:25imirkin_: if any bits are missing, those bits must be invalid
18:26imirkin_: it's obviously highly destructive, but ... all in the name of science!
19:41Lyude: it seems the real mistake in igt was that some tests were passing that I don't think should actually be passing, lol...
21:19codedmart: Lyude: Sorry if I missed your response. Anything new or something I can help with?
21:20Lyude: codedmart: ah, not yet sorry! I just got back from vacation as well
21:20Lyude: I think right now we are waiting on responses from upstream pci maintainers
21:24codedmart: OK thank you!