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>
This commit is contained in:
Lukasz Spintzyk 2021-06-07 09:30:46 +02:00 committed by Povilas Kanapickas
parent c468d34c72
commit 7e7c147105
1 changed files with 14 additions and 2 deletions

View File

@ -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);
}
}