[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;