Below are snippets from the rhi backends that log relevant information about the graphics API implementation during QRhi::create().
A subset of these could be placed into a simple struct queriable from the QRhi instance. This would then allow doing the traditional blacklisting or feature branching, when absolutely necessary, especially when it comes to less-than-stellar OpenGL implementations in the embedded/mobile space. (even though we should try staying away from such hacks as much as possible in Qt 6+, leaving it as a last resort solution for critical cases only)
Finding a common subset of information is not necessarily straightforward, given that the only common thing here is a single string, with some APIs providing additional strings, whereas others providing additional ID numbers for various things.
    qCDebug(QRHI_LOG_INFO, "Physical device %d: '%s' %d.%d.%d (api %d.%d.%d vendor 0x%X device 0x%X type %d)",
	    i,
	    physDevProperties.deviceName,
	    VK_VERSION_MAJOR(physDevProperties.driverVersion),
	    VK_VERSION_MINOR(physDevProperties.driverVersion),
	    VK_VERSION_PATCH(physDevProperties.driverVersion),
	    VK_VERSION_MAJOR(physDevProperties.apiVersion),
	    VK_VERSION_MINOR(physDevProperties.apiVersion),
	    VK_VERSION_PATCH(physDevProperties.apiVersion),
	    physDevProperties.vendorID,
	    physDevProperties.deviceID,
	    physDevProperties.deviceType);
const char *vendor = reinterpret_cast<const char *>(f->glGetString(GL_VENDOR)); const char *renderer = reinterpret_cast<const char *>(f->glGetString(GL_RENDERER)); const char *version = reinterpret_cast<const char *>(f->glGetString(GL_VERSION)); if (vendor && renderer && version) qCDebug(QRHI_LOG_INFO, "OpenGL VENDOR: %s RENDERER: %s VERSION: %s", vendor, renderer, version);
            qCDebug(QRHI_LOG_INFO, "Adapter %d: '%s' (vendor 0x%X device 0x%X flags 0x%X)",
                    adapterIndex,
                    qPrintable(name),
                    desc.VendorId,
                    desc.DeviceId,
                    desc.Flags);
    qCDebug(QRHI_LOG_INFO, "Metal device: %s", qPrintable(QString::fromNSString([d->dev name])));