Vulkan-Profiles icon indicating copy to clipboard operation
Vulkan-Profiles copied to clipboard

Use XML Formats to generate test json files

Open spencer-lunarg opened this issue 2 years ago • 0 comments

Currently gen_profiles_tests.py is setting the format feature bits randomly

It would be nice to have a "max value" version where each format has all the feature bits possible set. There will need to be some exceptions, here is my break down I think should work

  • core (all formats could have)
    • VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT
    • VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT
    • VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT
    • VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT
    • VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT
    • VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
    • VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT
    • VK_FORMAT_FEATURE_2_BLIT_SRC_BIT
    • VK_FORMAT_FEATURE_2_BLIT_DST_BIT
    • VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    • VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT
    • VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT
    • VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT
    • VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT
    • VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
    • VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
    • VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR
    • VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT
    • VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
  • depth stencil (if XML <format> has <component name="D" or <component name="S")
    • VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT
    • VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
  • color (if not depth/stencil)
    • VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT
    • VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT
  • YCbCr (if XML <format> has a <plane>)
    • VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT
    • VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT
    • VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT
    • VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT
    • VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT
    • VK_FORMAT_FEATURE_2_DISJOINT_BIT
    • VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT
  • video (probably all formats can have too)
    • VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR
    • VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR
    • VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR
    • VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR

Any Vendor Format Features can just be ignored IMO

I would only generate the VkFormatProperties3 too as it will be the super set of VkFormatProperties

spencer-lunarg avatar Jan 24 '23 14:01 spencer-lunarg