Ув. пользователи Linux и владельцы видеоадаптеров NVIDIA GeForce 6-7 (возможно 8) серии, у кого из вас были проблемы с беспричинными зависаниями системы с включенным compiz или GL приложением? Раньше грешили на некорректную работу драйверов с SMP системами. Но иногда зависания происходят и на одном ядре. Есть мнение что виновником является offscreen rendering или/и GLXFB. Предлагаю простенький тест. Собрать и запустить следующую программу: //ofscreen-gl.c: #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <string.h> #include <errno.h> #include <GL/gl.h> #include <GL/glx.h> int main(void) { const char *display_name = ":0"; const int single_buffer_attribs[] = { GLX_DRAWABLE_TYPE, GLX_PBUFFER_BIT, None }; GLXFBConfig *fbconfigs; int fbconfigs_len; Display *display; GLXPbuffer pbuffer; GLXContext context; fprintf(stderr, "XOpenDisplay\n"); if (!(display = XOpenDisplay(display_name))) { fprintf(stderr, "Cannot open display %s\n", display_name); return 1; } fprintf(stderr, "glXChooseFBConfig\n"); if (!(fbconfigs = glXChooseFBConfig(display, DefaultScreen(display), single_buffer_attribs, &fbconfigs_len))) { fprintf(stderr, "Cannot choose GLX offscreen rendering " "configuration on display %s\n", display_name); return 1; } fprintf(stderr, "glXCreatePbuffer\n"); if (!(pbuffer = glXCreatePbuffer(display, fbconfigs[0], NULL))) { fprintf(stderr, "Cannot create PBuffer for offscreen rendering\n"); return 1; } fprintf(stderr, "glXCreateNewContext\n"); if (!(context = glXCreateNewContext(display, fbconfigs[0], GLX_RGBA_TYPE, NULL, True))) { fprintf(stderr, "Cannot create GL context for offscreen rendering\n"); return 1; } fprintf(stderr, "glXMakeContextCurrent\n"); if (!glXMakeContextCurrent(display, pbuffer, pbuffer, context)) { fprintf(stderr, "Cannot make GL context current\n"); return 1; } /* ... */ fprintf(stderr, "glXDestroyContext\n"); glXDestroyContext(display, context); fprintf(stderr, "glXDestroyPbuffer\n"); glXDestroyPbuffer(display, pbuffer); fprintf(stderr, "XCloseDisplay\n"); XCloseDisplay(display); return 0; } //------- Собирается так: gcc -W -Wall -o offscreen-gl offscreen-gl.c -lX11 -lGL Затем запускаем в цикле (run.sh): #!/bin/bash while true; do ./offscreen-gl done Если не зависли после минуты работы, жмем CTRL+C и смотрим dmesg | grep -i nvrm в поисках сообщений типа: NVRM: Xid (0006:00): 13, 0003 beef3097 00004497 0000021c 00000000 00000002 NVRM: Xid (0006:00): 30, L1 -> L0 Если нету, поздравляю!, ваша карта работает нормально. Всем же кто завис или/и нашел сообщение типа NVRM Xid , милости прошу http://www.nvnews.net/vbulletin/forumdisplay.php?f=14 . Тут можно оставить пару лесных сообщений для разработчиком NVIDIA и приложить свой nvidia-bug-report.log , который генерируется nvidia-bug-report.sh скриптом. Спасибо за внимание! PS: Есть подозрение что глюк может произрастать из bios видеокарты...
←
1
2
→
Ответ на:
комментарий
от lester_dev
Ответ на:
комментарий
от Gharik
Ответ на:
комментарий
от anonymous_incognito
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Узнать имя окна в фокусе (текущего окна) через X11lib (2018)
- Форум Программное управление мышью в x11 (2012)
- Форум Xlib и вывод текста на RootWindow (2005)
- Форум c и iconv - помогите разобраться (2008)
- Форум Лор тебе задание проверить работу XScreenSaverQueryInfo state (2012)
- Форум wayland server имплементация, создание глобальных объектов (2021)
- Форум Xlib. С ошибками не валится, но не работает. (2012)
- Форум X-Window (2009)
- Форум Xlib: memory leaks (2021)
- Форум YACC (2012)