[dawn][native] Spanify DawnDrmFormatCapabilities

Bug: 515272358, 512465980
Change-Id: I98f3ff95334c7613d55ae8281e3602a179d6496a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/320516
Reviewed-by: Loko Kung <lokokung@google.com>
diff --git a/src/dawn/dawn_native.json b/src/dawn/dawn_native.json
index b544f7b..0a149e4 100644
--- a/src/dawn/dawn_native.json
+++ b/src/dawn/dawn_native.json
@@ -52,7 +52,6 @@
             "BindGroupDescriptor",
             "BindGroupLayoutDescriptor",
             "ComputeState",
-            "DawnDrmFormatCapabilities",
             "FragmentState",
             "PipelineLayoutDescriptor",
             "PipelineLayoutPixelLocalStorage",
diff --git a/src/dawn/native/vulkan/PhysicalDeviceVk.cpp b/src/dawn/native/vulkan/PhysicalDeviceVk.cpp
index a96eae9..236ece1 100644
--- a/src/dawn/native/vulkan/PhysicalDeviceVk.cpp
+++ b/src/dawn/native/vulkan/PhysicalDeviceVk.cpp
@@ -1704,16 +1704,15 @@
     if (auto* drmCapabilities = capabilities.Get<DawnDrmFormatCapabilities>()) {
         auto vk_format = ColorVulkanImageFormat(format);
         if (vk_format == VK_FORMAT_UNDEFINED) {
-            drmCapabilities->properties = nullptr;
-            drmCapabilities->propertiesCount = 0;
+            drmCapabilities->properties = {};
         }
         auto drmFormatModifiers =
             GetFormatModifierProps(mVulkanInstance->GetFunctions(), mVkPhysicalDevice, vk_format);
         if (!drmFormatModifiers.empty()) {
             size_t count = drmFormatModifiers.size();
+            // TODO(https://crbug.com/512465980): Use dawn::HeapArray
             auto* properties = new DawnDrmFormatProperties[count];
-            drmCapabilities->properties = properties;
-            drmCapabilities->propertiesCount = count;
+            drmCapabilities->properties = DAWN_UNSAFE_TODO({properties, count});
 
             for (size_t i = 0; i < count; i++) {
                 DAWN_UNSAFE_TODO(properties[i]).modifier = drmFormatModifiers[i].drmFormatModifier;