I believe when ringbuffering you should use ID3D12CommandQueue::Wait to ensure there are no write-after-write hazards, even when you are only writing from a single queue.
ID3D12CommandQueue::Wait