[dawn][metal] Fix or triage all DAWN_UNSAFE_TODOs Bug: 439062058, 532554331, 534203108, 501491697, 532946455, 524406299 Change-Id: Iadcaba91b3ff88a8d6659dd599a88d9435c06b33 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/323895 Reviewed-by: Loko Kung <lokokung@google.com> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/dawn/native/metal/BufferMTL.mm b/src/dawn/native/metal/BufferMTL.mm index 458a634..163d6c3 100644 --- a/src/dawn/native/metal/BufferMTL.mm +++ b/src/dawn/native/metal/BufferMTL.mm
@@ -210,6 +210,7 @@ // The real mapped pointer is never returned for zero sized buffers. MappedAtCreation buffers // are initialized in BufferBase already. if (NeedsInitialization() && GetSize() > 0 && newState == BufferState::Mapped) { + // TODO(https://crbug.com/501491697): Spanify GetMappedPointerImpl. DAWN_UNSAFE_TODO(std::memset(GetMappedPointerImpl(), 0, GetAllocatedSize())); GetDevice()->IncrementLazyClearCountForTesting(); SetInitialized(true);
diff --git a/src/dawn/native/metal/CommandBufferMTL.mm b/src/dawn/native/metal/CommandBufferMTL.mm index 86b047d..c7dd4dc 100644 --- a/src/dawn/native/metal/CommandBufferMTL.mm +++ b/src/dawn/native/metal/CommandBufferMTL.mm
@@ -637,6 +637,8 @@ DAWN_ASSERT(size <= sizeof(uint32_t) * (kMaxImmediateBlockSize - offset)); // Copy data to all affected shader stages for (auto stage : IterateStages(stages)) { + // TODO(https://crbug.com/532946455): Spanify ImmediateTracker. + // TODO(https://crbug.com/524406299): Use Span::CopyFrom. DAWN_UNSAFE_TODO(std::memcpy(&mImmediateBlockContent[stage][offset], data, size)); } dirtyStages |= stages; @@ -1548,6 +1550,7 @@ Buffer* dstBuffer = ToBackend(write->buffer.Get()); Device* device = ToBackend(GetDevice()); + // TODO(https://crbug.com/534203108): Spanify WithUploadReservation. DAWN_TRY(device->GetDynamicUploader()->WithUploadReservation( data.size(), kCopyBufferToBufferOffsetAlignment, [&](UploadReservation reservation) -> MaybeError {
diff --git a/src/dawn/native/metal/PhysicalDeviceMTL.mm b/src/dawn/native/metal/PhysicalDeviceMTL.mm index c236051..6ac2615 100644 --- a/src/dawn/native/metal/PhysicalDeviceMTL.mm +++ b/src/dawn/native/metal/PhysicalDeviceMTL.mm
@@ -74,9 +74,9 @@ // Find vendor ID from MTLDevice name. MaybeError GetVendorIdFromVendors(id<MTLDevice> device, PCIIDs* ids) { uint32_t vendorId = 0; - const char* deviceName = [device.name UTF8String]; + std::string_view deviceName = [device.name UTF8String]; for (const auto& it : kVendors) { - if (DAWN_UNSAFE_TODO(strstr(deviceName, it.trademark)) != nullptr) { + if (deviceName.find(it.trademark) != std::string_view::npos) { vendorId = it.vendorId; break; }
diff --git a/src/dawn/native/metal/QueueMTL.mm b/src/dawn/native/metal/QueueMTL.mm index a600f24..0b46647 100644 --- a/src/dawn/native/metal/QueueMTL.mm +++ b/src/dawn/native/metal/QueueMTL.mm
@@ -276,7 +276,7 @@ } TRACE_EVENT_END0(GetDevice()->GetPlatform(), Recording, "CommandBufferMTL::FillCommands"); - DAWN_UNSAFE_TODO(DAWN_TRY(SubmitPendingCommandBuffer())); + DAWN_TRY(SubmitPendingCommandBuffer()); return {}; }
diff --git a/src/dawn/native/metal/TextureMTL.mm b/src/dawn/native/metal/TextureMTL.mm index 5bd3e8b..b13a812 100644 --- a/src/dawn/native/metal/TextureMTL.mm +++ b/src/dawn/native/metal/TextureMTL.mm
@@ -685,6 +685,7 @@ blockInfo.ToBytes(largestMipSize.width * largestMipSize.height); uint64_t uploadSize = blockInfo.ToBytes(uploadBlocks); + // TODO(https://crbug.com/534203108): Spanify WithUploadReservation. DAWN_TRY(device->GetDynamicUploader()->WithUploadReservation( uploadSize, blockInfo.byteSize, [&](UploadReservation reservation) -> MaybeError { DAWN_UNSAFE_TODO(memset(reservation.mappedPointer, clearColor, uploadSize));