xfree86: add (optional) ScreenRec padding for legacy Nvidia driver

Commit 3cb3024fea removed pScratchPixmap field
in ScreenRec, which broke legacy Nvidia (proprietary) drivers (470.x), thus
we should add an empty/dummy field here, to ensure correct padding. But this
would break ABI again - can't do that within minor release line.

As compromise, adding a *build time* option CONFIG_LEGACY_NVIDIA_PADDING for
this, so operators/packagers can opt-in to this change.

As it breaks ABI, the option is disabled by default until the next major release
and intended for EXPERTS ONLY who need nvidia390 or nvidia470 drivers.

Note that ALL DRIVERS should be rebuild if it is applied!

This compile-time option, along with the hacks needed to support it
in a non-abi-breaking way, should be droppen in the next major release.

Co-authored-by: Oleh Nykyforchyn <oleh.nyk@gmail.com>

Signed-off-by: Oleh Nykyforchyn <oleh.nyk@gmail.com>
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
stefan11111
2025-08-03 17:36:34 +03:00
committed by Enrico Weigelt
parent bbccfab253
commit 90846d49cc
6 changed files with 25 additions and 1 deletions

View File

@@ -87,6 +87,10 @@ PixmapScreenInit(ScreenPtr pScreen)
pScreen->totalPixmapSize =
BitmapBytePad(pixmap_size * 8);
#ifdef CONFIG_LEGACY_NVIDIA_PADDING
/* This field is used by the 470 and 390 proprietary nvidia DDX driver, and should always be NULL */
pScreen->reserved_for_nvidia_470_and_390 = NULL;
#endif
return TRUE;
}