15:28 karolherbst: imirkin: somehow our internal fence API is a bit... broken
15:28 karolherbst: so I can have the situation where the current fence is emitted and e.g. has the sequence 9
15:29 karolherbst: but sequence_ack can be 8
15:29 karolherbst: and the latest fence worked on is 8 as well
15:29 karolherbst: calling nouveau_fence_update then doesn't make us progress at all
15:30 karolherbst: ehh wait
15:30 karolherbst: ...
15:30 karolherbst: that's actually correct
15:30 karolherbst: my mistake
15:31 pmoreau: clover series updated, time to look at improving tls and sending it in its own series.
15:31 karolherbst: oh no..
15:31 karolherbst: NOUVEAU_FENCE_STATE_FLUSHED is set in a weird way actually
15:33 karolherbst: nice...
15:33 karolherbst: I asserted on the wrong thing
15:33 karolherbst: nice nice..
15:33 karolherbst: my plan actually works now
15:34 karolherbst: no push buffer kicks inside the fence code
15:34 karolherbst: and evertying becomes simplier
15:46 imirkin: yay
15:46 imirkin: the fence stuff is _fairly_ solid
15:47 imirkin: so i'd be surprised if you found some bugs in its core workings
15:47 karolherbst: yeah.. just need to get my head around the life cycle..
15:47 karolherbst: but I think I removed the need for a NOUVEAU_FENCE_STATE_FLUSHED actually
16:13 imirkin: be careful modifying that stuff.
16:14 imirkin: it is subtle and quick to anger
16:14 karolherbst: yeah, I noticed
19:13 pmoreau: Are there drawbacks to pushing some state every launch rather than only when needed? (By pushing I mean when doing something like `BEGIN_NV04(push, NV50_CP(LOCAL_ADDRESS_HIGH), 2);`.)
19:13 imirkin: some methods imply a WFI
19:13 imirkin: (Wait For Idle. aka "serialize")
19:13 imirkin: that type of method is likely to imply that.
19:13 pmoreau: Ah thanks! I was wondering what WFI was :-D
19:14 imirkin: (and if it doesn't imply it, it might require the wfi to be done directly)
19:14 karolherbst: at some point we should really figure that out
19:14 karolherbst: should be able to automate it somewhat, no?
19:14 karolherbst: *possible
19:14 karolherbst: I mean.. automating to figure out what method triggers a WFI
19:16 pmoreau: I should be able to find an easy way to only upload that data when needed.
19:16 karolherbst: are you working on resizing TLS?
19:16 pmoreau: Yes
19:17 karolherbst: I am wondering if we want to have a resize ioctl in the new mm UAPI :D skeggsb?
19:18 airlied: resize what ioctl?
19:18 karolherbst: airlied: a bo
19:19 karolherbst: it could involve remapping memory and the like... but I guess it wouldn't help us with WFI points somewhere
19:19 karolherbst: :/
19:19 airlied: why would you want that vs recreating it
19:19 pmoreau: I will need to investigate a bit how TLS works in practice; I find it weird that the 3D shaders upload the address of the bo, while compute uploads address + 64 KiB.
19:19 karolherbst: airlied: e.g. TLS space you don't really have to wait until the GPU is done
19:19 karolherbst: you just want a bigger space without serializing
19:20 karolherbst: but yeah...
19:20 airlied: karolherbst: most userspace drivers separate the backing BO from the user facing one, so can discard the whole thing
19:20 karolherbst: airlied: it's all internal
19:21 karolherbst: but yeah, maybe there is no benefit in it
19:21 karolherbst: dunno
19:21 karolherbst: just a random thought