#1877 added full decomposing of struct kernel arguments. However it can be optimized.
Basically we need to decompose only structs that contain special type inside (i.e. accessor/stream/sampler etc), all others we can pass as it, so number of kernel arguments will be optimized.