Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

0001-Add-dridir-param.patch 2.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. *** a/glx/glxdri.c 2011-02-16 14:00:53.000000000 -0600
  2. --- b/glx/glxdri.c 2011-02-16 13:56:09.000000000 -0600
  3. ***************
  4. *** 838,843 ****
  5. - static const char dri_driver_path[] = DRI_DRIVER_PATH;
  6. -
  7. static Bool
  8. glxDRIEnterVT (int index, int flags)
  9. --- 838,841 ----
  10. diff -r -C2 a/glx/glxdriswrast.c b/glx/glxdriswrast.c
  11. *** a/glx/glxdriswrast.c 2011-02-16 14:00:53.000000000 -0600
  12. --- b/glx/glxdriswrast.c 2011-02-16 13:56:29.000000000 -0600
  13. ***************
  14. *** 448,453 ****
  15. }
  16. - static const char dri_driver_path[] = DRI_DRIVER_PATH;
  17. -
  18. static __GLXscreen *
  19. __glXDRIscreenProbe(ScreenPtr pScreen)
  20. --- 448,451 ----
  21. diff -r -C2 a/glx/glxext.c b/glx/glxext.c
  22. *** a/glx/glxext.c 2011-02-16 14:00:54.000000000 -0600
  23. --- b/glx/glxext.c 2011-02-16 13:58:39.000000000 -0600
  24. ***************
  25. *** 520,521 ****
  26. --- 520,548 ----
  27. return retval;
  28. }
  29. +
  30. + char *dri_driver_path = DRI_DRIVER_PATH;
  31. +
  32. + int GlxProcessArguments(int argc, char *argv[], int i)
  33. + {
  34. + if (strncmp(argv[i], "-dridir", 7) == 0) {
  35. + if (++i < argc) {
  36. + #if !defined(WIN32) && !defined(__CYGWIN__)
  37. + if (getuid() != geteuid()) {
  38. + LogMessage(X_WARNING, "-dridir is not available for setuid X servers\n");
  39. + return -1;
  40. + } else
  41. + #endif
  42. + {
  43. + if (strlen(argv[i]) < PATH_MAX) {
  44. + dri_driver_path = argv[i];
  45. + return 2;
  46. + } else {
  47. + LogMessage(X_ERROR, "-dridir pathname too long\n");
  48. + return -1;
  49. + }
  50. + }
  51. + }
  52. + }
  53. +
  54. + return 0;
  55. + }
  56. diff -r -C2 a/glx/glxserver.h b/glx/glxserver.h
  57. *** a/glx/glxserver.h 2011-02-16 14:00:54.000000000 -0600
  58. --- b/glx/glxserver.h 2011-02-16 14:01:44.000000000 -0600
  59. ***************
  60. *** 264,266 ****
  61. --- 264,269 ----
  62. GLint alignment);
  63. + extern char *dri_driver_path;
  64. + extern int GlxProcessArguments(int argc, char *argv[], int i);
  65. +
  66. #endif /* !__GLX_server_h__ */
  67. Only in b/os: ._utils.c
  68. diff -r -C2 a/os/utils.c b/os/utils.c
  69. *** a/os/utils.c 2011-02-16 14:01:18.000000000 -0600
  70. --- b/os/utils.c 2011-02-16 14:04:11.000000000 -0600
  71. ***************
  72. *** 159,162 ****
  73. --- 159,163 ----
  74. _X_EXPORT Bool noGlxExtension = FALSE;
  75. _X_EXPORT Bool noGlxVisualInit = FALSE;
  76. + extern int GlxProcessArguments(int argc, char *argv[], int i);
  77. #endif
  78. #ifdef SCREENSAVER
  79. ***************
  80. *** 854,857 ****
  81. --- 855,866 ----
  82. }
  83. #endif
  84. + #ifdef GLXEXT
  85. + else if ((skip = GlxProcessArguments(argc,argv,i)) != 0) {
  86. + if (skip > 0)
  87. + i += skip - 1;
  88. + else
  89. + UseMsg();
  90. + }
  91. + #endif
  92. #ifdef RLIMIT_DATA
  93. else if ( strcmp( argv[i], "-ld") == 0)