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