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
23 stars 4 forks source link

Downloading Offline Copies of the GPU Info Database #13

Closed gravypod closed 2 years ago

gravypod commented 4 years ago

I was wondering if there was a way to obtain a copy of your device database for offline usage.

I'm attempting to build a utility for students of my college's game development course. Students have been signing up for our Vulkan development course and we've been finding that many students don't know how to check if their hardware supports Vulkan before signing up for the course. A limited subset of them even know what GPU is in their system or how to check that. We've attempted to get people to use vkcube as a test but as it turns out many of these students also either don't have drivers or have extremely out of date drivers.

I've been thinking about creating a static binary that can run on Windows and Linux that just polls the PCIe devices in your system to find their device and vendor IDs. My original plan was to essentially curl your API to find if the device shows up in your DB but I'd rather not have any active network access happening so that there's nearly 0 run-time requirements of this checking tool.

SaschaWillems commented 4 years ago

No offline download of the database planned. It wouldn't make much sense for most people without an in-depth explanation on how the database is structured, as it's not as straight-forward as the front-end might make it look like.

But I do offer different apis to IHVs and ISVs, so if it's about getting a list of devices supported that may be what you're looking for.

If you're interested in that path, feel free to contact me.

gravypod commented 4 years ago

@SaschaWillems would it be possible to make an API that allows this sort of filter:

GET /vulkan-drivers?equal[deviceId]=...&equal[vendorId]=...
[
    {
        deviceId: str, vendorId: str,
        name: str,
        vulkanDriverVersion: {
           .... metadata about version ...
           supportedFeatures: { ... supported feature sets ... }
       }
    }
]

or something similar. A header with some "api key" to support rate limiting might be a good idea as well.