04:26 tagr_: mlankhorst: no, unfortunately not
04:27 tagr_: mlankhorst: up to and including Tegra K1 there isn't really any dedicated hardware that you can talk to from the CPU, you need to upload firmware to the AVP first because it is the only one with access to dedicated decoding hardware
04:28 tagr_: Tegra X1 has dedicated blocks, most of which I think are very close to the GPU counterparts
04:34 karolherbst: Tom^: are you there?
07:16 karolherbst: anybody here using gallium nine with steam under wine? I can't start it anymore :/ it works without nine though
07:17 sarnex: karolherbst: yeah its borked there are patches on the ML to fix it
07:17 sarnex: it's from the targets/* cleanup
07:17 karolherbst: ohhhh
07:18 karolherbst: sarnex: which ones?
07:18 karolherbst: sarnex: this? http://lists.freedesktop.org/archives/mesa-dev/2015-November/101176.html
07:18 karolherbst: and the next one
07:18 sarnex: nope
07:19 sarnex: 1: http://lists.freedesktop.org/archives/mesa-dev/2015-November/101137.html
07:19 sarnex: 2: http://lists.freedesktop.org/archives/mesa-dev/2015-November/101169.html
07:19 sarnex: gentoo user patching doesnt seem to work though so if you use gentoo you have to manually do it
07:19 karolherbst: thanks
07:19 sarnex: np
07:19 karolherbst: sarnex: nah it works for me for every package
07:19 karolherbst: :p
07:19 sarnex: yeah i mean they apply but for me and another user compile fails
07:20 sarnex: but compile fails*
07:20 karolherbst: sarnex: /etc/portage/bashrc: https://gist.github.com/karolherbst/7a49418b2c8a1d9ee44a
07:20 karolherbst: ohhh
07:20 karolherbst: that is what you mean
07:20 sarnex: yeah i have the same thing but post_src_prepare
07:20 karolherbst: use pre
07:20 karolherbst: post runs after autoconf and stuff
07:20 sarnex: would that effect something like this?
07:21 karolherbst: so you might run autoconf and then patch the stuff
07:21 sarnex: post is useful for my mesa build
07:21 karolherbst: in pre you would patch first, then run autoconf
07:21 sarnex: right with post it does patch after autoreconf, but does that matter?
07:21 karolherbst: mhh
07:21 karolherbst: if the patches changes automake files?
07:21 sarnex: the compile error is cant find header
07:22 sarnex: doesnt look like they do
07:22 karolherbst: will try it out
07:22 sarnex: ok let me know :)
07:22 karolherbst: but my ebuild does a pretty minimalistic mesa build
07:22 sarnex: oh i just use wine-a-holics so i can get ixit/mesa-3d changes as well
07:23 karolherbst: it buils only i965 + gallium nouveau + llvmpipe
07:23 karolherbst: ohh
07:23 karolherbst: that I have also patched in
07:23 sarnex: :)
07:23 karolherbst: sarnex: https://github.com/karolherbst/F.U.N.-overlay/blob/master/media-libs/mesa/mesa-9999-r1.ebuild
07:24 karolherbst: I added some VIDEO_CARDS entries basically
07:24 sarnex: ah ok
07:24 karolherbst: like nouveau_vieux
07:24 sarnex: i have 3 gpus on different drivers so i might as well stick with the same ebuild
07:24 karolherbst: so that I don't build it
07:24 sarnex: r600 radeonsi nouveau
07:24 karolherbst: ohh
07:24 karolherbst: so -classic anyway?
07:24 sarnex: yeah i have -classic
07:24 karolherbst: yeah in that case, my ebuild won't change anything
07:25 karolherbst: I just changed that, because I need classic for i965
07:25 sarnex: ah, yeah i have amd cpu so now integrated gfx
07:25 sarnex: no*
07:25 sarnex: well no i965 i mean
07:26 karolherbst: hehe mes failed
07:27 karolherbst: *mesa
07:27 sarnex: cant find header?
07:27 karolherbst: ahh crap
07:27 karolherbst: I know the issue
07:27 sarnex: ah ok
07:27 karolherbst: the first patch adds new files
07:27 Tom^: karolherbst: now i am.
07:27 karolherbst: and because portage does automagic with the patches
07:27 karolherbst: it applies fine with -p0
07:27 karolherbst: which means
07:27 karolherbst: they are in b/
07:27 sarnex: karolherbst: oh can you explain how to fix it
07:28 sarnex: i prolly have same issue
07:28 Tom^: i work 08
07:28 karolherbst: remove b/ from the patch
07:28 sarnex: both?
07:28 Tom^: 07:00 - 16:00 gmt+1
07:28 karolherbst: first one is enough
07:28 sarnex: ok thanks
07:28 karolherbst: Tom^: +1? ohh already
07:28 karolherbst: ohh no
07:28 karolherbst: mhhh
07:28 karolherbst: wait
07:28 sarnex: :)
07:28 karolherbst: shit
07:28 karolherbst: we have +1 already :D
07:28 Tom^: its 16:28 here right now :p
07:28 karolherbst: yeah
07:28 karolherbst: I know
07:29 karolherbst: sarnex: stupid epatch auto magic :D
07:29 karolherbst: Tom^: mhhh
07:30 karolherbst: Tom^: would you like to mess with your vbios under windows and some bios mod tools?
07:30 karolherbst: I think kepler bios tweaker 1.27 is the best one currently?
07:30 karolherbst: no idea
07:30 Tom^: sure
07:30 karolherbst: it doesn't start with mono, so I can't really try stuff out
07:30 karolherbst: what I am interested in: base clock and max turbo clock
07:30 karolherbst: I think
07:30 karolherbst: not quite sure
07:31 karolherbst: thing is: I want to find where in the vbios we can find the gpus base clock
07:31 Tom^: ah ok
07:31 karolherbst: currently nouveau will just clock the gpu to the max possible
07:31 karolherbst: which may be way over the max boost clock
07:31 karolherbst: and this may cause that the gpu goes about the power budget
07:32 Tom^: as long as it doesnt exceed my powerbill budget im fine
07:32 karolherbst: no, but your PSU might get unhappy :p
07:32 Tom^: anyhow kepler bios tweaker doesnt seem to work, just empty description fields :o
07:33 karolherbst: really?
07:33 karolherbst: I think you have to open a vbios file
07:33 Tom^: or do i have to load up the vbios i extracted from nvagetbios ?
07:33 karolherbst: yeah I think so
07:33 mlankhorst: 1
07:33 mlankhorst: oops
07:34 karolherbst: sarnex: thing is, now I get undefined references :/
07:34 sarnex: damn it gentoo
07:35 karolherbst: well there are also good linux games :D
07:36 sarnex: karolherbst: it compiled for you? or died at linking
07:36 karolherbst: died linking
07:36 sarnex: rip
07:37 Tom^: karolherbst: http://i.imgur.com/S08NmqE.png
07:38 karolherbst: nice
07:38 karolherbst: the tool indeed looks a bit usefull
07:39 karolherbst: okay
07:39 karolherbst: so the "real" max boost clock might be calculated inside the blob
07:39 Tom^: also the Voltage Table is scrollable if you didnt notice, so if you need more info il scrot it again
07:39 karolherbst: it was around 1200MHz for you, right=
07:39 karolherbst: voltage tbale is fine
07:39 karolherbst: that is enough understood currently I would say
07:40 karolherbst: you see this common boost clock box?
07:40 karolherbst: and base clock?
07:40 Tom^: yea
07:40 karolherbst: these are the both things we have to understand where it comes from
07:40 karolherbst: so mhh
07:41 karolherbst: maybe set the TDP and 3D base clock to 900 and 920
07:41 karolherbst: and boost to1000
07:41 karolherbst: save teh vbios and upload it :)
07:41 karolherbst: those kids could really help nouveau sometimes :D
07:42 karolherbst: :p
07:43 Tom^: hm nvflash for uploading it?
07:43 karolherbst: mhh?
07:43 sarnex: karolherbst: mine compiled and installed fine
07:43 karolherbst: no
07:43 karolherbst: to the internet
07:43 Tom^: "NVFlash needs to be used in DOS mode, when you boot your system. Thus use a MS-DOS bootdisk and just copy this tool on it." oh lord
07:43 karolherbst: Tom^: I just want to diff the vbios files
07:43 karolherbst: :D
07:43 Tom^: oh you mean upload it to the cloud
07:44 karolherbst: yeah
07:44 Tom^: https://www.dropbox.com/s/edoogn0u4wu4a29/vbiosmodded.rom?dl=0
07:45 karolherbst: Tom^: do you want to reopen the new vbios file and check if the changes are still there?
07:45 karolherbst: just in case
07:45 Tom^: they are
07:45 Tom^: i set TDP to 900 and 3D to 920
07:45 karolherbst: okay
07:46 karolherbst: nvbios has the same output
07:46 karolherbst: okay
07:46 karolherbst: so new stuff :D
07:46 karolherbst: yep
07:46 karolherbst: found changes in the hexdumps
07:47 karolherbst: three changes in total
07:47 karolherbst: Tom^: is the checksum 21 now?
07:47 karolherbst: I meant 12 :D
07:48 Tom^: checksum where?
07:49 karolherbst: in the tool
07:49 Tom^: Oooh yes.
07:50 Tom^: 12 - [12]
07:50 karolherbst: mhh
07:50 Tom^: i must be blind, i checked the tool twice before i asked. xD
07:50 karolherbst: I bet if you reopen the modded vbios file
07:50 karolherbst: both TDP and 3d are 920
07:50 Tom^: yep i tried that before sending the vbios
07:51 karolherbst: okay
07:51 karolherbst: so it is the same
07:51 karolherbst: what about boost clock?
07:52 Tom^: still the same in Common
07:52 karolherbst: 1045?
07:52 Tom^: didnt change it so yea 1045.5
07:52 karolherbst: ohh okay
07:52 karolherbst: thing is somehting else changed, but no clue what it might be
07:52 Tom^: confirmed blind, i see now i missed your second line of setting boost to 1000
07:55 karolherbst: Tom^: np, could you change it and reupload the vbios again
07:55 Tom^: sure
07:56 Tom^: https://www.dropbox.com/s/pb1umws1ik67vji/vbiosmoddedboost.rom?dl=0
07:56 Tom^: boost set and confirmed to 1337
07:56 Tom^: checksum C9
07:57 karolherbst: ahh I see a new change
07:57 karolherbst: uhh nice
07:57 karolherbst: 082b => 0a72
07:57 karolherbst: it is even right
07:58 karolherbst: cool
07:58 karolherbst: what about those pull down menus?
07:58 karolherbst: with the Entry # stuff
07:58 karolherbst: can this be changed?
07:58 Tom^: Entry ? yes
07:59 Tom^: Entry #0,1,2 and disabled
07:59 karolherbst: mhh okay
07:59 Tom^: it seems Entry 1 is TDP , entry 2 is 3d and entry 0 is boost.
07:59 Tom^: if i change TDB Base entry to 0 it gets set to 1337
07:59 karolherbst: yeah
08:00 karolherbst: there is a level of indirection in the vbios as it seems
08:00 karolherbst: somewhere is a table like: boost is in entry a
08:00 karolherbst: base is in entry b
08:00 karolherbst: and so on
08:00 Tom^: mh
08:00 karolherbst: maybe set all to entry 0
08:00 karolherbst: save and upload :)
08:01 Tom^: https://www.dropbox.com/s/5mwue3yh83ifzr1/vbiosleet.rom?dl=0
08:01 Tom^: now they are all set to entry 0 which also seems to mean its all 1337
08:01 karolherbst: yeah, they point to the same entry
08:02 karolherbst: ohh nice
08:02 karolherbst: found it
08:03 karolherbst: mhh
08:03 karolherbst: maybe set tdp to disabled and boost to 2
08:04 Tom^: https://www.dropbox.com/s/iah0n6vaj9j6l48/vbiostdpdis.rom?dl=0
08:04 karolherbst: okay
08:05 karolherbst: boost limit seems to be greyed out
08:05 karolherbst: but I see a fourth field in the vbios
08:07 karolherbst: okay one last thing
08:07 karolherbst: want to mess up the memory clock?
08:08 karolherbst: maybe this doesn't change anything we already now
08:08 karolherbst: but would be good to be sure
08:09 Tom^: https://www.dropbox.com/s/hjdesovjycyjldu/vbiosmemmod.rom?dl=0 stock clocks and entrys, mem set to 1337
08:10 karolherbst: two changes, well
08:10 karolherbst: okay, but makes sense
08:11 karolherbst: mupuf: I think I found out what "UNK38 table at 0x6fc6, version 10" is :)
08:11 karolherbst: mupuf: https://gist.github.com/karolherbst/6bc58523c8b299daff94
08:11 imirkin: karolherbst: this isn't some official utility... presumably what it does isn't necessarily right
08:11 karolherbst: I know
08:11 karolherbst: but the values make totoally sense for now
08:12 karolherbst: will have to check on other vbios and may also throw some faked vbios into the blob
08:12 karolherbst: but at least it may give us a good lead
08:13 karolherbst: imirkin: but I somehow hope that if the tool wouldn't do anything what user expect, the tool wouldn't be somehow known and used
08:13 karolherbst: Tom^: okay, the memory changes are alredy in known areas
08:14 karolherbst: but the other stuff may be really helpful :)
08:14 Tom^: hooray \o/
08:14 karolherbst: memory changed two entries: 0xd and 0xf pstate
08:21 RSpliet: karolherbst: that paste is missing a lot of context to be understandable to third parties ;-)
08:21 karolherbst: mhh
08:22 karolherbst: I don't think it is that hard.
08:22 karolherbst: it is just addresses in the vbios
08:22 Tom^: RSpliet: you just have to reverse engineer his discoveries.
08:22 karolherbst: entry nr of the boost clock is found at 0006fd7 in Tom^s vbios
08:22 Tom^: from his reverse engineering. its reverse engineriception.
08:22 karolherbst: table starts at 0x6fc6
08:22 karolherbst: so 0x11 in this table tells you which entry holds the boost clock
08:23 RSpliet: mind printing the raw table values as well?
08:23 karolherbst: if it is 2, look at entry #2: 0006ff0
08:23 karolherbst: yes
08:23 karolherbst: :p
08:23 karolherbst: wait
08:24 karolherbst: RSpliet: https://gist.github.com/karolherbst/6bc58523c8b299daff94
08:24 karolherbst: ohh wait
08:24 RSpliet: what's the 6fcX line like? version, header length, entry length etc?
08:25 karolherbst: updated: https://gist.github.com/karolherbst/6bc58523c8b299daff94
08:26 karolherbst: 0x6fc6 +0x0 is the version
08:26 karolherbst: 0x1 is hlen
08:26 karolherbst: 0x2 is rlen
08:26 karolherbst: 0x3 is entrysum
08:27 karolherbst: according to nvbios source
08:27 RSpliet: yep (hard to decode halfword aligned, but meh :-P)
08:29 imirkin: karolherbst: can i interest you in 'hexdump -C' ?
08:29 karolherbst: meh :D
08:31 karolherbst: okay, I think I might have messed up the "right" addresses
08:33 RSpliet: hmmhmm, so the pitch between two entries appears to be 7 bytes
08:33 karolherbst: RSpliet: I made a mitake
08:33 karolherbst: I have to go through it again, I have to adjust those addresses
08:34 RSpliet: that doesn't change the fact that the pitch appears to be 7 bytes between entries in that table... :-D
08:34 RSpliet: (05 + 02?)
08:34 RSpliet: (05 + 02 * 01?)
08:34 karolherbst: nah, I found the tdp entry now
08:34 RSpliet: (02 + 05 * 01) something like that :-P
08:34 karolherbst: so I have three now
08:35 karolherbst: but I think you are still right :D
08:36 RSpliet: with c top-level entries (so the table might be longer than pictured here)
08:38 karolherbst: RSpliet: https://gist.github.com/karolherbst/6bc58523c8b299daff94
08:38 RSpliet: yeah... almost :-)
08:39 RSpliet: header is 0x17, so talking in entries and subentries: entry 0 at 6fdd, entry0.0 at 6fe2, entry 1 at 6fe4 entry 1.0 at 6fe9...
08:40 karolherbst: ohh subentries
08:40 RSpliet: yeah, but 6fc6+0x4 indicates there's only one subentry per entry :-P
08:41 RSpliet: of length 2 (6fc6+0x3)
08:41 RSpliet: sorry, I've seen so many VBIOS tables that I'm spoiling all the fun for you now O:-)
08:45 mlankhorst: tagr_: would be fun to get a X1 then. :P
08:45 karolherbst: current result: https://gist.github.com/karolherbst/f9e70f14f003731ed3e1 :)
08:46 karolherbst: mhhhh
08:46 karolherbst: sad
08:46 karolherbst: there is more to it
08:46 karolherbst: because it doesn't make sense for my card :(
08:47 RSpliet: whoo, more fun!
08:48 karolherbst: this is from my gpu: https://gist.github.com/karolherbst/be97bc9fd0021060ba92
08:49 RSpliet: yeah, version != header length
08:50 RSpliet: and you didn't take into account subentries
08:50 RSpliet: fix your code first, then complain :-P
08:50 karolherbst: Tom^: do you want to mess up my vbios? :D
08:53 Tom^: karolherbst: sure
08:55 karolherbst: Tom^: http://filebin.net/pexw0j9bj8/vbios.rom
08:56 karolherbst: it would be enoughf or me to just get a screenshot of the common section
08:56 hakzsam: imirkin, yeah, I think we can get rid of that assert too
08:56 karolherbst: RSpliet: so hlen means header lenght, mhhh
08:56 karolherbst: yeah I might want to respect that :D
08:56 Tom^: karolherbst: your checksum turned red :p
08:56 karolherbst: I know
08:56 karolherbst: doesn't matter
08:57 karolherbst: maybe not for my gpu
08:57 karolherbst: who knows
08:57 Tom^: http://i.imgur.com/9cvJq6n.png
08:58 karolherbst: okay
08:58 Tom^: 14 entrys :o
08:58 karolherbst: I saw the 0x7 already and was suspicous
08:58 karolherbst: yeah
08:58 karolherbst: :p
08:58 karolherbst: ohh
08:58 karolherbst: only 705MHz base clock
08:58 karolherbst: slow ass gpu
08:58 karolherbst: (I was driving the card at 997MHz on the blob without issues)
08:59 karolherbst: :D
09:00 RSpliet: karolherbst... yes ;-)
09:01 RSpliet: if you can improve nvbios to make it more verbose and make it easy to parse the data, that'd be a good first step in RE'ing the bits in the table
09:02 karolherbst: first I try to parse the stuff I already know
09:03 RSpliet: sure! but automating it by writing it up in nvbios helps get an overview of the data in there, see patterns, expose regularity
09:04 karolherbst: I think I got the part already I am interested in :)
09:04 karolherbst: the entry nr is in the same spot as it seems for both cards
09:05 karolherbst: I just have too take the header length into account
09:06 karolherbst: RSpliet: does nvbios leave out 0ed of ffed entries?
09:06 karolherbst: or "disabled" once?
09:06 RSpliet: if you make it so...
09:07 Tom^: also karolherbst https://www.techpowerup.com/vgabios/
09:07 Tom^: bunch of vbioses :p
09:07 RSpliet: that's quite a large unsorted collection
09:08 karolherbst: RSpliet: I can enable those hexdump prints with -v right?
09:08 karolherbst: these envy_bios_dump_hex calls
09:08 RSpliet: karolherbst: sure
09:08 RSpliet: the code is not very complex, you can make it so otherwise
09:08 karolherbst: I wonder
09:08 karolherbst: because I only get two entries printed
09:09 RSpliet: karolherbst: perhaps it incorrectly interprets the 2 as entries rather than "size of subentry"
09:09 karolherbst: ohh maybe
09:09 RSpliet: dive into the code, it's simple and ugly and easy to fix :-)
09:10 RSpliet: Tom^: that collection is rather hard to nvbios * | grep "something" through :-P
09:10 Tom^: heh fair enough
09:10 RSpliet: but useful to find rare configurations with :-)
09:10 karolherbst: RSpliet: one byte: 02 for Tom, 07 for me
09:11 karolherbst: I bet this is the "max entry" thing
09:11 RSpliet: which byte are you referring to?
09:11 karolherbst: +0xf
09:12 RSpliet: wasn't that the referral to which entry in the table it should pick for TDP or boost or 3D or something?
09:13 karolherbst: uhh right
09:13 RSpliet: please fix nvbios, push your patch to your repo as far as you can, I'll review tonight for merge in upstream envytools if you don't have that access right yourself
09:13 karolherbst: I have access
09:13 RSpliet: don't worry about it being complete or not, just make it valid and nice :-)
09:13 karolherbst: trying :D
09:14 RSpliet: 0x0 ver, 0x1 hlen, 0x2 elen, 0x3 selen, 0x4 secount, 0x5 ecount
09:14 RSpliet: where h is header, e is entry, se is subentry
09:15 RSpliet: if you want different letters or they don't correspond with nvbios, well... fix it :-P
09:15 karolherbst: 0x20 entry count :D
09:15 karolherbst: seems a bit much though
09:15 RSpliet: they often allocate big tables and not use half of it
09:15 RSpliet: that's useful for hacking ;-)
09:16 karolherbst: k
09:16 RSpliet: so the stride between entries is elen + selen * secount
09:18 Tom^: seems kepler bios tweaker is coded in .net so you can .net reflect it and view most of its source code :p
09:19 RSpliet: yeah, but it's not as if these tables are difficult or anything :-P
09:20 karolherbst: ohh
09:21 karolherbst: the clocks are at the end of the entry :/
09:21 karolherbst: meh
09:21 RSpliet: clock is in the subentry
09:21 karolherbst: yeah
09:21 karolherbst: I noticed
09:21 karolherbst: Tom^s : https://gist.github.com/karolherbst/be97bc9fd0021060ba92
09:21 karolherbst: now it also looks nice
09:21 karolherbst: :)
09:21 karolherbst: very good
09:22 karolherbst: my vbios: https://gist.github.com/karolherbst/6bc58523c8b299daff94
09:22 karolherbst: :/
09:22 RSpliet: hehe, loads of data
09:22 karolherbst: yeah
09:23 karolherbst: but the clocks are there
09:23 RSpliet: my guess: the first byte indicates the perflvl
09:23 karolherbst: uiuiui
09:23 karolherbst: :D
09:23 karolherbst: yeah
09:23 karolherbst: makes sense
09:24 karolherbst: RSpliet: 07 0a 08 95 06 0e 01
09:24 karolherbst: 135MHz
09:24 karolherbst: this is what the blob clocks down to
09:24 karolherbst: at 0x7 perf level
09:24 RSpliet: can you map any of the numbers (+0x2 or +0x4) to a voltage?
09:25 RSpliet: +0x4 seems to be a 16-bit number of some sort
09:26 karolherbst: https://gist.github.com/karolherbst/6bc58523c8b299daff94
09:26 RSpliet: ehh, +0x3 :-P
09:26 karolherbst: 10, 12-47 are used in the cstates
09:27 karolherbst: +0x2 being voltage might make sense
09:27 karolherbst: +0x4 not
09:27 RSpliet: the irregular pattern in 0x1 and 0x3 indicates that +0x1 and +0x3 might both be 16-bit integers
09:27 RSpliet: depicting a range of some sort
09:28 karolherbst: I've also added my cstep table
09:29 karolherbst: RSpliet: I don't know if we need this kind of information though, we can deal with that later
09:29 RSpliet: yep
09:29 karolherbst: Tom^s entries are basically 0 except the clock
09:30 RSpliet: printing the perflvl and clock nicely could be helpful, you can sort out the rest in future patches :-P
09:30 karolherbst: I just print the clocks from the entries pointed to by the header
09:30 karolherbst: this should be enough
09:30 karolherbst: then we have the "base" and the "boost" clocks
09:30 karolherbst: this is enough for now
09:34 karolherbst: nice, now it works for both cards :)
09:36 karolherbst: RSpliet: this isn't really clean, but does the trick: https://github.com/karolherbst/envytools/commit/0422e9fa9fabfc009ebea849c78fa19f8c1b4f9c
09:36 karolherbst: will clean that up later after I am sure it works everywhere
09:37 karolherbst: nice
09:38 karolherbst: RSpliet: for mupufs gk106 it prints the same clocks as on the tech specs from the store webpage :)
09:39 karolherbst: I think this works this say
09:39 karolherbst: *way
09:39 karolherbst: Tom^: thanks again for your help :)
09:39 Tom^: at your service my liege.
09:41 karolherbst: RSpliet: seems like nvd7 cards also have this table with version 0x0
09:41 karolherbst: but other than that, it seems to be only used in kepler
09:42 karolherbst: imirkin: your gk108 kepler card
09:42 karolherbst: 967MHz?
09:42 karolherbst: I meant gk208
09:42 imirkin_: karolherbst: what do you need exactly?
09:43 karolherbst: official spec clocks
09:43 karolherbst: like what was written on the store page :p
09:43 karolherbst: or whereever
09:43 imirkin_: dunno
09:43 karolherbst: mhhh
09:43 imirkin_: it's a dell box
09:43 karolherbst: do you now the idle clock with blob?
09:43 imirkin_: came with the card... i don't even know if i knew it would have it
09:43 karolherbst: with full perf preffered
09:44 imirkin_: sorry, no. can't check right now.
09:44 karolherbst: k
09:45 karolherbst: mwk: your GM107 card, 1058.5 base and 1137 boost?
09:45 karolherbst: mlankhorst: and your GM107 should have the same
09:46 karolherbst: RSpliet: anyway, it seems like those values make sense for each vbios with that table version 0x10
09:52 Tom^: karolherbst: gk106 http://www.anandtech.com/show/6276/nvidia-geforce-gtx-660-review-gk106-rounds-out-the-kepler-family
09:53 Tom^: https://en.wikipedia.org/wiki/GeForce_700_series#Products gk208
09:53 karolherbst: Tom^: yeah, but it doesn't help
09:53 karolherbst: because cards can be differntly clocked
09:54 Tom^: mhh
10:00 imirkin_: karolherbst: if it helps, lspci thinks that it's a GeForce GT 720
10:00 karolherbst: mhhh
10:00 karolherbst: wiki says 797 mhz
10:01 karolherbst: ohh
10:01 karolherbst: 720m?
10:01 imirkin_: dell part number 9YJWT
10:01 imirkin_: it's a desktop, no mobile
10:01 karolherbst: 740M would be the only thing close
10:01 karolherbst: ohh okay
10:02 karolherbst: ohh okay, got it
10:02 imirkin_: cool
10:03 karolherbst: but only on shitty websites :/
10:03 karolherbst: but it seems to be a 720 indeed
10:03 imirkin_: there's also "M211N" associated with it, no idea what that is
10:04 karolherbst: what dell computer is it?
10:04 karolherbst: maybe that helps more
10:04 imirkin_: XPS 8700
10:04 imirkin_: but there's a million options
10:05 imirkin_: hm, searching for that m211n, the first result is http://www.geforce.com/hardware/desktop-gpus/geforce-gt-720 :)
10:06 karolherbst: yeah, but the clock is 797 there
10:06 karolherbst: don't think dell tinkered with it that much
10:06 karolherbst: but who knows
10:07 karolherbst: those websites are getting more useless by the day :/
10:36 mupuf: karolherbst: what do you call BASE CLOCK?
10:37 karolherbst: no idea for the right name yet
10:38 karolherbst: but basically this are fixed clocks
10:38 RSpliet: you might want to check the VBIOS repo for cases where there's more than one subentry per entry
10:38 karolherbst: RSpliet: right
10:38 karolherbst: mupuf: at least I found the clcoks there usually used for marketing ;)
10:38 karolherbst: so the base clock and boost clocks
10:41 karolherbst: mupuf: I think the tdp_clock there is the clok which lies inside the power budget
10:41 karolherbst: in some forums it was told, when the "max" tdp percentage value is increased like from 110 to 120, the boosted clock also increased
10:42 mupuf: karolherbst: very nice
10:42 mupuf: but you know, you can just change the vbios and check what the blob does
10:43 karolherbst: no
10:43 mupuf: that works quite well for clocks
10:43 karolherbst: I can't :p
10:43 mupuf: why no?
10:43 karolherbst: it doesn't work on my gpu
10:43 karolherbst: and I don't want to do X over ssh
10:43 karolherbst: :D
10:44 karolherbst: mupuf: maybe my gpu enforces a valid checksum?
10:44 mupuf: they all do
10:44 mupuf: but nvafakebios does the right thing here
10:44 karolherbst: ohh okay
10:44 mupuf: anyway, why would you need x over ssh?
10:44 mupuf: nvidia-smi tells you everything
10:45 karolherbst: messing with nvidia-settings
10:45 karolherbst: ohh it does?
10:45 karolherbst: have to check
10:45 mupuf: yes
10:45 Tom^: also nvidia-settings --query :p
10:45 karolherbst: mupuf: then I would have to see the boost clock and base clock there
10:45 mupuf: you just can't document stuff you don't try
10:45 mupuf: even if it looks super good
10:46 mupuf: yep, it is super simple to do
10:47 mupuf: rmmod nvidia; nvafakebios -e XX:YY vbios.rom; nvidia-smi --right_request
10:47 mupuf: don't forget to rmmod though
10:48 karolherbst: nvafakebios only does PRAMIN right?
10:48 karolherbst: okay, I found the base clock in nvidia-settings --query all at least
10:49 karolherbst: but not the boost clock
10:49 karolherbst: only max clock
10:49 karolherbst: and nvidia-smi tells me nothing
10:51 karolherbst: mhhh
10:53 karolherbst: mupuf: any other idea for a better name
10:53 Tom^: karolherbst: https://github.com/NVIDIA/nvidia-settings/blob/master/src/parse.c#L149 here are some valid --query attributes
10:53 karolherbst: yeah I know
10:54 karolherbst: but for me there is nothing like boost=797 or something
10:54 mupuf: karolherbst: hmm
10:54 karolherbst: mupuf: if it helps, this is the content on my gpu: https://gist.github.com/karolherbst/6bc58523c8b299daff94
10:55 mupuf: max clock is the maximum clock reachable by a perf lvl, right?
10:55 karolherbst: mupuf: in nvidia-settings?
10:55 mupuf: no idea
10:56 mupuf: my finnish is quite bad, but it seems the shopping center I am in is closing... So I will talk to you later! Don;t worry a bout the naming yet
10:56 karolherbst: ohh well, this table doesn't state "max clock" in that sense as far as I know
10:56 mupuf: just try to change values and see what it actually changes
10:56 karolherbst: yeah
10:56 mupuf: use pmu_fake_counters to fake activity
10:56 mupuf: that should help :p
10:57 karolherbst: mhh not really though
10:57 mupuf: and you can test the normal and boost clock for each perf lvl
10:57 mupuf: why?
10:57 karolherbst: it goes above the boost clock for me
10:57 karolherbst: :D
10:57 karolherbst: there is more to it
10:57 karolherbst: maybe if the power budget is big enough, it just goes to max
10:57 mupuf: well, that sounds like something good to RE :D
10:58 karolherbst: yeah
10:58 karolherbst: :/
10:58 karolherbst: :D
10:58 mupuf: anyway, really have to go! You should use the tool I developed to dump the behaviour of the blob
10:58 mupuf: change values, run a repeatable case, compare the values
10:58 mupuf: make a theory and try again
10:58 mupuf: see you!
11:08 karolherbst: nice
11:08 karolherbst: with 90°C it falls to the boost clock
11:09 karolherbst: with 0°C the blob clocks a little bit above
11:09 imirkin_: and with -297 degC? :)
11:09 imirkin_: (or is it -273? i always forget)
11:09 karolherbst: :D
11:09 karolherbst: it clocks down with 80°C already
11:10 karlmag: imirkin_: probably the slowest graphics animation you've ever seen :-P
11:10 RSpliet: imirkin_ would Ti 4200 act differently than GeForce 256?
11:10 imirkin_: RSpliet: hm?
11:11 imirkin_: RSpliet: NV10 vs NV20 - sure
11:11 RSpliet: I'd expect Kelvin to be cooler than Celsius :-P
11:11 karlmag: Negativ Kelvin?
11:11 imirkin_: ah. a joke.
11:11 karolherbst: :O
11:11 RSpliet: sorry, yes, I do that occasionally
11:12 karolherbst: meh
11:13 karolherbst: why does nvidia hate me so much
11:13 RSpliet: don't take it personally
11:13 RSpliet: they hate everybody equally
11:13 karolherbst: ohhh
11:13 karolherbst: I added a 6 into my grep statement
11:13 imirkin_: RSpliet: yeah me too. just wasn't thinking clearly
11:14 karolherbst: okay
11:14 karolherbst: the boost clock is the clock nvidia uses when the temperautre is pretty high, but some other condition isn't met
11:14 karolherbst: like maybe power consumption?
11:17 imirkin_: RSpliet: how's fermi coming along?
11:21 Tom^: karolherbst: do we really need boost now? cant that be left out and get power management running on base clocks?
11:21 karolherbst: Tom^: well
11:21 karolherbst: Tom^: base clock here: 705, boost clock: 797
11:21 karolherbst: Tom^: nouveau uses 862
11:26 karolherbst: nice
11:26 karolherbst: RSpliet: I can manipulate the idle clock with that table
11:27 karolherbst: but sadly not the boost one I think
11:33 Tom^: sorry if im talking about stuff you already know, but to me it sounds like gpu boost is decided from a table with with stepups from base clock up to way beyond what its capable of, then the driver measures the GPU temp and makes sure its below a certain value, its also making sure the card is running under a certain "boost power consumption".
11:35 Tom^: so doesnt that mean you can disregard boost entirerly for now and only clock up the card to base clock, and implent this later on?. or are that already sort of done and you are now looking at boost? :p
11:41 karlmag: hmm.. looks like I pulled a couple G84 (8600 GT) and G86 (probably 8400 GS) today..
11:41 karolherbst: okay
11:42 karolherbst: mhh strange, but okay
11:42 karolherbst: I think this boost value in the vbios is just an avarage number to be read out
11:42 karolherbst: but is to no use otherwise
11:42 karolherbst: maybe I am wrong
11:42 karolherbst: who knows
11:44 karlmag: karolherbst: when it comes to black magic.. possibly noone :-P
11:49 karolherbst: any suggestion what I should change? https://gist.github.com/karolherbst/bce328f77c04bc8728e5
11:51 karolherbst: ohh maybe I should add the unknown stuff
11:54 karolherbst: RSpliet: I have an idea: maybe the pstate in this row tells the driver which pstate to use
11:54 karolherbst: so if the header points to an entry with a 0xa pstate as the "base", it may idle at this when max perf prefered
12:01 karolherbst: mhh maybe not
12:54 karolherbst: Tom^: if you want we can try out other vbios where this table has a different version and see what the tool does then
12:54 karolherbst: tomorow then
12:55 imirkin_: karolherbst: tool doesn't run in wine?
12:59 karolherbst: imirkin_: nope
13:00 karolherbst: mono messes up
13:00 karolherbst: and I don't get it to run in native .net as well
13:00 imirkin_: sad.
13:00 karolherbst: imirkin_: https://gist.githubusercontent.com/karolherbst/d192c0040caeafada1d7/raw/95e1329534f475768b50efb50756032200a44b5d/gistfile1.txt
13:00 karolherbst: I think the issue is quite trivial, but well
13:02 karolherbst: ohh
13:02 karolherbst: this table can also be empty
13:02 karolherbst: good to know
13:02 Yoshimo: try #winehq on Freenode for help karol
13:03 karolherbst: Yoshimo: it is a mono issue
13:03 karolherbst: not wine
13:03 karolherbst: I am like 100% sure they will tell me that :p
13:04 Yoshimo: if you say native .net doesn't do it, why isn't that a wine issue?
13:04 karolherbst: because my prefix is messed up
13:04 karolherbst: have to clean it up
13:10 RSpliet: imirkin_ slowly but steadily
13:10 RSpliet: you've got my branch right?
13:10 imirkin_: yeah
13:10 imirkin_: but i have no real way to tell how far you are based on that
13:11 RSpliet: neither have I
13:11 imirkin_: lol
13:11 RSpliet: with two hours a week, I don't try to waste too much time on planning
13:11 imirkin_: put another.... what works?
13:12 RSpliet: well, practically nothing
13:12 imirkin_: cool
13:12 RSpliet: theoretically timing generation has two todo's, MR has two, script has an unknown amount of todo's
13:12 imirkin_: gotcha :)
13:12 imirkin_: iow almost done :p
13:12 RSpliet: right
13:13 RSpliet: if you can arrange a tardis for me, I'll have it done last week
13:13 imirkin_: just have to catch it
13:13 imirkin_: all a matter of being in the right place at the right time :p
13:13 RSpliet:holds up a butterfly net^h^h^h^h^h^h^h^h^h^h^h^h^hlacrosse-stick
13:14 imirkin_: RSpliet: may i interest you in ^W?
13:14 RSpliet: only if it's unicode
13:14 imirkin_: heh
13:16 karolherbst: Yoshimo: it seems like I need .net 3.5 for this
13:16 karolherbst: :/
13:16 RSpliet: get a Windows VM, give the VM your secondary GPU? :-P
13:17 imirkin_: you can use the microsoft ie tester vm's
13:17 RSpliet: or can it read bios files?
13:17 imirkin_: ;)
13:21 karolherbst: yeah I will create a windows vm for a <100kb application
13:21 imirkin_: but you would for a 1GB application?
13:21 karolherbst: no
13:22 imirkin_: so why mention the size?
13:22 karolherbst: I could just reboot to windows
14:31 mlankhorst: karolherbst: no idea, haven't plugged it in in a while
15:06 karolherbst: it is working :O
15:07 karolherbst: finally :D
15:07 jkucia: imirkin_: I think I isolated the issue. It's quite interesting bug. It seems that textureSize() and textureQueryLevels() returns info about a texture used in previous draw call...
15:08 imirkin_: i like it!
15:08 jkucia: I've got a small program which demonstrates the issue.
15:08 imirkin_: jkucia: if you have an apitrace, that'd be most ideal
15:08 imirkin_: although a small program is ok too
15:08 jkucia: http://pastebin.com/raw.php?i=HmGb81HU
15:09 jkucia: when you build it with -DBROKEN it shows the bug, otherwise works as expected
15:09 imirkin_: i actually have to go right now, so i can't look at it QUITE this second, but could you file a bug with this, and make a mention of what gpu(s) this is broken on?
15:09 imirkin_: jkucia: and please confirm that it's not broken on, say, llvmpipe
15:09 imirkin_: or any other mesa-based driver
15:09 imirkin_: [or conversely confirm that it's _also_ broken there]
15:10 jkucia: ok, I'll file a bug
15:10 imirkin_: thing is that tesla, fermi, and kepler are all pretty different in terms of texture setup
15:10 imirkin_: hopefully it's equally broken on all fo them :)
15:11 jkucia: ok, I'll provide all details in a bug report
15:11 imirkin_: excellent, thanks!
15:17 karolherbst: :O
15:17 karolherbst: ohhhh
15:40 karolherbst: weird
15:40 karolherbst: I found a really strange nvbios bug :O
15:40 karolherbst: "BASE CLOCK table at 0x93c5, version 0"
15:40 karolherbst: but
15:41 karolherbst: but byte 0x93c5 is 0x10
15:41 karolherbst: and if I set the offset manualy in the parsing function, it works as expected
15:47 karolherbst: https://gist.github.com/karolherbst/046a9fdf139ff8cd33af
15:47 karolherbst: can anybody tell me, where the offset is set?
15:47 karolherbst: but this looks just plain odd
15:47 karolherbst: and wrong
15:51 RSpliet: code?
15:51 karolherbst: I would give it to you, when I would now where the offset comes from
15:51 RSpliet:sighs... I should've gone to bed an hour ago... but no way I was going to sleep without the tiniest bit of progress
15:52 RSpliet: ... babysteps :-P
15:52 karolherbst: but I can show you something else
15:52 karolherbst: this line: https://github.com/karolherbst/envytools/blob/nvbios_unk38/nvbios/power.c#L692
15:52 karolherbst: when I remove the if
15:52 karolherbst: and set there bc->offset = 0x93c5
15:52 karolherbst: it works
15:52 karolherbst: which is just plain weird
15:52 karolherbst: because the offset is right here either way: https://github.com/karolherbst/envytools/blob/nvbios_unk38/nvbios/power.c#L738
15:54 karolherbst: maybe because it is a nvd7 card?
15:54 karolherbst: I don't know
15:54 imirkin: RSpliet: + for (i < 0; i < 9; i++) ?
15:55 imirkin: probably not *exactly* what you wanted
15:56 karolherbst: mhhh?
15:56 karolherbst: where is this?
15:56 imirkin: in RSpliet's branch
15:56 karolherbst: ohhh
15:56 karolherbst: it was for him :D
15:56 karolherbst: meh
15:56 karolherbst: imirkin: you have the same color as RSpliet
15:56 imirkin: that's why his name was in front of it...
15:57 karolherbst: I will go too bed, maybe the mystery solves itself tomorow
16:02 imirkin: jkucia: can you quantify "correct" vs "incorrect"?
16:02 imirkin: jkucia: on gf108 with mesa 11.0.5, i get width: 512.000000 height 256.000000 miplevels 4.000000 for both
16:02 imirkin: jkucia: but it's black with -DBROKEN and red without
16:02 imirkin: er weird, now it's purple with -DBROKEN
16:03 RSpliet: imirkin, it is actually
16:03 imirkin: RSpliet: i think it's more common to use i = 0 rather than i < 0
16:03 RSpliet: oh, that isn't
16:03 RSpliet: heh
16:03 imirkin: (is the loud thud i heard you hitting your head against the desk?)
16:04 RSpliet: noep
16:04 RSpliet: *nope
16:05 RSpliet: feedback like above saves me two hours of making such a noise
16:06 karlmag: "desk for small problems, brick wall for the bigger ones" :-P
16:07 jkucia: imirkin: I get width: 2.000000 height 2.000000 miplevels 2.000000
16:08 imirkin: jkucia: what gpu?
16:08 jkucia: GTX 760 (NVE4)
16:09 imirkin: hm ok
16:09 imirkin: what mesa?
16:09 jkucia: 11.0.5
16:09 imirkin: that's an awful lot like my mesa version :)
16:09 jkucia: yup
16:10 imirkin: the real question is why did DRI_PRIME stop working for me...
16:12 imirkin: libGL: screen 0 does not appear to be DRI3 capable
16:12 imirkin: grrrrrr
16:12 imirkin: how do i constantly keep breaking it
16:18 imirkin: anyone else have a kepler can can confirm jkucia's findings?
16:48 jkucia: imirkin: I've filed a bug report. It's bug 93110. Time to sleep for me.
16:49 imirkin: jkucia: thanks!
16:50 imirkin: i'll try to get some more detailed info to figure out what's going on... probably something dumb as usual :(
16:51 skeggsb: imirkin: doesn't happen on gk107..
16:52 imirkin: uhhhhhh that's a little more frightening
16:52 imirkin: i was assuming some sort of tic mismanagement (it's different on kepler) or perhaps a cache flush not quite working
16:53 skeggsb: https://bpaste.net/show/21ef157da286
16:53 skeggsb: i don't *think* i did anything wrong...
16:54 imirkin: that's what i get too.
16:54 imirkin: on GF108
16:54 imirkin: GK106 has a lot more ... TPC's? whatever they are, it's got more of 'em
16:54 imirkin: so perhaps it's some nasty parallelism and we have to serialize? that'd be most sad.
16:54 skeggsb: i can try on gk106 easily enough
16:55 skeggsb: lemme just swap boards...
16:58 skeggsb: nope, that works too
16:59 imirkin: hmmmmmm i wonder what's going wrong for jkucia then
17:00 skeggsb: hrm, maybe got fixed accidentally by some other change? he's on 11.0.5
17:00 imirkin: could be
17:00 skeggsb: my gk106 is on 11.1.0-devel (git-0bf686f)
17:01 skeggsb: gk107 on Mesa 11.2.0-devel (git-7f203a7)
17:01 skeggsb: that commit id likely doesn't exist upstream, i've got other stuff on top
17:02 imirkin: maybe. texture stuff doesn't move *too* often
17:02 imirkin: i did have some fixes, but iirc they were around texture buffer's getting their bo's changed from underneath them
17:03 imirkin: (i.e. backing bo changes, but tic doesn't get updated)
17:03 imirkin: "oops"
20:10 imirkin: crap, just found a huge bug in the nv50 emitter -- the instructions used to spill flags to registers were encoded wrong!
20:11 imirkin: bugs, bugs everywhere
20:11 imirkin: and not a drop of docs
20:12 imirkin: but at least it was consistently broken -- the spill stored the wrong flag value, and the unspill restored it to the wrong place
21:43 tagr: mlankhorst: I'll ask around if we have a seeding program like we did for Jetson TK1
21:43 tagr: units are always in short supply, so it might take a little while before we get some allocated