08:41 mlankhorst: hakzsam: argh was busy :(
11:59 imirkin_: fun, someone figured out the sched codes for maxwell: https://github.com/NervanaSystems/maxas/wiki/Control-Codes
15:00 imirkin_: Karlton: "good" news -- i can repro the terasology fail on my GK208 as well.
15:00 imirkin_: now to stare at a ton of shaders :)
15:02 tobijk: imirkin_: if it helps, i still have the trace of terasology which i once inspected more closely
15:03 imirkin_: tobijk: mmmm... i'd rather look at it myself tbh
15:03 tobijk: np
15:04 imirkin_: since it works on nvc0, i'm going to concentrate on the changes between fermi and kepler
15:04 imirkin_: like the stupid texdep things
15:04 tobijk: imirkin_: as far as i remember it had something to do with batching up draw calls
15:05 imirkin_: huh?
15:05 tobijk: the terasology problem
15:06 imirkin_: i'm not familiar with "batching up draw calls"
15:07 tobijk: let me look at the trace again, maybe i'll find it again ;-)
15:11 imirkin_: gah! FFMA.FTZ R9, R9, 1, R16
15:11 imirkin_: i thought we optimized that out :(
15:11 tobijk: thats it already?
15:11 imirkin_: no
15:11 imirkin_: just stupid code
15:12 Karlton: imirkin_: nice, I wish you great success in your endeavor :)
15:15 tobijk: ah now i remember: glCallList(s)
15:16 imirkin_: tobijk: that shouldn't be related to any problems
15:16 tobijk: mh you were suspecting them back then as well, dunno just what i remember :)
15:19 imirkin_: probably where the problematic draw comes from
15:20 imirkin_: however by the time it reaches nouveau, it's not a call list at all
15:20 imirkin_: just a regular draw like any other
15:20 tobijk: mh ok
15:25 imirkin_: uh oh. looks like there's a branch to a sched instruction
15:25 imirkin_: can't imagine that'd be a good thing...
15:26 tobijk: sounds reasonable: execute in the wrong order and we get garbage
15:26 tobijk: good you found the sched insn thing a few hours ago?
15:28 imirkin_: huh?
15:28 imirkin_: oh, that's for maxwell
15:28 imirkin_: and it's not like we didn't know that it was there... just didn't know what it meant
15:34 a1fa: imirkin_: does vdpau acceleration work on NV43 - 6600 GT (AGP). I did the firmware extract, but I guess no suitable firmware is loaded
15:35 imirkin_: a1fa: check the video accel page i pointer you to, it has all the info you need
15:35 imirkin_: tobijk: hrm, well it renders differently now, but... still fail :(
15:36 tobijk: imirkin_: after changing the insn we takled about above?
15:36 imirkin_: after changing the branch to point to the actual instr
15:36 tobijk: ah
15:37 imirkin_: tobijk: http://hastebin.com/wehinuzude.mel something like that, but in emit_nvc0 for you
15:37 imirkin_: actually if you could test whether that changes anything that'd be nice -- there could be more issues with gk110
15:38 tobijk: on it
15:38 a1fa: ah imirkin_ vp1
15:38 a1fa: N/A ;(
15:38 imirkin_: a1fa: yes. works fine with xvmc (for mpeg1/2)
15:39 a1fa: anything in AGP that i could get that would get vdpau support?
15:40 imirkin_: tobijk: this is the emit_nvc0 version: http://hastebin.com/akajocigoy.mel
15:40 imirkin_: a1fa: to decode h264? hmm... maybe there were agp r600's?
15:40 tobijk: already have it inserted, but thanks
15:40 imirkin_: i think G80+ are all PCI-E (and a few with PCI versions)
15:41 imirkin_: [oh, and naturally that will destroy the world for fermi, but i'll fix that up]
15:45 tobijk: imirkin_: looks the same, or at least not that different
15:45 imirkin_: hm ok
15:45 imirkin_: o well
15:45 tobijk: at least i dont see a difference :/
15:46 imirkin_: you did add it to the right place yeah?
15:46 imirkin_: i.e. not in f->pp == OP_CALL, but below it?
15:46 tobijk: right before the " // currently we don't want absolute branches" natually
15:47 imirkin_: that should be ok
15:49 imirkin_: hm you might be right that it doesn't change anything
15:49 imirkin_: i realized i was on another branch between the before/after
16:21 imirkin_: texture2D(shadowMap, texCoord + vec2(1.0/SHADOW_MAP_RESOLUTION, 0)).x
16:21 imirkin_: ugh
16:22 imirkin_: that code is just so painful
16:22 imirkin_: this is what textureOffset is for...
16:22 imirkin_: i guess they want to stay in GL2-land =/
16:24 tobijk: wild guess, but i guess thats not the cause, happes in GL3 land as well
16:28 imirkin_: the code is written for #version 120
16:28 imirkin_: it's unfortunately not taking advantage of various GL3 features. that's what i'm complaining about
16:28 imirkin_: anyways... looks like the green channel is just not making it out =/
16:28 imirkin_: the red is correct, but the green is missing
16:29 tobijk: so sometimes the green one makes it, sometimes not? memory access problems * urgh*
16:30 imirkin_: no, probably something dumb
16:39 tobijk: what bothers me is that sometimes things are see-through in my trace :/ makes me wonder if there are not several problems with that game
16:40 imirkin_: yeah, i see a bunch of rendering artifacts beyond the colors
16:51 imirkin_: GAH!!!
16:52 imirkin_: ok, found a big issue :(
16:52 imirkin_: stupid conditional logic. why can't shaders just not have any funny business.
16:52 imirkin_: turns out that texture instructions sometimes occur inside of conditional logic
16:52 imirkin_: and furthermore, the RA likes to insert constraint moves
16:53 imirkin_: and furthermore, if that constraint move sticks around, it needs a texbar before it.
16:53 imirkin_: but it looks like the thing that inserts texbars runs before those constraint moves get added
16:54 tobijk: O.o
16:54 imirkin_: ugh.
17:00 imirkin_: so i don't forget, here is a program that causes this: http://hastebin.com/ipirusuves.avrasm
17:00 tobijk: i read virus :D
17:03 imirkin_: hmmmm... insertTextureBarriers runs post-ra
17:03 imirkin_: weird.
17:05 tobijk: shader is way bigger for e7 compared to c0
17:06 imirkin_: 7 instruction difference... probably the texbars
17:07 imirkin_: keep in mind that kepler also gets 8 bytes of sched info in ever 64 bytes of instructions
17:07 tobijk: oh right
17:07 imirkin_: i.e. 8 byte sched + 7 8-bite instructions
17:07 imirkin_: while nvc0 also has 4-byte instructions. although iirc we don't use them
17:08 imirkin_: not sure why
17:29 imirkin_: tobijk: this fixes it for me: http://hastebin.com/camogiqeqa.hs
17:30 imirkin_: obviously that's a BS fix, i need to think about wtf it's doing and figure out what to do with it
17:30 imirkin_: calim: comments appreciated ;)
17:34 tobijk: imirkin_: confirmed
17:34 imirkin_: well that was fun
17:36 imirkin_: i have no idea why that thing triggers... need a lot more prints
17:37 imirkin_: that condition actually seems ok, so i'm a bit confused....
17:42 tobijk: erhm yeah, dont know, playing with that condition is not very useful :D
18:00 imirkin_: i think this is a deeper problem in the whole tex use logic
18:00 imirkin_: ugh.
18:01 imirkin_: way too clever for its own good :(
18:03 tobijk: that is?
18:04 toptwo: for nouveau firmware, it is enough to just have the nvidia firmware files exist in /lib/firmware/nouveau or more needs to be done beyond that for working accel?
18:21 imirkin_: tobijk: well, some things get merged that probably shouldn't, and it decides that the tex instruction itself is a use, which in turn dominates the *real* use in the bb, and the code only adds the first use in any particular bb. ugh.
18:22 Karlton: imirkin_: yes, that diff resolves the artifacts and purpleness! :D
18:29 imirkin_: Karlton: thanks for confirming. now to figure out a proper way of fixing this issue
18:29 imirkin_: and by 'now' i of course mean 'later' ;)
18:36 tobijk: that insertTextureBarriers pass) does not get read easily :/
18:37 imirkin_: it's actually quite simple
18:37 imirkin_: the problem is that it's getting garbage input
18:37 imirkin_: or at least unexpected input
18:37 imirkin_: the tex's inputs and outputs got merged into one thing
18:38 imirkin_: which causes hilarity to ensue
18:38 imirkin_: that's the problem with doing these things post-RA
18:39 imirkin_: but RA will sometimes insert mov's too, so you can't just do it after...
18:39 imirkin_: er, before
21:13 imirkin_: skeggsb_: not sure if you saw in the scrollback, but looks like someone took the time to work out the maxwell control code stuff. let me know if you plan on trying to integrate it into mesa
21:15 skeggsb_: imirkin_: oh, i missed that
21:16 imirkin_: skeggsb_: https://github.com/NervanaSystems/maxas/wiki/Control-Codes
21:16 skeggsb_: yeah, reading it now :P
21:34 imirkin_: btw, i have a patch that fixes branch targets on kepler/maxwell to avoid jumping to sched entries
21:34 imirkin_: not sure if that'd help your gm200 woes
21:35 imirkin_: in case you're interested: http://hastebin.com/uyixuhaxag.diff
23:36 imirkin: skeggsb_: btw, also wanted to direct your attention to https://bugs.freedesktop.org/show_bug.cgi?id=90276#c9 in case you missed it
23:36 imirkin: looks like someone bisected the PDISP fails to an innocuous-seeming commit