01:14 rhyskidd: imirkin: You mentioned re-doing my Pascal temp sensor patch as masks directly, instead of a bit shift
01:14 rhyskidd: but I didn't follow the example conversion you provided
01:15 rhyskidd: imirkin: instead of bit shifts like "+ if (((packed_tsensor >> 29) & 0x3) == 0x2)" do like "if packed_tsensor & 0xc0000000 == 0x80000000"
01:17 rhyskidd: shouldn't the AND mask applied to packed_tsensor be 0x60000000? as that is 0x3 << 29
01:21 imirkin_: yes. off-by-one ;)
01:23 rhyskidd: cool. I'm trying to be super careful with this bitfield maths -- easy to trip up for a newbie
01:38 imirkin_: rhyskidd: the nice thing about using the full masks is that it makes it easier to compare to live values from traces
01:42 rhyskidd: rebuilding my modified nouveau.ko now
01:43 rhyskidd: fair enough
02:48 koz_: imirkin_: Did you see my trace above for the Minetest issues? If not, it's https://transfer.sh/12SdaX/minetest.trace.xz
02:48 imirkin: koz_: yeah
02:48 imirkin: koz_: unfortunately i have no experience with debugging performance issues
02:49 koz_: imirkin: Oh, OK. Who would be the person to talk to? karolherbst?
02:49 imirkin: if you have rendering fail, i can probably work out what's going on
02:49 imirkin: bug perf issues? no clue =/
02:49 koz_: imirkin: Fair enough - thanks for letting me know.
02:49 imirkin: probably in large part due to my having the shittiest nvidia hw, i never really took the time to understand perf
02:49 koz_: I guess I can ask karol when he next materializes.
02:49 imirkin: i'm not aware of anyone here who has a solid grasp of how to do perf analysis
02:50 koz_: Oh, welp.
02:50 koz_: That's a bit of a problem. :(
02:50 imirkin: sure is
02:50 imirkin: and not one that'll solve itself
02:51 koz_: I'm completely out of my depth for something like this.
02:51 imirkin: aren't we all :)
02:51 koz_: I dare say you or karol understand more about 3D stuffs than me. :P
02:51 imirkin: we weren't born with the knowledge
02:51 imirkin: i.e. one can learn if one is so inclined
02:52 koz_: imirkin: I know that. I was referring more to the sense of 'you having more experience'.
02:52 imirkin: i guess i've been at this for a while now, but i started from 0
02:52 koz_: I know I could learn, but ultimately, I'm a PhD student with only so many hours in each day, and I suspect it'd take me quite a while to get to the point where I can even diagnose this issue. I figured I'd see if anyone else might be further ahead than me.
02:52 koz_: But if not, that's all good.
02:53 imirkin: yeah. not everyone has the time for this.
02:53 imirkin: including me, of late =/
02:53 koz_: Fair enough - we all have lives.
02:53 koz_: (and work commitments/study commitments/other commitments)
02:53 imirkin: :)
02:54 imirkin: fwiw we do expose a variety of perf counters which may or may not be useful to look at
02:55 koz_: I could try trace profiling maybe?
02:56 imirkin: at the very least would be interesting to understand if this is a cpu-side or gpu-side bottleneck
02:56 imirkin: [oh yeah, that's the other thing -- the bottleneck on my GT 730 may be quite different from the one on your GTX 680]
02:56 koz_: Possible, but it'd be a start at least.
02:56 koz_: I'll see what, if anything, I can come up with.
02:57 imirkin: https://hastebin.com/yejoqepigu.go
02:57 imirkin: nothing but the best for me =]
02:58 orbea: how would someone determine if a perf issue is a cpu or gpu bottleneck?
02:58 koz_: orbea: I guess run the gpu and cpu profilers and check?
02:58 koz_: Since apitrace has both.
02:58 orbea: makes sense
02:59 imirkin: orbea: one would stick a CPU + fps chart in GALLIUM_HUD
02:59 imirkin: orbea: and if CPU goes up and fps goes down, then it's a CPU limit
02:59 orbea: ah, cool :)
02:59 imirkin: if CPU stays even and fps goes down (or CPU goes down and fps goes down), then it's a GPU-side bottleneck
02:59 koz_: imirkin: If the blob doesn't have these perf issues, wouldn't that imply a GPU limit?
02:59 imirkin: [or PCIe or whatever]
02:59 orbea: im going to have to try that in some places later
02:59 imirkin: koz_: not really...
03:00 imirkin: koz_: unless you assume that whatever blob does on cpu is in every way identical to nouveau, and the only diff is in the commands sent to the gpu
03:00 koz_: Ah, makes sense.
03:01 koz_: Well, I'll play around with it all a bit and see if anything comes of it.
03:01 imirkin: keep in mind that nouveau isn't like decompiled nvidia driver that was then recompiled. it's reimplemented based on our understanding of how the GPU works and working within the mesa / gallium infrastructure and abstractions.
03:02 koz_: Yeah, that makes sense, now that I think about it.
03:02 imirkin: certainly the low-level setup is largely copied
03:03 imirkin: based on traces we make, and reproducing them
03:03 imirkin: since we have no clue what matters and what doesn't
03:03 koz_: I fed this through profileshader.py, for both GPU and CPU.
03:03 koz_: The CPU time spent by the shaders is literally 0 throughout.
03:04 imirkin: not sure what profileshader.py is
03:05 koz_: Profiling results per shader.
03:05 koz_: It says how many times a shader program got called, how long each call took, and how much time was spent in each one in total, as far as I can tell.
03:05 koz_: I don't know if this is relevant in any way.
03:05 koz_: (because I don't even know wtf a shader is)
03:05 koz_: Figured I'd try something and see if it gave any useful info to people who know more than I do.
03:05 imirkin: how long what call took?
03:06 imirkin: the draw call?
03:08 koz_: As per here: https://github.com/apitrace/apitrace/blob/master/docs/USAGE.markdown and these are the outputs: https://pastebin.com/raw/2JVAPxUs
03:08 koz_: Sorry, here: https://github.com/apitrace/apitrace/blob/master/docs/USAGE.markdown#profiling-a-trace
03:12 koz_: Based on that, I assume 'Per Call' refers to 'per draw call'.
03:13 imirkin: yeah, figuring out precisely what these things are profiling is always the issue
03:13 imirkin: unfortunately i don't know the details
03:16 koz_: imirkin: And I guess nobody else who hangs out here would?
03:17 imirkin: maybe hakzsam
03:18 koz_: Well, the apitrace site links to a talk about measuring performance with apitrace. I'll watch the talk and see if anyone else in the channel chimes in. Thanks for your help and patience, imirkin!
03:19 orbea: koz_: mind linking the video?
03:19 koz_: orbea: https://www.youtube.com/watch?v=NaIhuXvg39U
03:19 orbea: thanks
03:20 koz_: Talk proper starts ~1.30
03:49 koz_: Hmm, I've found that there's a tonne of shader compiler issues.
03:50 orbea: that is a pretty common message when replying traces with nouveau
03:51 koz_: warning: message: high error 2: GL_INVALID_ENUM in glGetIntegerv(pname=GL_TEXTURE_BINDING_BUFFER)
03:51 koz_: This happens like, heaps and heaps of times.
03:51 koz_: Specifically that.
03:52 koz_: Inside something called glProgramStringARB
03:52 koz_:is examining a frame where I had severe perf drops.
03:52 orbea: might be relevent
03:53 koz_: (that's not the only place this happens)
03:53 koz_: (there's a bunch more calls hitting this)
04:03 imirkin: might be apitrace doing the calling
04:03 imirkin: and not accounting for it being a compat context without GL_ARB_texture_buffer_object? dunno.
04:10 koz_: imirkin: Possibly. I'll keep investigating.
07:08 pmoreau: koz_: It has a SPIR-V validator, so no need to write another one just for Nouveau/clover, and having the linker there means others can use it (if you are writing some code that needs to link SPIR-V binaries, you probably don't want to link to Mesa just to get one ;-)).
07:22 koz_: pmoreau: Ah, I see.
07:25 pmoreau: Also, we could be using the optimiser it contains, if needed, especially after the linking step. Some of the other tools could be used to make the SPIR-V parsing a bit easier (even if it isn’t that hard doing it manually).
18:41 pmoreau: PyroSamurai: I have create a small todo list with my current tasks (that I tried to document at least a bit): https://trello.com/b/YyQi5Wy2/nouveau
18:42 pmoreau: I’ll try to add some smaller todo items for SPIR-V, and add some labels to them regarding difficulties, and maybe priorities.
18:43 Bl4ckb0ne: do you guys have a recommendation for a good performanced nvidia card fully supported by nouveau?
18:45 pmoreau: What do you mean by “fully supported”? More like “won’t crash and does run decently”, or “has all of its features supported”?
18:47 Voxel: probably the first option
18:48 imirkin_: Bl4ckb0ne: nothing's *fully* supported for any reasonable definition of full. however the GTX 7xx series is probably among the best-supported modern GPUs (except the 750's)
18:49 tobijk: mh anythin kepler should work pretty decent (in most cases)
18:50 imirkin_: stay away from GTX 660's
18:51 tobijk: GK106 that bad? :o
18:51 imirkin_: nope
18:51 imirkin_: just GTX 660's appear to have something which disagrees with our ctxsw fw
18:51 imirkin_: (some of them, not all)
18:52 tobijk: mhm
18:52 imirkin_: naturally not the one ben has :)
18:53 tobijk: heh
18:53 Bl4ckb0ne: I have agtx970 at home but I didnt tried it yet
18:54 Bl4ckb0ne: plus I want to put it for gpu passthrough
18:54 imirkin_: yeah, that won't work so hot on the perf side of things
18:54 imirkin_: and you need a pretty recent kernel for it to even boot if you have one of the 4GB ones
18:57 Bl4ckb0ne: and also, is vulkan even supported by nouveau?
18:57 Bl4ckb0ne: the said gpu will be for graphics programming (opengl/vulkan)
18:58 imirkin_: nope, no vk support
18:59 Bl4ckb0ne: well that ends my search then
18:59 Bl4ckb0ne: thats sad
18:59 Bl4ckb0ne: nvidia driver bork´d my system this morning
18:59 Bl4ckb0ne: so I was looking for an alternative
19:00 imirkin_: you want an AMD board if you're looking for good OSS support
19:00 Bl4ckb0ne: OSS?
19:00 imirkin_: open-source software
19:00 Bl4ckb0ne: they have vulkan support?
19:01 Bl4ckb0ne: plus I guess their proprietary driver is better than nvidia
19:01 imirkin_: or the ancient sound subsystem in linux :)
19:01 imirkin_: yes, there's a vk driver
19:01 Bl4ckb0ne: dunno if they have wayland and vulkan support
19:01 imirkin_: (called radv)
19:01 imirkin_: i'm not sure if it's up and running on the latest and greatest boards which just came out, but if it's not, it's close
19:03 Bl4ckb0ne: smells like nvidia rollback tonight
19:03 karolherbst: Bl4ckb0ne: usually their propritary driver isn't better than nvidias, maybe the new stuff based on amdgpu got a lot better, but before that nvidia was superior
19:05 Bl4ckb0ne: and the open source one?
19:10 karolherbst: hard to say
19:11 karolherbst: I guess feature wise nvidia is a head
19:11 karolherbst: performance wise maybe too? But the open radeon driver got pretty good as well
19:11 imirkin_: Bl4ckb0ne: you may get more precise answers in #radeon
19:12 Bl4ckb0ne: thanks
19:16 Bl4ckb0ne: seems like im out of idea to have both a passthrough gpu, a host gpu for vulkan and nouveau
19:16 Bl4ckb0ne: but thanks for your help guys
23:12 karolherbst: something is killing my discs on suspend/battery :/
23:24 karolherbst: fun, whenever my scsi_host are set to min_power, my /home disc doesn't respond anymore :(