Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Supported formats and features differ between web interface and application #174

Closed
Sonicadvance1 opened this issue Mar 28, 2023 · 1 comment

Comments

@Sonicadvance1
Copy link

Sonicadvance1 commented Mar 28, 2023

This seems like an issue on the application side where it is generating a report incorrectly, but I'm not overly familiar with the json format to validate this 100%.

This is showing up on an ARM64 Linux device, but has also been confirmed to be an issue on an Android device as well.

This json report was generated with VulkanCapsViewer git hash bf81c3d: https://gist.github.com/Sonicadvance1/7ef7a9eec77c4989644e7b398b918008 (Github is super cool and doesn't allow json file attachments on issues)
The web format report is here: https://vulkan.gpuinfo.org/displayreport.php?id=19938#formats_optimal

The application shows the supported formats with the expected tiling and buffer flags, where the website isn't showing this at all.

This can be seen by looking at the A1R5G5B5_UNORM_PACK16 format at the top of the list theoretically only supporting UNIFORM_TEXEL_BUFFER for buffer flags, but if we look at the screenshot from the application, it supports significantly more.
Screenshot 2023-03-28 15-35-12

This isn't just related to the top-most format of course, all uncompressed formats seem to be missing from the list when viewed on the website.

If you need any more information then let me know. This was very confusing when passing the report around and noticing a bunch of missing uncompressed formats.

SaschaWillems/vulkan.gpuinfo.org#50 Might be a related issue?

@Sonicadvance1
Copy link
Author

This is a mesa bug
https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/src/vulkan/runtime/vk_physical_device.c#L193 This fails to sanitize correctly from FORMAT_PROPERTIES_2 to original VkPhysicalDevice properties uint32_t typedef.
The Maximum VkPhysicalDevice value is 0x7FFF'FFFF, but VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT sets bit 31. So with it failing to sanitize that bit, it gets passed through, freaking vulkancapsviewer out since when exporting to json it uses an int type, which is fine for the original format expectations.

Alternatively VulkanCapsViewer could grow support for vkGetPhysicalDeviceProperties2 and consuming the bit flags as a 64-bit value.

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

No branches or pull requests

1 participant