diff options
author | Łukasz Spintzyk <lukasz.spintzyk@synaptics.com> | 2021-06-08 18:53:07 +0200 |
---|---|---|
committer | Matt Turner <mattst88@gmail.com> | 2021-06-09 19:25:30 +0000 |
commit | 4e11bd390a28144fac03dc21a6caf0800596e2fa (patch) | |
tree | d31c7e56b37f5bef0f4755cdd83bda43ca0d9076 | |
parent | 6272529339f975777f22bb0e6162ac43480ae257 (diff) |
modesetting: Disable reverse prime offload mode for displays running on evdi,udl
This mode for displays running on evdi/udl as side effect of failed glamor_egl_init
reverse_prime_offload_mode was initialized to FALSE
After Mesa upgrade to 21.0.0 GL_RENDERER is not llvmpipe that results in successful glamor_egl_init
and reverse_prime_offload_mode enabled.
This commit is explicitly disabling reverse_prime_offload_mode for evdi and udl drivers
Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
(cherry picked from commit 7e7c147105ac704a7b33bdee0f85dc9ccdd8f747)
-rw-r--r-- | hw/xfree86/drivers/modesetting/driver.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c index ef4a3147d..8ca3e897a 100644 --- a/hw/xfree86/drivers/modesetting/driver.c +++ b/hw/xfree86/drivers/modesetting/driver.c @@ -1752,18 +1752,30 @@ ScreenInit(ScreenPtr pScreen, int argc, char **argv) "Failed to initialize the Present extension.\n"); } /* 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); } } |