SaschaWillems / vulkan.gpuinfo.org

Front-End and Back-End for the Vulkan Hardware Database
https://vulkan.gpuinfo.org
GNU Affero General Public License v3.0
25 stars 5 forks source link

[Server data viz] Coverage misleading #71

Open darksylinc opened 1 year ago

darksylinc commented 1 year ago

Hi!

We were trying to find out how many Android devices support Bindless descriptors and were met with this:

image

This is technically correct.

The thing is, in reality most devices did not support Core 1.2 or VK_EXT_descriptor_indexing thus the real value is MUCH lower than 100% coverage; which is the real value we're after.

It would be cool if the data viz supported a checkbox where "unsupported because Vulkan driver did not expose it" becomes part of the "NOT supported".

Cheers

SaschaWillems commented 1 year ago

Can you elaborate? I simply display the data that the driver reports, so I have no other way of checking if stuff actually works.

darksylinc commented 1 year ago

Sure! I'll explain with one example.

Let's say the entire database is composed with the following Android data:

  1. 97 phones can do Vulkan 1.1 or earlier (and none of them can do VK_EXT_descriptor_indexing either)
  2. 3 phones can do Vulkan 1.2 or have VK_EXT_descriptor_indexing. 2 phones say "YES" to descriptorBindingPartiallyBound. 1 phone says "NO".
  3. In total there's 100 phones (97 + 3) in the database.

With the current website, gpuinfo will say that 66.67% of devices say "YES" to descriptorBindingPartiallyBound and 33.33% say "NO".

What I'm proposing is a checkbox that, when ticked, it assumes the other phones say NO. This means that it will report 2% of devices say "YES", and 98% of devices either said "NO" or is unknown.

Alternatively, when the checkbox is ticked, the data could be presented using 3 columns:

Feature Yes No Unknown or N/A
descriptorBindingPartiallyBound 2% 1% 97%
darksylinc commented 1 year ago

Note that I specifically mention Android because this is a very special case: On PC if NVIDIA GeForce 3080 would count as "N/A" in the past, and later through a driver update it now says "Yes" then what really matters is that it says "Yes".

The user should be pointed to do a driver upgrade by customer support if this is ever an issue.

However in Android the vast majority of phones will be stuck on the driver version they were shipped with, thus if Adreno 640 would count as "N/A" in the past, and now through a driver update it says "Yes", really the "N/A" is still relevant because it is very likely that "N/A" user will never get a driver update.