mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-16 16:37:08 +00:00
Implement CreateBufferMappedAsync in dawn_wire and dawn_native
Bug: dawn:7 Change-Id: I1a4e5eece53d83a4c5395ba6b41df2e20668c5bb Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/8120 Commit-Queue: Austin Eng <enga@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
This commit is contained in:
committed by
Commit Bot service account
parent
d1b4b5cba5
commit
21eba761b5
@@ -86,6 +86,32 @@ namespace dawn_wire { namespace server {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Server::DoDeviceCreateBufferMappedAsync(DawnDevice device,
|
||||
const DawnBufferDescriptor* descriptor,
|
||||
uint32_t requestSerial,
|
||||
ObjectHandle bufferResult) {
|
||||
if (!DoDeviceCreateBufferMapped(device, descriptor, bufferResult)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
auto* bufferData = BufferObjects().Get(bufferResult.id);
|
||||
ASSERT(bufferData != nullptr);
|
||||
|
||||
ReturnBufferMapWriteAsyncCallbackCmd cmd;
|
||||
cmd.buffer = ObjectHandle{bufferResult.id, bufferResult.serial};
|
||||
cmd.requestSerial = requestSerial;
|
||||
cmd.status = bufferData->mapWriteState == BufferMapWriteState::Mapped
|
||||
? DAWN_BUFFER_MAP_ASYNC_STATUS_SUCCESS
|
||||
: DAWN_BUFFER_MAP_ASYNC_STATUS_ERROR;
|
||||
cmd.dataLength = bufferData->mappedDataSize;
|
||||
|
||||
size_t requiredSize = cmd.GetRequiredSize();
|
||||
char* allocatedBuffer = static_cast<char*>(GetCmdSpace(requiredSize));
|
||||
cmd.Serialize(allocatedBuffer);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Server::DoBufferSetSubDataInternal(ObjectId bufferId,
|
||||
uint64_t start,
|
||||
uint64_t offset,
|
||||
|
||||
Reference in New Issue
Block a user