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