Skip to content

Profile checker Android app - #1036

Merged
christophe-lunarg merged 1 commit into
KhronosGroup:mainfrom
cgopinathc:android_app
Oct 19, 2026
Merged

christophe-lunarg merged 1 commit into
KhronosGroup:mainfrom
cgopinathc:android_app

Conversation

@cgopinathc

Copy link
Copy Markdown
Contributor

No description provided.

@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

User cgopinathc not on autobuild list. Waiting for curator authorization before starting CI build.

1 similar comment
@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

User cgopinathc not on autobuild list. Waiting for curator authorization before starting CI build.

@CLAassistant

CLAassistant commented Oct 14, 2026 •

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@cgopinathc

cgopinathc commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor Author
  1. android/profiles-checker
    • Pure C++ NativeActivity (no Java/Kotlin), builds with Gradle/CMake
      from inside the repo checkout.
    • CMake fetches Vulkan-Headers, creates a private Python venv and runs
      scripts/vkprofiles.py to generate a debug header-only profiles
      library for the selected profiles (default: VP_ANDROID_15/16/17,
      VP_ANDROID_vulkan_profile_2021/2022/2025, VP_KHR_roadmap_2022/2024/
      2026; overridable via -DVP_CHECKER_PROFILES).
    • Captures VP_DEBUG_MESSAGE_CALLBACK output and groups unmet
      conditions per profile into API version / extensions / features /
      properties & limits / formats. Tap-to-expand software-rendered UI;
      same report written to logcat and files/report.txt.
    • Also reports GPU, vendor/device ID, API version, decoded driver
      version, VkPhysicalDeviceDriverProperties and Android SoC/driver
      package properties. Vulkan is dlopen'ed so 1.0-only devices still
      produce a report.
    • README with build/usage instructions; linked from the top-level
      README.

@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

User cgopinathc not on autobuild list. Waiting for curator authorization before starting CI build.

1 similar comment
@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

User cgopinathc not on autobuild list. Waiting for curator authorization before starting CI build.

@cgopinathc

Copy link
Copy Markdown
Contributor Author
image

@christophe-lunarg christophe-lunarg left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I created this PR: #1037

to capture the data changes, the limitype tweaks and doubled checked what was submitted.

Still work in progress...

I'll continue on this tomorrow.

Comment thread scripts/source/vulkan_object_data.py Outdated

# Unsupported
PropertyRequirement('VkPhysicalDeviceMaintenance7PropertiesKHR', 'robustFragmentShadingRateAttachmentAccess', 'false', 'VkPhysicalDeviceMaintenance7FeaturesKHR::maintenance7'),
PropertyRequirement('VkPhysicalDeviceMaintenance7PropertiesKHR', 'robustFragmentShadingRateAttachmentAccess', None, 'VkPhysicalDeviceMaintenance7FeaturesKHR::maintenance7'),

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe the value was reverted here. The limitype is "max".

Comment thread scripts/source/vulkan_object_data.py Outdated
PropertyRequirement('VkPhysicalDeviceRayTracingPipelinePropertiesKHR', 'maxShaderGroupStride', '4096', None),
PropertyRequirement('VkPhysicalDeviceRayTracingPipelinePropertiesKHR', 'shaderGroupBaseAlignment', '64', None),
PropertyRequirement('VkPhysicalDeviceRayTracingPipelinePropertiesKHR', 'shaderGroupHandleCaptureReplaySize', '64', None),
PropertyRequirement('VkPhysicalDeviceRayTracingPipelinePropertiesKHR', 'shaderGroupBaseAlignment', None, None),

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here it's a limitype problem in vk.xml. The spec says 'max' and provide the value 64.

Comment thread scripts/source/vulkan_object_data.py Outdated
PropertyRequirement('VkPhysicalDeviceRayTracingPipelinePropertiesKHR', 'shaderGroupBaseAlignment', '64', None),
PropertyRequirement('VkPhysicalDeviceRayTracingPipelinePropertiesKHR', 'shaderGroupHandleCaptureReplaySize', '64', None),
PropertyRequirement('VkPhysicalDeviceRayTracingPipelinePropertiesKHR', 'shaderGroupBaseAlignment', None, None),
PropertyRequirement('VkPhysicalDeviceRayTracingPipelinePropertiesKHR', 'shaderGroupHandleCaptureReplaySize', None, None),

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as: shaderGroupBaseAlignment

Comment thread scripts/source/vulkan_object_data.py Outdated
PropertyRequirement('VkPhysicalDeviceFragmentShadingRatePropertiesKHR', 'maxFragmentSize', '2, 2', None),
PropertyRequirement('VkPhysicalDeviceFragmentShadingRatePropertiesKHR', 'maxFragmentSizeAspectRatio', '2', None),
PropertyRequirement('VkPhysicalDeviceFragmentShadingRatePropertiesKHR', 'maxFragmentShadingRateCoverageSamples', '16', None),
PropertyRequirement('VkPhysicalDeviceFragmentShadingRatePropertiesKHR', 'maxFragmentShadingRateRasterizationSamples', 'VK_SAMPLE_COUNT_1_BIT', None),

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maxFragmentShadingRateRasterizationSamples is VK_SAMPLE_COUNT_4_BIT in the spec

