@anon41087856 has stated in his great article about migration from color lab to linear RGB that vignettes should be applied while still in linear space.
If you apply it after the base curve/filmic curve as the vignette module does you can create nos smooth transitions an bandings.
OK, I can understand that and agree.
I usually apply vignetting manually drawing an ellipse as mask applied over a darkening layer (in darktable or other programs) and if I nee it, use a parametric mask to protect deep shadows and brighter lights from darkening.
In darktable I can do it using the exposure module (that works in the linear space) or the contrast/brightness/saturation (moving it in the pipeline to a position before the base curve/filmic in the pipeline).
But the problem is that results are different with no smooth and uniform darkening (perceptually).
The problem is not the darkening itself, the problem is the distribution of the gray tones in the mask used for vignetting.
The gradient generated by the mask is linear, but a linear mask does not produce a perceptually uniform darkening.
If we are going to use vignetting in the linear pipeline we need a logarithmic distribution of grays in mask in order to get a perceptually constant darkening.
But as long as I know you cannot change the way the mask is smooth, it is always linear.
So how are we supposed to get proper vignetting? Is it a work in progress?
In that case, until there is an option to get non linear distribution of shadows in masks, we have no option but applying it after the base curve when the image is more similar to a perceptual image.
Image with a vignette applied using brightness after base curve.
You can see a perceptually constant darkening, as the luminosity has been converted to by the base curve to a value similar to what we perceive as lightness.
Same image with vignette applied in linear workspace, before the base curve.
The gradient is to harsh, it is not a smooth and uniform transition.