Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9ec41871 authored by Nikita Gupta's avatar Nikita Gupta
Browse files

Add missing formats in vkjson (generated code)

Test: adb shell cmd gpu vkjson
Flag: NONE infeasible
Bug: b/415984509

Change-Id: I54a858e388ecf73b309b378f83613205ab2c1e0b
parent d8c6c96e
Loading
Loading
Loading
Loading
+87 −0
Original line number Diff line number Diff line
@@ -347,6 +347,38 @@ VkJsonDevice VkJsonGetDevice(VkPhysicalDevice physical_device) {
    }
  }

  if (HasExtension("VK_IMG_format_pvrtc", device.extensions)) {
    for (VkFormat format = VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG;
         // TODO(http://b/171403054): avoid hard-coding last value in the
         // contiguous range
         format <= VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG;
         format = static_cast<VkFormat>(format + 1)) {
      vkGetPhysicalDeviceFormatProperties(physical_device, format,
                                          &format_properties);
      if (format_properties.linearTilingFeatures ||
          format_properties.optimalTilingFeatures ||
          format_properties.bufferFeatures) {
        device.formats.insert(std::make_pair(format, format_properties));
      }
    }
  }

  if (HasExtension("VK_NV_optical_flow", device.extensions)) {
    for (VkFormat format = VK_FORMAT_R16G16_SFIXED5_NV;
         // TODO(http://b/171403054): avoid hard-coding last value in the
         // contiguous range
         format <= VK_FORMAT_R16G16_SFIXED5_NV;
         format = static_cast<VkFormat>(format + 1)) {
      vkGetPhysicalDeviceFormatProperties(physical_device, format,
                                          &format_properties);
      if (format_properties.linearTilingFeatures ||
          format_properties.optimalTilingFeatures ||
          format_properties.bufferFeatures) {
        device.formats.insert(std::make_pair(format, format_properties));
      }
    }
  }

  if (device.properties.apiVersion >= VK_API_VERSION_1_1) {
    for (VkFormat format = VK_FORMAT_G8B8G8R8_422_UNORM;
         // TODO(http://b/171403054): avoid hard-coding last value in the
@@ -492,6 +524,47 @@ VkJsonDevice VkJsonGetDevice(VkPhysicalDevice physical_device) {
  }

  if (device.properties.apiVersion >= VK_API_VERSION_1_3) {
    for (VkFormat format = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM;
         // TODO(http://b/171403054): avoid hard-coding last value in the
         // contiguous range
         format <= VK_FORMAT_G16_B16R16_2PLANE_444_UNORM;
         format = static_cast<VkFormat>(format + 1)) {
      vkGetPhysicalDeviceFormatProperties(physical_device, format,
                                          &format_properties);
      if (format_properties.linearTilingFeatures ||
          format_properties.optimalTilingFeatures ||
          format_properties.bufferFeatures) {
        device.formats.insert(std::make_pair(format, format_properties));
      }
    }

    for (VkFormat format = VK_FORMAT_A4R4G4B4_UNORM_PACK16;
         // TODO(http://b/171403054): avoid hard-coding last value in the
         // contiguous range
         format <= VK_FORMAT_A4B4G4R4_UNORM_PACK16;
         format = static_cast<VkFormat>(format + 1)) {
      vkGetPhysicalDeviceFormatProperties(physical_device, format,
                                          &format_properties);
      if (format_properties.linearTilingFeatures ||
          format_properties.optimalTilingFeatures ||
          format_properties.bufferFeatures) {
        device.formats.insert(std::make_pair(format, format_properties));
      }
    }

    for (VkFormat format = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK;
         // TODO(http://b/171403054): avoid hard-coding last value in the
         // contiguous range
         format <= VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK;
         format = static_cast<VkFormat>(format + 1)) {
      vkGetPhysicalDeviceFormatProperties(physical_device, format,
                                          &format_properties);
      if (format_properties.linearTilingFeatures ||
          format_properties.optimalTilingFeatures ||
          format_properties.bufferFeatures) {
        device.formats.insert(std::make_pair(format, format_properties));
      }
    }
    device.core13.properties.sType =
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES;
    device.core13.properties.pNext = properties.pNext;
@@ -508,6 +581,20 @@ VkJsonDevice VkJsonGetDevice(VkPhysicalDevice physical_device) {
  }

  if (device.properties.apiVersion >= VK_API_VERSION_1_4) {
    for (VkFormat format = VK_FORMAT_A1B5G5R5_UNORM_PACK16;
         // TODO(http://b/171403054): avoid hard-coding last value in the
         // contiguous range
         format <= VK_FORMAT_A8_UNORM;
         format = static_cast<VkFormat>(format + 1)) {
      vkGetPhysicalDeviceFormatProperties(physical_device, format,
                                          &format_properties);
      if (format_properties.linearTilingFeatures ||
          format_properties.optimalTilingFeatures ||
          format_properties.bufferFeatures) {
        device.formats.insert(std::make_pair(format, format_properties));
      }
    }

    device.core14.properties.sType =
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES;
    device.core14.properties.pNext = properties.pNext;