Open
Description
void BufferMTL::updateSubData(void* data, std::size_t offset, std::size_t size)
{
assert(offset + size <= _size);
updateIndex();
memcpy((uint8_t*)_mtlBuffer.contents + offset, data, size);
}
这个函数在GL的backend里面是更新局部数据,没有更新的部分保留上一次提交的数据,但是在Metal的backend里面如果 updataIndex成功后拿到一个新的buffer,但是只是修改了offset后面的一部分数据。这样如果使用,就会出现GL的Buffer和Metal的Buffer数据不一致的问题
Metadata
Metadata
Assignees
Labels
No labels