xfree86: compat: add missing symbols needed by the proprietary nvidia drivers
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
This commit is contained in:
parent
a43c9d8719
commit
fa7cc111e7
|
@ -5,6 +5,7 @@
|
||||||
#include "include/os.h"
|
#include "include/os.h"
|
||||||
|
|
||||||
#undef xf86Msg
|
#undef xf86Msg
|
||||||
|
#undef xf86MsgVerb
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* this is specifically for NVidia proprietary driver: they're again lagging
|
* this is specifically for NVidia proprietary driver: they're again lagging
|
||||||
|
@ -26,3 +27,24 @@ void xf86Msg(MessageType type, const char *format, ...)
|
||||||
LogVMessageVerb(type, 1, format, ap);
|
LogVMessageVerb(type, 1, format, ap);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* this is only needed for the 570.x nvidia drivers
|
||||||
|
*/
|
||||||
|
|
||||||
|
_X_EXPORT void xf86MsgVerb(MessageType type, int verb, const char *format, ...)
|
||||||
|
_X_ATTRIBUTE_PRINTF(3, 4);
|
||||||
|
|
||||||
|
void
|
||||||
|
xf86MsgVerb(MessageType type, int verb, const char *format, ...)
|
||||||
|
{
|
||||||
|
LogMessageVerb(X_WARNING, 0, "Outdated driver still using xf86MsgVerb() !\n");
|
||||||
|
LogMessageVerb(X_WARNING, 0, "File a bug report to driver vendor or use a FOSS driver.\n");
|
||||||
|
LogMessageVerb(X_WARNING, 0, "Proprietary drivers are inherently unstable, they just can't be done right.\n");
|
||||||
|
|
||||||
|
va_list ap;
|
||||||
|
va_start(ap, format);
|
||||||
|
LogVMessageVerb(type, verb, format, ap);
|
||||||
|
va_end(ap);
|
||||||
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
srcs_xorg_compat = [
|
srcs_xorg_compat = [
|
||||||
'clientexception.c',
|
'clientexception.c',
|
||||||
'log.c',
|
'log.c',
|
||||||
|
'ones.c',
|
||||||
|
'xf86Helper.c',
|
||||||
]
|
]
|
||||||
|
|
||||||
xorg_compat = static_library('xorg_compat',
|
xorg_compat = static_library('xorg_compat',
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
#include <dix-config.h>
|
||||||
|
|
||||||
|
#include <X11/Xfuncproto.h>
|
||||||
|
|
||||||
|
#undef Ones
|
||||||
|
|
||||||
|
/*
|
||||||
|
* this is specifically for NVidia proprietary driver: they're again lagging
|
||||||
|
* behind a year, doing at least some minimal cleanup of their code base.
|
||||||
|
* All attempts to get in direct contact with them have failed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* this is only needed for the 570.x nvidia drivers
|
||||||
|
*/
|
||||||
|
|
||||||
|
_X_EXPORT int Ones(unsigned long /*mask */ );
|
||||||
|
|
||||||
|
int
|
||||||
|
Ones(unsigned long mask)
|
||||||
|
{ /* HACKMEM 169 */
|
||||||
|
/* can't add a message here because this should be fast */
|
||||||
|
#if __has_builtin(__builtin_popcountl)
|
||||||
|
return __builtin_popcountl (mask);
|
||||||
|
#else
|
||||||
|
unsigned long y;
|
||||||
|
|
||||||
|
y = (mask >> 1) & 033333333333;
|
||||||
|
y = mask - y - ((y >> 1) & 033333333333);
|
||||||
|
/* x & 077 == x % 077 */
|
||||||
|
return (((y + (y >> 3)) & 030707070707) & 077);
|
||||||
|
#endif
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
#include <dix-config.h>
|
||||||
|
|
||||||
|
#include <X11/Xfuncproto.h>
|
||||||
|
|
||||||
|
|
||||||
|
#include "xf86Priv.h"
|
||||||
|
#include "xf86Bus.h"
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* this is specifically for NVidia proprietary driver: they're again lagging
|
||||||
|
* behind a year, doing at least some minimal cleanup of their code base.
|
||||||
|
* All attempts to get in direct contact with them have failed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* this is only needed for the 570.x nvidia drivers
|
||||||
|
*/
|
||||||
|
|
||||||
|
_X_EXPORT Bool xf86IsScreenPrimary(ScrnInfoPtr pScrn);
|
||||||
|
|
||||||
|
Bool
|
||||||
|
xf86IsScreenPrimary(ScrnInfoPtr pScrn)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < pScrn->numEntities; i++) {
|
||||||
|
if (xf86IsEntityPrimary(i))
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
Loading…
Reference in New Issue