For this example your fake stone shader needs to be a child of a surface layer:
Fake stones shader -> displacement shader to scalar -> Boolean NOT scalar -> use this as a mask for your surface layer downstream.
Explanation:
With the fake stones as a child of a surface layer you will have a couple of benefits:
1) enabling smoothing of the (parent) surface layer will force the layer to use a smoothed version of the terrain as computed per the last compute terrain before the surface layer.
This prevents fake stones from incorporating high frequency details (present in the unsmoothed terrain).
2) you can use a set of separate fractals to give the fake stones unique displacement/colour
3) you can generate masks like this
The
displacement shader to scalar converts the displacement of the fake stones to a scalar (a scalar is easiest to think of as a certain (greyscale) value).
The
Boolean NOT scalar then converts the output of the
displacement shader to scalar to 0 = black for where the stones are and 1 = white where the stones are not.