commit b1f7f190f9d4f2ab63d3e9ade3e7e04bb4b1f89f introduces a check for a kernel driver bound to the device. This means that vesa refuses to load whenever something kernel-related is loaded for the device.
In case of parallels desktop, there's a kernel driver (prl_tg) that processes size changes of the virtual machine window. This kernel driver is detected by the vesa driver, resulting in "No screens found".
Perhaps we need an update to that API in libpciaccess to return the name of the
driver to the caller:
int pci_device_get_kernel_driver( struct pci_device * dev, char **name );
Mass closure: This bug has been untouched for more than six years, and is not
obviously still valid. Please reopen this bug or file a new report if you continue to experience issues with current releases.