ПРЕДУПРЕЖДЕНИЕ:
Я вижу, что появляются некоторые предложения по тому же вопросу, однако этот (похожий) пост был перенесен в SuperUsers и, похоже, был удален. Однако я все же хотел бы опубликовать свой вопрос здесь, потому что я считаю, что это связано с программным обеспечением / программированием достаточно, чтобы не публиковать его на SuperUsers (иногда между приложением и программным обеспечением существует неопределенная грань).
Я использую очень простую программу OpenGL в Code :: Blocks в VirtualBox с Ubuntu 11.10, установленной на SSD. Всякий раз, когда я собираю и запускаю программу, я получаю следующие ошибки:
- Предупреждение OpenGL: XGetVisualInfo вернул 0 визуальных элементов для 0x232dbe0
- Предупреждение OpenGL: повтор с 0x802 вернул 0 визуальных элементов
- Ошибка сегментации
Из того, что я до сих пор собирал, это связано с VirtualBox. Мне нужно установить
- LIBGL_ALWAYS_INDIRECT = 1
Другими словами, разрешить косвенный рендеринг через X.org, а не напрямую связываться с оборудованием. Эта проблема, вероятно, не связана с тем фактом, что у меня есть карта ATI, поскольку у меня есть ноутбук с картой ATI, которая безупречно выполняет ту же программу.
Тем не менее, я не смею сказать, что тот факт, что мой графический процессор является ATI, не играет никакой роли вообще. Также я не уверен, правильно ли установлены драйверы (в разделе Информация о системе -> Графика -> Драйвер графического адаптера: Chromium.)
Любая помощь по КАК установить LIBGL_ALWAYS_INDIRECT = 1 будет принята с благодарностью. Мне просто не хватает знания, где разместить эту команду или где / как выполнить ее в терминале.
Источники:
РЕДАКТИРОВАТЬ: в терминале типа:
export LIBGL_ALWAYS_INDIRECT = 1
Чтобы убедиться, что прямой рендеринг отключен:
glxinfo | grep direct
Однако проблема сохраняется. Я все еще получаю упомянутые предупреждения OpenGL и ошибку сегментации.