[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Public WebGL] CORS and resource provider awareness



On Thu, Nov 1, 2012 at 3:13 AM, Mark Callow <callow.mark@artspark.co.jp> wrote:

Or have the CPU copy the data to the GPU memory while the GPU continues working on the command buffer.

Yeah but any subsequent command could depend on those bytes. So unless you've uploaded the bytes, the next command after the upload can't continue safely. And unless you block you can't fulfill your guarantee that the memory used to pass the bytes is now back in the ownership of the client. And unless you have plenty of free, unused ram and a willingness to nuke the page cache table and blow up the driver memory footprint you can't do a ram->ram copy on write.

The fact of the matter is, you don't know, and can't control, what the driver does and when he syncs. Finish is just one function guaranteed to sync. There is no guarantee any (or all) of the others won't sync. It's up to the driver. OpenGL leaves this entirely unspecified. So trying to shoehorn syncing restrictions into prohibitions onto flush is like trying to plug a hole with a sieve.