Skip to content

WIP: CL: Pass kernel args through a side channel

Boris Brezillon requested to merge ms/cl-kernel-args-side-channel into msclc-d3d12

Jesse, I gave your idea of passing args through the configuration object a try, and it seems to work. The question is, is it simpler/better than our previous approach where all args except images (which I only realized while working on this implementation :-/) were passed through a CBV, and extracted using a CBufferLoad().

The introduction of the clc_arg_set_xxx() helpers definitely improves things from a clc user perspective, but I suspect we could come up with pretty similar helpers to help fill the kernel input CBV. One argument in favor of this approach is that now, all of the argument types get extracted from the config struct (before that, only images were treated differently).

If we all agree that this is the way to go, I'll post a new version where I'll split the "microsoft/clc: Don't store kernel inputs in a CBV/UBO" commit, but I'd really like to be sure we want to go away from CBV-based argument passing first.

/cc @jenatali @kusma @daniels

Merge request reports