split surface's matrix update into multi-threaded phase