vaCreateBuffer(), if a given |data| is not null, copies |data| into a created buffer.
The current vaCreateBuffer() implementation acquires a BufferLock in the begging of the function and releases in the end of the function.
Therefore, memcpy is executed while the lock is held.
The bufferlock is basically required to operate on a bufferHeap, if I understand correctly.
So the lock scope should be more narrow; at least memcpy should be performed without holding the lock.
What's the usage scenario would be benifited?
Video Conference
What impacted?
The concurrent function calls e.g. vaCreateBuffer() will not be blocked by memcpy in vaCreateBuffer().
Do you want to contribute a patch to develop this feature?
What Feature?
vaCreateBuffer(), if a given |data| is not null, copies |data| into a created buffer. The current vaCreateBuffer() implementation acquires a BufferLock in the begging of the function and releases in the end of the function. Therefore, memcpy is executed while the lock is held. The bufferlock is basically required to operate on a bufferHeap, if I understand correctly. So the lock scope should be more narrow; at least memcpy should be performed without holding the lock.
What's the usage scenario would be benifited?
Video Conference
What impacted?
The concurrent function calls e.g. vaCreateBuffer() will not be blocked by memcpy in vaCreateBuffer().
Do you want to contribute a patch to develop this feature?
No response