On Tue, Mar 29, 2011 at 03:45:34PM -0400, Jerome Glisse wrote:
Short lived & small bo would definitly doesn't work well for this kind of API, it would all be a function of the ioctl cost. But i am not sure the drawback would be that big, intel tested with pread/pwrite and gived up don't remember why. For the vbo case you describe the scheme i was thinking would be : allocate bo and on buffer data call upload to the allocated bo using the bind user page feature that would mean zero extra copy operation. For the fire forget case of vbo, likely somekind of transient buffer would be more appropriate.
Just to clarify: Uploads to linear buffers are all done with pwrite (due to an api foobar, it's not so great for 2d/tiled stuff). It's amazing how much faster that is: Switching vbo's from mmpa to pwrite has given a few percent more fps in openarena in i915g! As long as the chunk you're gonna write fits into L1 cache, it's probably a net win. -Daniel