16:45 georgeouzou[d]: Hello all!
16:45 georgeouzou[d]: I'm looking at how minimal root desc updates are currently pushed. Does LOAD_CONSTANT_BUFFER_OFFSET do some tracking magic underneath?
16:45 georgeouzou[d]: How can multiple draws happen in parallel if the root changes? For example if multiple draw calls change the base vertex back to back?
17:38 mhenning[d]: I'm not really sure if that case stalls or not
17:43 karolherbst[d]: mhhhhhhhhhh
17:44 karolherbst[d]: the answer is: yes and no
17:44 karolherbst[d]: by default a constant buffer change does incur a WFI
17:45 karolherbst[d]: though not sure what by default means and where the toggle is to not do that
17:47 karolherbst[d]: there are a couple of MMIO registers related to that, and you want to search for `SCC`
17:50 karolherbst[d]: but there are also root arguments we want to use
20:30 karolherbst[d]: mhenning[d]: maybe something you want to figure out? root const buffers I mean. The ISA allows us to encode up to index 32 and the root const buffers use the slots after the "normal" ones, but it's kinda weird and I have never seen nvidia use it 🙃 It's `ROOT_TABLE` in the class headers + something that's called `BINDING_GROUP`. Afaik they are smaller and you can kinda switch between them without
20:30 karolherbst[d]: invalidation or WFIs
20:32 mhenning[d]: yeah, I can add that to my todo list
20:32 mhenning[d]: I don't think I've seen it in a trace before either
20:50 karolherbst[d]: it's a 3D only thing anyway though I think I might have seen shaders where they are using it? mhh