KhronosGroup / KhronosGroup/Vulkan-Profiles

Use XML Formats to generate test json files

Open
#351 0 comments 0 reactions 1 assignee View on GitHub

@christophe-lunarg is already working on this.

Since Aug 21, 2025.

Definition future OS - Platform Independent P2 test
Dominant language
Python
Stars
176
Forks
84
Avg merge
9h 34m
Merged PRs (30d)
37

Description

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

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.