use non-direct buffers