02:21 juri_: I notice the envytools pages are pretty out of date.
02:22 juri_: should i be trying to update those, or has a better source of low level data been created?
02:24 imirkin: what's out of date about them?
02:25 juri_: well, the 2013 copyright is not inspiring, but they start to get really vague around the GF100 or so.
02:28 imirkin: as long as it's copyrighted after mickey mouse, the year doesn't matter
02:29 imirkin: updating the year implies some kind of material update, and debating what that is precisely is not a useful way to spend time
02:29 juri_: I'm just making sure i'm not duplicating effort, by contributing to these docs.
02:30 imirkin: there is no more "up-to-date" source of docs, other than code in nouveau
02:30 juri_: ok then. thanks!
02:56 imirkin: juri_: but probably wise to check here before doing any substantial work
02:56 imirkin: thing is ... not much has changed since GF100 for a ton of things
03:02 HdkR: Why change things that aren't broken? :D
03:12 imirkin: HdkR: they do that all the time... on every isa rev, tex instruction operands change.
03:13 HdkR: imirkin: Obviously they must be broken
03:13 HdkR: :P
03:57 imirkin: Lyude: i think i see what's wrong with adding outputs -- i don't manage crtc's properly
03:57 imirkin: ugh, this is all coz of zaphodheads
04:00 imirkin: er hm. maybe that's not it =/
04:30 imirkin: Lyude: well, i pushed the fix to avoid crash on unplug, hopefully
04:33 imirkin: Lyude: when you plug the other screens, i'd be curious what happens when you look at 'xrandr', as well as what happens when you try to futz with them by turning them on/off (with xrandr)
04:34 imirkin: i suspect you have some kind of desktop manager which is muddying the waters
05:25 npnth: I've got a system (GK106) which is mostly stable, except that gimp acts like a time bomb. After a couple minutes of use, the machine pretty usually locks up hard. I can move the cursor, but no input appears to be accepted.
05:26 npnth: Remoting in via ssh doesn't seem to help anything; killing everything from gimp down to X doesn't bring back functionality.
05:27 npnth: I've got KASAN and some other debugging stuff turned on, but all I see in dmesg is "nouveau 0000:01:00.0: fifo: FB_FLUSH_TIMEOUT". (I think I also might occasionally see some stuff about a channel, but I don't see that right now.
05:28 npnth: I'm using -mainline, latest libdrm, all that, and this has been happening for a couple of months right now.
05:30 npnth: What should I do in order to get useful information for a bug report next time this happens? I should probably run nouveau's upstream kernel, of course. Would output from strace help, or are there some CONFIG_ switches I should flip?
05:30 imirkin: npnth: GTX 660?
05:32 imirkin: some of those boards inexplicable hang. using blob grctxsw firmware seems to help in those cases.
05:34 npnth: imirkin: A 650, but that sounds close enough.
05:35 npnth: I've not heard of that firmware, but I'll look into it, thanks.
05:37 imirkin: npnth: follow the instructions here: https://nouveau.freedesktop.org/wiki/VideoAcceleration/#firmware
05:38 imirkin: npnth: and then boot with nouveau.config=NvGrUseFW=1
05:38 npnth: imirkin: Will do, thanks!
05:39 imirkin: i've only heard of this issue on some GTX 660's
05:40 imirkin: but we haven't the faintest clue what causes it
05:40 imirkin: since boards that repro it have never been in the right developer's hands
05:43 npnth: Hm, I'm on gentoo, I have sys-firmware/nvidia-firmware installed, and I'm booting with nouveau.config=NvGrUseFW=1. However, dmesg does contain a few lines like "nouveau 000:01:00.0: Direct firmware load for nvidia/gk106/fecs_inst.bin failed with error -2".
05:44 npnth: Is that expected, or am I perhaps still missing some files?
05:45 npnth: Hm, well manually running your scripts for extraction produces quite a few more files than I have in /lib/firmware/nouveau currently. Perhaps that would help.
13:47 karolherbst: imirkin: I am currently wondering how much of a perf increase we get if we wouldn't do certain bound checks like on image operations. Hidden behind an env variable or extension, which can be enabled for certain applications/games or so
13:59 imirkin: karolherbst: none, i'm sure. image operations are slow.
14:00 karolherbst: imirkin: we do bound checks on other things as well, no? Maybe something involving shared memory?
14:00 imirkin: memory operations are slow.
14:00 imirkin: gmem operations are slow.
14:00 imirkin: alu is fast.
14:01 karolherbst: reading from const memory is also kind of fast I guess?
14:02 imirkin: relatively, yeah
14:04 HdkR: :D
14:06 imirkin: karolherbst: feel free to play with it
14:06 imirkin: i just really doubt it'll have any effect
14:06 karolherbst: yeah, should be relativly easy to figure out what is affected by that
14:06 karolherbst: but my thinking was it still kills 3 instructions per access + one read less from const memory
14:07 imirkin: at the cost of GL conformance
14:07 gnarface: and uh... security?
14:08 karolherbst: gnarface: virtual memory
14:08 imirkin: gnarface: userspace doesn't enforce security
14:08 karolherbst: imirkin: yeah right, we could only do that for application never going out of bounds
15:10 pendingchaos: am I correct in thinking that nvc0_screen_fence_emit() is only called when pushbuf is being flushed?
15:10 pendingchaos: if so, shouldn't there be a PUSH_KICK() or something in nvc0_hw_query_fifo_wait()?
15:11 imirkin_: the first bit is correct.
15:12 imirkin_: the second part isn't
15:12 imirkin_: let's see here...
15:12 imirkin_: right
15:12 imirkin_: so the query has a sequence number
15:13 imirkin_: what query_fifo_wait does is throw a wrench into the fifo works until the memory address where the fence lives == the sequence number
15:13 imirkin_: hm, but your point is that if hq->is64bit, this could lead to a deadlock? i'd have to think about it.
15:14 imirkin_: i don't remember how fence emission works precisely enough
15:14 imirkin_: oh, no, because hq->fence->sequence != the current sequence number
15:15 imirkin_: also tbh i dunno if ACQUIRE_EQUAL is right. should probably be greater-or-equal or something
15:15 pendingchaos: yeah, i'm talking about queries when hq->is64bit is true
15:15 imirkin_: this stuff is pretty subtle
15:15 imirkin_: anyways, so the fence's memory address never changes
15:15 imirkin_: but each fence object has its own sequence number
15:16 imirkin_: you know
15:16 imirkin_: maybe there *is* something missing
15:16 imirkin_: not a push_kick
15:17 imirkin_: but maybe a check if hq->fence == screen->fence
15:17 imirkin_: or rather
15:17 imirkin_: if hq->fence->state != emitted
15:17 imirkin_: then emit it
15:46 imirkin_: pendingchaos: hrmph... nouveau_fence_kick would be the function, but it's not public. i guess easy enough to just do if (hq->fence->state < NOUVEAU_FENCE_STATE_EMITTED) PUSH_KICK()
16:01 pendingchaos: should I create a patch adding that and changing ACQUIRE_EQUAL to ACQUIRE_GEQUAL?
16:03 imirkin_: pendingchaos: well, like i said ... this stuff is pretty subtle
16:03 imirkin_: it'd be worth playing with, at least
16:04 imirkin_: did you run into some issue, or did this come up when just reading code?
16:04 pendingchaos: I ran into some issue
16:05 pendingchaos: adding a PUSH_KICK() seems to fix the issue
16:05 imirkin_: are you using the pipeline stats counters?
16:05 imirkin_: or is this for the query overflow thing?
16:05 pendingchaos: it's for the query overflow thing
16:05 imirkin_: nice :)
16:06 imirkin_: i'd say definitely throw in the PUSH_KICK when state < EMITTED
16:06 imirkin_: that's a clear bugfix.
16:06 imirkin_: althoughhhh
16:06 imirkin_: i wonder if in that case
16:06 imirkin_: you can do something simpler
16:06 imirkin_: like throw in a synchronize and just move on
16:06 imirkin_: but ... meh
16:07 imirkin_: i.e. NVC0_3D_SERIALIZE
16:13 freecoder_: the link to "block architecture diagram" at https://nouveau.freedesktop.org/wiki/NvHardwareDocs/ seems to be broken
16:13 imirkin_: should probably just delete that page
16:14 imirkin_: you can probably use web.archive.org to find it...
16:15 freecoder_: cool. but i suppose the page is probably outdated by now?
16:15 imirkin_: freecoder_: http://ixbtlabs.com/articles2/gffx/nv40-part1-a.html
16:16 imirkin_: updated.
16:17 pendingchaos: the images on the page don't load though
16:17 pendingchaos: they seem to refer to digit-life.com
16:18 freecoder_: the link from wayback machine appears to work - https://web.archive.org/web/20080111122628/http://www.digit-life.com/articles2/gffx/nv40-part1-a.html
17:51 imirkin_: freecoder_: thanks. updated.
22:19 karolherbst: the hell is this blend_support_all_equations thing :O
22:20 karolherbst: I am sure this string has the worst chars/instruction ration of all possible strings you can come up in glsl...
22:30 karolherbst: imirkin: FBFETCH is used to "read outputs" in fragment shaders?