Reworked compare functionality for all GPU databases

Comparing devices - Current state

A core feature of all my GPU databases (Vulkan, OpenCL, OpenGL and OpenGL ES) is the possibility to compare reports. This lets you quickly see how the implementations differ, e.g. regarding extension support or api limits.

For this you check the reports (or devices) to compare from the currently visible list:

And after pressing “compare” you’ll get a side-by-side comparison of the selected reports:

But the current implementation has an annoying limitation that has been bothering users (and me) for years now: You can only ever select reports (to compare) from the currently visible list of reports. This is because the compare column is re-generated in the back-end every time you filter or switch operating systems. If you click “compare”, a form request is used to send this information to the compare script. This means that every time you filter the list or switch to a different operating system tab, your selection will be reset, making it nearly impossible to explicitly compare devices that you can’t get into the currently visible list by e.g. filtering.

Comparing devices - Reworked implementation

As the compare feature is a very important part of the databases and the current limitation heavily restricts it’s usefulness, I decided to completely overhaul this feature for all databases. It took me quite some time to figure out an implementation that both works as expected and is easy to use, but with the reworked implementation you can now freely add (and remove) reports by clicking “add” in the compare column:

Reports or devices selected for a comparison are now stored in a session on the server side and as such persist when the listing is changed e.g. when filtering or changing operating systems tab. So you can now filter for the exact report or devices you want to include in your compare.

The current selection is then displayed at the top of the listing:

Clicking “Compare” will then work the same as before.

Here is a video of the reworked functionality in action:

Roll-Out

Even though the popularity of the databases differs for the apis, with Vulkan getting by far the most hits, I decided to roll out this feature simultaneously for all four databases to ensure feature-parity in regards to the compare feature. So starting now you can use the reworked compare feature for all databases: