diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c index 2fc2074eb..948fa649a 100644 --- a/hw/xfree86/drivers/modesetting/driver.c +++ b/hw/xfree86/drivers/modesetting/driver.c @@ -1934,18 +1934,30 @@ ScreenInit(ScreenPtr pScreen, int argc, char **argv) } /* enable reverse prime if we are a GPU screen, and accelerated, and not - * i915. i915 is happy scanning out from sysmem. */ + * i915, evdi or udl. i915 is happy scanning out from sysmem. + * evdi and udl are virtual drivers scanning out from sysmem + * backed dumb buffers. + */ if (pScreen->isGPU) { drmVersionPtr version; /* enable if we are an accelerated GPU screen */ ms->drmmode.reverse_prime_offload_mode = TRUE; - /* disable if we detect i915 */ if ((version = drmGetVersion(ms->drmmode.fd))) { if (!strncmp("i915", version->name, version->name_len)) { ms->drmmode.reverse_prime_offload_mode = FALSE; } + if (!strncmp("evdi", version->name, version->name_len)) { + ms->drmmode.reverse_prime_offload_mode = FALSE; + } + if (!strncmp("udl", version->name, version->name_len)) { + ms->drmmode.reverse_prime_offload_mode = FALSE; + } + if (!ms->drmmode.reverse_prime_offload_mode) { + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Disable reverse prime offload mode for %s.\n", version->name); + } drmFreeVersion(version); } }