KhronosGroup / KhronosGroup/Vulkan-Profiles
Use XML Formats to generate test json files
Open
@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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.