01:47karolherbst: mupuf: k, I think I am done with the sensor calibration stuff :)
01:56karolherbst: didn't expect that the effect is so big
01:56karolherbst: without calibration: nve6: 17.44-18.43 nvc8: 28.46-30.48
01:57karolherbst: with sampling: nve6: 17.64-17.73 nvc8: 29.10-29.18
05:16Yoshimo: karolherbst: it wasn't necessary to open a new bug, guess i am victim of https://bugs.freedesktop.org/show_bug.cgi?id=91526
06:11heiko: how can I make me debian packages from mesa master git ?
06:12imirkin: i think you're looking for #debian
06:12heiko: yep ok
10:16SaveTheRobots: hi, is there a way of building nouveau out-of-tree (against 4.5.0 in this case) ? the instructions on the homepage point to a git repo that's horribly out of date :(
10:16SaveTheRobots: (sorry if this is a regularly asked question, my google-fu is failing me)
10:59karolherbst1: SaveTheRobots: yeah
10:59karolherbst1: SaveTheRobots: what gpu do you have by the way?
11:00karolherbst: SaveTheRobots: the upstream repository is here: https://github.com/skeggsb/nouveau
11:01karolherbst: SaveTheRobots: but I have some branches for stable clocking on kepler and maxwell1
11:01karolherbst: SaveTheRobots: well maxwell1 is still testing and needs to checked, but it might work just like kepler in the end
11:02SaveTheRobots: hi karolherbst, i'm running a 780 Ti (GK110B, NVF0 i think?)
11:02karolherbst: then you should use mine
11:02karolherbst: because I am sure you _want_ to reclock
11:02SaveTheRobots: definitely :p
11:02SaveTheRobots: thanks dude
11:02karolherbst: SaveTheRobots: Tom^ got pretty good performance with his 780 ti
11:03karolherbst: SaveTheRobots: https://github.com/karolherbst/nouveau
11:03karolherbst: SaveTheRobots: branch stable_reclocking_kepler_v2
11:03karolherbst: just follow the instruction on the wiki page, and make sure to have the new thing loaded
11:03SaveTheRobots: awesome, i'll give this a go now
11:04SaveTheRobots: i'm running git master mesa/libvdpau/drm atm, is this recommended?
11:04SaveTheRobots: i would be running kernel master branch but i've found an automount bug :(
11:06Yoshimo: wonder how long it will take NVIDIA to allow us to play with maxwellv2 and reclocking
11:06karolherbst: SaveTheRobots: ohh right way
11:06karolherbst: SaveTheRobots: my branches are based on 4.4
11:06karolherbst: but you can simply git rebase them on master
11:06karolherbst: Yoshimo: mhh well it will take some time
11:06karolherbst: Yoshimo: more firmware stuff
11:06karolherbst: Yoshimo: and maybe the falcons are different
11:07karolherbst: but I doubt the later
11:07Yoshimo: hopefully not as long as the maxwell firmware release ;)
11:08karolherbst: SaveTheRobots: and I am stupid, because I rebased all my stuff on 4.5 recently...
11:08karolherbst: so yeah, it should just work
11:08SaveTheRobots: karolherbst: git rebase your master branch against kernel master?
11:08SaveTheRobots: and yeah, it jsut compiled fine :p
11:08SaveTheRobots: /bin/sh: scripts/mod/modpost: No such file or directory#
11:08SaveTheRobots: apart from that
11:08karolherbst: ohh mhh
11:08karolherbst: did you compile inside drm?
11:08SaveTheRobots: yup, as per wiki
11:09karolherbst: as long as there is a nouveau.ko inside drm/nouveau/
11:09SaveTheRobots: there isn't
11:09SaveTheRobots: shall i cd ..;make ?
11:10karolherbst: you need your kernel sources stuff installed
11:10SaveTheRobots: i do, i've make oldconfig;make prepare against the kernel source
11:10karolherbst: but are you running that kernel?
11:11karolherbst: SaveTheRobots: usually you are good to go when you just install the kernel sources through your package manager
11:12SaveTheRobots: i'm running slackware and am custom compiling most things outside of the package manager :p
11:12SaveTheRobots: and it seems i just need to compile modpost
11:12SaveTheRobots: (in 4.5 kernel tree)
11:12karolherbst: yeah but are you running the kernel inside the tree you compiled?
11:13karolherbst: ahh k
11:13SaveTheRobots: i'm ok to compile nouveau out of kernel tree right? i don't need to add it as a remote or anything?
11:14karolherbst: it just works
11:14karolherbst: you just need to add the nouveau module though
11:14karolherbst: inside /lib/modules/$kernel_whatever
11:14karolherbst: there is somewhere a nouveau module
11:14karolherbst: you have to replace it
11:15karolherbst: and if you use initramfs
11:15karolherbst: you also have to update that
11:15SaveTheRobots: no initramfs, and yeah, i'll replace the module, drop to terminal, rmmod and modprobe the new one
11:16karolherbst: something like that
11:16karolherbst: well you have to stop X and unbind the vtconsole
11:18SaveTheRobots: unbind via sysfs right?
11:19karolherbst: one is the right one
11:24karolherbst: SaveTheRobots: well when everything works well you should have a file named boost under /sys/kernel/debug/dri/p
11:31SaveTheRobots: karolherbst: thanks dude, i just rebooted in the end :p
11:31SaveTheRobots: everything is working nicely
11:31SaveTheRobots: is stable_*_v2 where dev happens then?
11:34SaveTheRobots: i'm running kde plasma 5 master, should i use kwin's glx or egl backend?
11:35SaveTheRobots: gtkperf is slower now, probably doesn't mean a whole lot for real world performance though...
11:51karolherbst: SaveTheRobots: no, it is just my branch where I try to make kepler reclocking stable
11:51karolherbst: skeggsb repository is the main thing
11:52karolherbst: SaveTheRobots: so I guess you could write 0f into pstate and it works stable?
11:55SaveTheRobots: john@subgenius:[/sys]: find . -name '*pstate*'
11:55karolherbst: SaveTheRobots: /sys/kernel/debug
11:56Tom^: is volts fixed in that branch ?
11:56karolherbst: Tom^: yeah
11:56SaveTheRobots: karolherbst: ahh ok, i'm missing some kernel config options then, probably
11:56SaveTheRobots: i stripped debug options out
11:56karolherbst: you need debugfs
11:56karolherbst: and then you have to rebuild nouveau
11:57SaveTheRobots: ok thanks, i'll do that now
11:57Tom^: cant he set pstate as a module option ?
11:58Tom^: perhaps not
11:58karolherbst: Tom^: not anymore
12:01SaveTheRobots: stupid question maybe but can i safely remove nouveau from 4.5 kernel then compile out-of-tree version after?
12:02SaveTheRobots: (so long as drm/drm_helper/etc are enabled)
12:02SaveTheRobots: i don't need to compile nouveau in normal tree then out of tree again straight after?
12:04Tom^: well you dont necessarily need nouveau, besides that you might be dropped into a lowres framebuffer on boot :p
12:06Tom^: doesnt hurt to have a fallback module tho when shit borks
12:09SaveTheRobots: lol true :p
12:10SaveTheRobots: john@subgenius:[~]: sudo find /sys/kernel/debug/ -name pstate
12:12karolherbst: SaveTheRobots: you need ttm
12:12karolherbst: but that isn't selected when you don't compile radeon or nouveau
12:12SaveTheRobots: ah ok
12:17Yoshimo: Tom^: yea i noticed that resolution change
12:17linkmauve1: Nouveau seems to set encoder->possible_clones to 0 on Linux 4.4 and it breaks my encoder detection code, is there a reason it does that?
12:18karolherbst: SaveTheRobots: so you can try to push 0f into pstate
12:18karolherbst: if you cat it, it shows you the current clock in the last line :)
12:19SaveTheRobots: 07: core 324 MHz memory 648 MHz
12:19SaveTheRobots: 0a: core 324-692 MHz memory 1620 MHz
12:19SaveTheRobots: 0d: core 549-1176 MHz memory 7000 MHz
12:19SaveTheRobots: 0f: core 549-1176 MHz memory 7000 MHz
12:19SaveTheRobots: AC: core 324 MHz memory 648 MHz
12:19SaveTheRobots: i'll try now
12:19Tom^: echo 0f | sudo tee /sys/class/debug/dri/0/pstate
12:19Tom^: and behold awesome fps :p
12:20SaveTheRobots: niiiice :D
12:20SaveTheRobots: AC: core 1046 MHz memory 6999 MHz
12:21SaveTheRobots: fan has spun up, i assume i'll need to manually manage pstates myself?
12:21SaveTheRobots: i.e. 0a when not gaming?
12:21Tom^: depends if dynamic reclocking went into that branch, otherwise its a WIP and will come at some point. ask karolherbst
12:22SaveTheRobots: ok, and for desktop use, shall i go for 07 or 0a ?
12:22SaveTheRobots: i guess test both and see?
12:23Tom^: *shrug* i simply just used 0f at all times, the fan or power use didnt bother me :P
12:23SaveTheRobots: haha ok
12:24karolherbst: SaveTheRobots: well with sensors you can watch your gpu sensors
12:24SaveTheRobots: was just about to install lm_sensors :p
12:24karolherbst: SaveTheRobots: there is a second file named boost
12:24karolherbst: with boost you can limit the maximum clock
12:25karolherbst: currently it is a bit limited, because nouveau doesn't care about power consumption yet
12:25karolherbst: and it might consume too much
12:25Tom^: is there any card that actually can?
12:25Tom^: i somehow get the feeling that nvidia have made their card quite safe unless you start to fiddle with the vbios
12:26RSpliet: Tom^: part of that is driver safety nets
12:26SaveTheRobots: karolherbst: ok sweet, thanks very much, i'll just manually switch pstates for now, that doesn't bother me
12:26RSpliet: but there's definitely some crass last-resort thermal protection on there
12:26karolherbst: Tom^: there are hardware and software safty switches
12:27karolherbst: Tom^: if the hardware decides something is really wrong, it might just doesn'r respond anymore
12:27karolherbst: RSpliet: yeah, but I was talking about power consumption. thermal isn't the problem
12:27RSpliet: karolherbst: doesn't it blantly slash the clock in half like the good old days?
12:27karolherbst: for thermal, yes, but power?
12:27karolherbst: who knows
12:27Tom^: would be fun to test and see what actually happends
12:28RSpliet: well, part of the deal is the power budgets in the AGP/PCIe space
12:28Tom^: but in worst case expensive :(
12:28karolherbst: did any nouveau dev _ever_ suceeded in consuming more power than the power budgets?
12:28RSpliet: not sure how they are enforced
12:28karolherbst: this is one problem
12:28karolherbst: I don't feel like trying out myself
12:28RSpliet: could be a waste of PSU :-P
12:28Tom^: because even i at 1.2V which is a max set by vbios at higher clock then nvidia blob on windows sets on boost only nearly reached the power budget :P
12:29Tom^: and the 780ti is a quite power hungry beast ;)
12:29karolherbst: yeah I know
12:29RSpliet: but given how most GPUs don't have that power measurement hardware on it
12:29RSpliet: it remains best-effort as far as the driver is concerned
12:29karolherbst: I think it only matter when you run some stuff which really can use all the hardware at the same trime
12:29karolherbst: right, only mid-end cards and higher have those usually
12:29RSpliet: NVIDIA might have some models for that built into their driver
12:30RSpliet: to translate clock + temperature + voltage to an estimated power consumption
12:30karolherbst: well this doesn't work quite well though
12:30RSpliet: but just as well they might just apply the bridge-builders principle when creating GPUs
12:30karolherbst: on full load my gpu power consumption ranges fro 30W to 65W
12:31Tom^: my kitchen lamp uses more
12:31karolherbst: well it is just a laptop gpu
12:31RSpliet: karolherbst: and PCIe + single plug can deliver... 100W?
12:31karolherbst: the highest voltage is like 1.02V
12:31karolherbst: RSpliet: mxm
12:32karolherbst: RSpliet: but pcie slot can deliver 75W for gpus
12:32karolherbst: has to actually
12:32karolherbst: x8 can be capped at 25W
12:32RSpliet: MXM-B is capped at 100W
12:32karolherbst: I am sure I have MXM-B
12:33karolherbst: because A only has 55W
12:33karolherbst: and this would be quite difficult
12:33RSpliet: so there still is 30% headroom at 100% load
12:33RSpliet: no need to worry about frying a PSU :-D
12:33karolherbst: my AC adapter has like 250W
12:33karolherbst: ohh wait
12:33karolherbst: only 180W
12:34karolherbst: but if you think about it: CPU maxes at 57W, gpu at 80W...
12:34karolherbst: there isn't much room left
12:35karolherbst: Tom^: one thing though, with my branch the pstate file might report higher clocks than actually clocked too
12:36Tom^: even the old branch?
12:36karolherbst: which is normal, because nouveau is already smarter than nvidia here
12:36karolherbst: I found one card where nvidia showed like 1350MHz, but highest clock was 1080MHz
12:36Tom^: ok good. because its the old branch i got the wicked performance from, havent quite tested the new one with volts etc.
12:36karolherbst: it will deliver a little bit higher perf if you switch too boost 2
12:37karolherbst: otherwise less
12:37Tom^: boost didnt exist at that time, i ran at max clock offered from the table which was sort of the max boost :P
12:37Tom^: or well the highest clock under the volt limits
12:38Tom^: all your boost changes, volts etc i merely only tried to see if it worked or not
12:38Tom^: never benchmarked it, and now on NSA 10 its quite hard to run nouveau
12:39SaveTheRobots: karolherbst: do the clock speeds for each pstate have any logic behind them? i.e. is 07 low power, 0a for desktop use, 0f for gaming, etc?
12:39karolherbst: SaveTheRobots: not really
12:40karolherbst: pstates usually are for not fine grained clocking domains
12:40karolherbst: like video/memory/pcie
12:40karolherbst: in the end it will be automatic depending on the load
12:40karolherbst: for normal desktop usage 07 should be more than enough with your gpu though
12:41SaveTheRobots: ok cool, there's a 3-5W difference and 3C difference between 07 and 0a for me, with a pretty nice boost in 2D performance, so i guess 0a seems like a good desktop pstate for me
12:41SaveTheRobots: ahh ok
12:41karolherbst: yeah, could be that 0a gives you a smoother experience cause of the higher memory clock
12:42Tom^: funnily enough i never used below 0f or max perf on blob either because the blob couldnt vsync properly with it so movies and desktop composition teared.
12:42karolherbst: sometimes compositors are really smart
12:42karolherbst: and drop vsyncing when the gpu is not fast enough
12:43karolherbst: well kwin does this
12:43karolherbst: except when you explicitly disable it
12:43Tom^: im affected by it in windows too, have to go into nvidia settings and set max perf here too :P
12:43karolherbst: those crappy drivers
12:43SaveTheRobots: i have to enable full repaints in kwin to get vsync under nouveau, i assume this is typical? automatic doesn't seem to cut it
12:43karolherbst: we really should fix those flickers on reclock
12:43karolherbst: SaveTheRobots: use automatic
12:44Yoshimo: nouveau has a long way to go until it beats these crappy drivers in every aspect
12:44SaveTheRobots: i get tearing with automatic :(
12:44karolherbst: SaveTheRobots: but yeah, "only when cheap" is a bad bad bad idea
12:44karolherbst: SaveTheRobots: ohh mhh
12:44karolherbst: SaveTheRobots: could be that the nouveau ddx isn't as good as the intel one
12:45SaveTheRobots: ahh ok :(
12:45karolherbst: or maybe it is a DRI3 thing
12:45SaveTheRobots: i'm using the latest master ddx build
12:45karolherbst: I run a DRI3 only setup somewhat
12:45SaveTheRobots: i guess full repaints are my best option then?
12:45karolherbst: I used it before automatic for quite long
12:45SaveTheRobots: k :)
12:45SaveTheRobots: btw, are you a KDE user? if so, what editor do you use for coding?
12:46Tom^: vim master race.
12:47SaveTheRobots:high fives Tom^ ... after pressing a long and complex key combo to activate the high five mode
12:48karolherbst: ohh I use nano
12:48SaveTheRobots: also, in KDE, should i be using GLX or EGL?
12:48Tom^: you do?
12:48karolherbst: sure I do
12:48SaveTheRobots: karolherbst: lies! :p
12:48Tom^: for real?
12:49Tom^: respect to you then. :D
12:49SaveTheRobots: holy shit :p
12:49karolherbst: if you set the right options nano is quite nice to use
12:49SaveTheRobots: i started out with nano when i first started using linux, i loved it, and still do
12:49karolherbst: you can even copy paste between multiple files with nano
12:49karolherbst: Tom^: do you know how to do that with vim?
12:50Tom^: i simply yank and have a X cutbuffer and paste in the other file?
12:50karolherbst: and if you have to copy paste like 300 lines?
12:51SaveTheRobots: karolherbst: sorry to nag but is there any recommendation when it comes to GLX vs EGL under KDE ?
12:51Tom^: i mark it with my mouse and then yank it?
12:51karolherbst: SaveTheRobots: GLX is more tested
12:52karolherbst: Tom^: and if there are more lines than your terminal can show?
12:52karolherbst: or do you do several copy pastes then
12:52SaveTheRobots: thanks, i guess they should be on par when it comes to performance?
12:52karolherbst: no idea
12:52Tom^: karolherbst: then i either resort to googling vim if its capable or simply just cat with grep and tee.
12:53Tom^: with minor usage of xclip =D
12:53karolherbst: well with nano you can simply do this: nano file1 file2
12:53Tom^: yanks line 3 to 300
12:54karolherbst: then you cut with ctrk+k, closes file and paste with ctrl+u and are done
12:54karolherbst: yay, fancy vim commands :D
12:55karolherbst: never actually take my time to learn it
12:55karolherbst: it's on my todo list of stuff I will do at some point
12:55Tom^: i mostly only use it because of its plugins
12:55Tom^: the youcompleteme plugin, code completion <3
12:56Tom^: and colorization tuned to the language used, for methods variables etc
12:56Tom^: but yes its fancy commands can be a bit tough at times
15:08karolherbst: SaveTheRobots: and any issues yet?
15:13SaveTheRobots: karolherbst: not yet, although i haven't tested much yet, i'm about to compile 32bit mesa+drm and then fire up Steam :]
15:15imirkin: oh that reminds me i need to look into that WoW text situation
15:17karolherbst: would be nice. I kind of feel that the oblivion issue I have is the same thing
15:17imirkin: does reverting that commit fix it?
15:18karolherbst: which commit?
15:18imirkin: the one in the bug
15:18imirkin: where i re-enable BGRA4 support
15:18karolherbst: ahh I could try that out
15:27karolherbst: imirkin: as it seems it does not
15:28imirkin: so then unlikely to be related.
15:28karolherbst: "message: major api error 3: GL_INVALID_ENUM in glRenderbufferStorage(internalFormat=GL_SLUMINANCE8_ALPHA8)" is this somewhat important?
15:30imirkin: that's wine.
15:30imirkin: i complained to them, they didn't seem to care too much
15:30imirkin: and it's, in fact, not a big deal
15:30imirkin: it's part of their format checking logic when internalformat_query2 isn't supported
15:31karolherbst: any idea how I could debug my issue? check what format the textures have that doesn't get displayed?
15:31imirkin: find the draw that goes wrong, figure out what makes it special
15:32karolherbst: ohh the trace is nice, not many calls
15:52karolherbst: imirkin: k, the texture object is already corrupted
15:52karolherbst: GL_SRGB8_ALPHA8 format
15:55imirkin: so figure out where it comes from
16:08karolherbst: k, I think I found the place where the texture is generated/loaded/whatever
16:09karolherbst: @1 glTexImage2D(target = GL_TEXTURE_2D, level = 0, internalformat = GL_SRGB8_ALPHA8, width = 64, height = 64, border = 0, format = GL_BGRA, type = GL_UNSIGNED_SHORT_4_4_4_4_REV, pixels = NULL)
16:09karolherbst: does that sound right?
16:10imirkin: oh fun. so also RGBA4
16:11karolherbst: guess what
16:11karolherbst: I replayed the apitrace after reverting the patch
16:11karolherbst: I guess I should have rerun the game?
16:11imirkin: shouldn't matter
16:11imirkin: internally that'd get all mapped to RGBA8 or whatever
16:12imirkin: oh, pixels = null
16:12imirkin: so actually the RGBA4-ness doesn't matter
16:15karolherbst: on intel the texture is just blank white
16:15karolherbst: actually fully transparent
16:17karolherbst: on nouveau it looks like this: https://i.imgur.com/tHFU3z8.png
16:17imirkin: i guess it's not getting cleared?
16:18karolherbst: it is black before
16:19karolherbst: ohh wait
16:19karolherbst: 1x1 black, that doesn't count I suppose
16:19karolherbst: well it does glGenTexture, glBindTexture, 2x glTexParameteri then the glTexImage2D call
16:24karolherbst: and then glBindTexture, glPixelStorei, glTexSubImage2D, glPixelStorei
16:25karolherbst: and after that nouveau still shows the same corruption
16:25karolherbst: but on intel the texture is there instead if the full alpha texture
16:27karolherbst: @1 glTexSubImage2D(target = GL_TEXTURE_2D, level = 0, xoffset = 0, yoffset = 0, width = 64, height = 64, format = GL_BGRA, type = GL_UNSIGNED_SHORT_4_4_4_4_REV, pixels = [binary data, size = 8 kb])
16:29karolherbst: the binary data looks okayish
16:39imirkin: are you looking at the WoW trace or the oblivion trace?
16:39imirkin: coz that's precisely the conclusion i also came to for WoW
16:39imirkin: ok, so then it's the same issue
16:43karolherbst: what I find somewhat weird is, that the glTexSubImage2D call doesn't change the texture at all
16:48imirkin: that's my observation too
16:54karolherbst: mhh maybe some issue with the memory?
16:55karolherbst: like does something stupid when there is no pixels
16:56imirkin: not sure what you mean
16:58karolherbst: maybe no memory is allocated and the stuff points to some random thing or something
17:02imirkin: bo is allocated at miptree creation time
17:03karolherbst: imirkin: turning the gpu on and off changes the texture
17:03imirkin: of course
17:03imirkin: the vram is uninitialized
17:03karolherbst: okay and unninitialized also means we can't write stuff into it?
17:04imirkin: no, we can write stuff
17:04imirkin: it's like malloc'd memory
17:04imirkin: it contains whatever happens to be there
17:04karolherbst: okay, but why doesn't the glTextsubImage2D call changes anything?
17:04imirkin: therein lies the issue :)
17:04karolherbst: one thing though
17:04imirkin: if i knew, i'd have solved the issue already
17:05karolherbst: everytime I run the trace, the texture looks the same
17:05imirkin: yeah, coz the same piece of vram gets allocated
17:05imirkin: since the allocator is pretty deterministic
17:05imirkin: and you don't have much else going on on that gpu
17:12karolherbst: I'll try to debug this with gdb... will take 2 days until I reach nouveau code I guess
17:16karolherbst: at least I get the right call
17:18karolherbst: try_pbo_upload is important?
17:18karolherbst: I suppose
17:21karolherbst: ohh wait, it goes somewhere else
17:23karolherbst: imirkin: anything I should read out for you while debugging?, I am currently inside nvc0_miptree_create
17:24imirkin: either you're debugging it or i am
17:24karolherbst: there is this if, if, if thing
17:24karolherbst: guess what
17:24karolherbst: none condition was met
17:24karolherbst: expected or not?
17:24karolherbst: bo_config.nvc0.memtype is 0, no idea if that's bad
17:28karolherbst: well I can only assume that the stuff is written, but just somewhere else
17:28karolherbst: it looks okayish to me, but I have no big idea what is going on there anyway
17:31imirkin: memtype = 0 means that it's an untiled (aka linear) texture
17:31imirkin: i wonder if it's getting a buffer texture and the 2d engine doesn't know how to handle that properly?
17:32karolherbst: mhh, currently I am in nvc0_blit_3d
17:34karolherbst: info->dst.box.depth is 1, does that sound right?
17:39imirkin: is dst's memtype != 0?
17:39karolherbst: in nvc0_blit_3d?
17:41karolherbst: mhh just need to know how I get that out of the struct pipe_resource
17:43karolherbst: no member named memtype
17:45karolherbst: nv04_resource(dst)->bo.config.nvc0.memtype is 254
17:45karolherbst: but I have no idea if that is what you wanted
17:48imirkin: i think that's like the default color surface tiling memtype
17:48imirkin: unless there are complicating circumstances like MS, etc
17:48imirkin: (nvc0_miptree.c has the logic)
17:58karolherbst: I think I will gonna head to bed. I can't find something terrible wrong there and it seems like the stuff is copied somewhere