the difference between clEnqueueMarkerWithWaitList() and clEnqueueBarrierWithWaitList()

anyone can help clarify the difference about these 2 APIs in OPENCL1.2, clEnqueueMarkerWithWaitList() and clEnqueueBarrierWithWaitList()?

I am programing on GeForce GTX 1080Ti, and it seems they are totally the same in behvavior.