v3dv: implement vkEnumerateDeviceExtensionProperties

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6766>
diff --git a/src/broadcom/vulkan/v3dv_device.c b/src/broadcom/vulkan/v3dv_device.c
index 73d9deb..8a15f6c 100644
--- a/src/broadcom/vulkan/v3dv_device.c
+++ b/src/broadcom/vulkan/v3dv_device.c
@@ -759,9 +759,22 @@
                                         uint32_t *pPropertyCount,
                                         VkExtensionProperties *pProperties)
 {
-   /* FIXME: stub */
+   /* We don't support any layers */
+   if (pLayerName)
+      return vk_error(NULL, VK_ERROR_LAYER_NOT_PRESENT);
 
-   return VK_SUCCESS;
+   V3DV_FROM_HANDLE(v3dv_physical_device, device, physicalDevice);
+   VK_OUTARRAY_MAKE(out, pProperties, pPropertyCount);
+
+   for (int i = 0; i < V3DV_DEVICE_EXTENSION_COUNT; i++) {
+      if (device->supported_extensions.extensions[i]) {
+         vk_outarray_append(&out, prop) {
+            *prop = v3dv_device_extensions[i];
+         }
+      }
+   }
+
+   return vk_outarray_status(&out);
 }
 
 VkResult