I think it's the kernel too. I have a reduced way of reproducing it. env LIBGL_ALWAYS_SOFTWARE=1 glmark2 (from pkgsrc) will be visibly corrupt.
env LIBGL_ALWAYS_SOFTWARE=1 ktruss -i glmark2 > /dev/null or a second glmark2 instance seemed to make it go away. I think this difference means it might be under-synchronizing. tearing should become worse with a second glmark2 instance or with more load. instead it becomes better. Anyway, I enabled tearfree by default, so the visible effects should be gone, but the bug isn't.