Comment thread scripts/source/vulkan_object_data.py Outdated
PropertyRequirement('VkPhysicalDeviceDescriptorBufferPropertiesEXT', 'imageViewCaptureReplayDescriptorDataSize', '64', 'VkPhysicalDeviceDescriptorBufferFeaturesEXT::descriptorBuffer'),
PropertyRequirement('VkPhysicalDeviceDescriptorBufferPropertiesEXT', 'samplerCaptureReplayDescriptorDataSize', '64', 'VkPhysicalDeviceDescriptorBufferFeaturesEXT::descriptorBuffer'),
PropertyRequirement('VkPhysicalDeviceDescriptorBufferPropertiesEXT', 'accelerationStructureCaptureReplayDescriptorDataSize', '64', 'VkPhysicalDeviceDescriptorBufferFeaturesEXT::descriptorBuffer'),
PropertyRequirement('VkPhysicalDeviceDescriptorBufferPropertiesEXT', 'descriptorBufferOffsetAlignment', None, 'VkPhysicalDeviceDescriptorBufferFeaturesEXT::descriptorBuffer'),

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in the spec descriptorBufferOffsetAlignment is set to "max" but I believe it translates into 'min,pot' in vk.xml

Comment thread scripts/source/vulkan_object_data.py Outdated
PropertyRequirement('VkPhysicalDeviceDescriptorBufferPropertiesEXT', 'samplerCaptureReplayDescriptorDataSize', '64', 'VkPhysicalDeviceDescriptorBufferFeaturesEXT::descriptorBuffer'),
PropertyRequirement('VkPhysicalDeviceDescriptorBufferPropertiesEXT', 'accelerationStructureCaptureReplayDescriptorDataSize', '64', 'VkPhysicalDeviceDescriptorBufferFeaturesEXT::descriptorBuffer'),
PropertyRequirement('VkPhysicalDeviceDescriptorBufferPropertiesEXT', 'descriptorBufferOffsetAlignment', None, 'VkPhysicalDeviceDescriptorBufferFeaturesEXT::descriptorBuffer'),
PropertyRequirement('VkPhysicalDeviceDescriptorBufferPropertiesEXT', 'bufferCaptureReplayDescriptorDataSize', None, 'VkPhysicalDeviceDescriptorBufferFeaturesEXT::descriptorBuffer'),

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The spec set it to max 64 and I believe the issue is that vk.xml set is to noauto but in vk.xml is should be "min".

Same for all the "DataSize" member os this structure.

Comment thread scripts/source/vulkan_object_data.py Outdated
PropertyRequirement('VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT', 'advancedBlendNonPremultipliedDstColor', 'true', None),
PropertyRequirement('VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT', 'advancedBlendCorrelatedOverlap', 'true', None),
PropertyRequirement('VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT', 'advancedBlendAllOperations', 'true', None),
PropertyRequirement('VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT', 'advancedBlendIndependentBlend', None, None),

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The issue here is that the default properties for VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT should be false.

The spec says "platform-dependent" but vk.xml says "max" which I believe is correct, it's capabilities that are supported or not.

"lineSubPixelPrecisionBits": 4,
"maxVertexAttribDivisor": 2147483647,
"maxVertexAttribDivisor": 65535,
"supportsNonZeroFirstInstance": true,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

supportsNonZeroFirstInstance should be false.

@christophe-lunarg

Copy link
Copy Markdown
Collaborator

I would encourage you to rebase with main branch to grab the changes from #1037.

Feel free to comment about values that you think are incorrect.

I believe there are still some work to do on the data but this is a great step up. I'll continue working on this.

@christophe-lunarg christophe-lunarg linked an issue Oct 15, 2026 that may be closed by this pull request
@cgopinathc

Copy link
Copy Markdown
Contributor Author

Sure, I will rebase and try to check if the app works well without any of my changes to scripts.
Thanks Christophe

@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

User cgopinathc not on autobuild list. Waiting for curator authorization before starting CI build.

1 similar comment
@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

User cgopinathc not on autobuild list. Waiting for curator authorization before starting CI build.

@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

User cgopinathc not on autobuild list. Waiting for curator authorization before starting CI build.

1 similar comment
@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

User cgopinathc not on autobuild list. Waiting for curator authorization before starting CI build.

@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

User cgopinathc not on autobuild list. Waiting for curator authorization before starting CI build.

1 similar comment
@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

User cgopinathc not on autobuild list. Waiting for curator authorization before starting CI build.

@cgopinathc
cgopinathc marked this pull request as ready for review October 17, 2026 05:41
@christophe-lunarg

Copy link
Copy Markdown
Collaborator

I ran the internal C.I. test just to be sure I am not missing something, it passes so merging.

@christophe-lunarg
christophe-lunarg merged commit 82a5c1b into KhronosGroup:main Oct 19, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Profile-checker Android app

4 participants