TL;DR
- Java и glxgears ожидают глубину цвета 24.
- Убедитесь, что X и VNC настроены на использование глубины 24, а не какую-либо другую глубину, например 16 или 32.
Подробности:
У меня тоже были пустые окна Java в VNC, но с Java 7 и Java 8, поэтому неудивительно, что отключение xrender
мне не помогло. Это, вероятно, делает грубым нарушением протокола StackOverflow размещение этого здесь, но я нашел свой путь здесь, так что, несомненно, другие тоже. -Dsun.java2d.opengl=true
сделал текст видимым, хотя сглаживание было похоже на что-то из 1980-х с испорченной палитрой, но потом я получил ложно прозрачные части окон, всегда одни и те же части, чисто скомпонованные, так что не похоже на ошибку драйвера. Заметив, что glxgears также отображается с аккуратным прозрачным фоном, тогда как в других системах он непрозрачно-черный, я нашел вдумчивый и информативный отчет об ошибке для комптона, Окна RGBA всегда прозрачны #179. Вдохновленный просмотром xdpyinfo
, я обнаружил, что мой сервер VNC предлагает изображения только глубины 32, то есть изображения с 8 битами красного, зеленого и синего цветов и восемью битами альфы. Кажется, Java и glxgears хотят непрозрачный визуальный элемент, поэтому он имеет глубину 24. Мой обычный сервер :0 X использует его по умолчанию. Для переключателя -depth man Xtigervnc
говорит, что значение по умолчанию равно 24, другие возможные значения: 8, 15 и 16 — все остальное может вызвать странное поведение приложений, но Предварительная упаковка Debian для TigerVNC, особенно в /etc/vnc.conf
и /usr/bin/tigervncserver
, устанавливает значение по умолчанию 32. -depth 24
и вдруг все снова стало прекрасно , с полупрозрачностью только там, где это было запрошено. xdpyinfo
показал множество предлагаемых визуальных эффектов, включая глубину 32.
person
Martin Dorey
schedule
25.05.2016