вторник, 24 ноября 2015 г.

Windows XP: FireFox и аппаратное ускорение

Допустим, есть компьютер под управлением Windows XP с графической системой Intel Q45/Q43 Express на борту, и есть браузер Mozilla FireFox, в котором галочка "Use hardware acceleration when available" вроде как стоит. При этом информация "about:support" показывает "GPU Accelerated Windows: 0/1 Basic". А хочется 1/1.

Помогло следующее:

1) Обновил драйверы видео до последней версии

2) В настройках браузера (about:config) поставил две опции:
gfx.direct2d.force-enabled=true
layers.acceleration.force-enabled=true

3) Перезапустил FireFox.

Источники:
Force Enable Hardware Acceleration in Firefox
Blocklisting/Blocked Graphics Drivers

Slackware: dot и graphviz

Начитался тут баша и открыл для себя язык описания графов по имени dot. Соответственно, возникло непреодолимое желание этот самый dot пощупать. Решил взгромоздить на свой Slackware некий софт graphviz v2.38, собрав его из исходников. Дальше начались чудеса.

Во-первых, заглючила команда make, вывалившись с сообщением error: 'tsrm_ls' undeclared. Решение нашлось, но, по-моему, на китайском языке. К счастью, буквы, которые надо вводить в компьютер, остались английскими, так что сориентироваться можно. В общем, надо отредактировать файл tclpkg/gv/gv_php_init.c, добавив в пару функций по строчке:
static size_t gv_string_writer (GVJ_t *job, const char *s, size_t len)
{
    TSRMLS_FETCH(); // <- добавили
    return PHPWRITE(s, len);
}
 
static size_t gv_channel_writer (GVJ_t *job, const char *s, size_t len)
{
    TSRMLS_FETCH(); // <- добавили
    return PHPWRITE(s, len);
}


На этом приключение не закончилось. Впервые на моей памяти заглючила также команда make install. На этот раз ошибка выглядела примерно так: fatal error: QtGui/qwidget.h: No such file or directory. Оказывается, требуется поправить файл /cmd/gvedit/Makefile: найти там строку примерно такого вида:
INCPATH       = -I/usr/lib64/qt/mkspecs/linux-g++ -I. -I/usr/lib64/qt/include/QtCore -I/usr/lib64/qt/include/QtGui -I/usr/lib64/qt/include -I../../lib/gvc -I../../lib/common -I../../lib/pathplan -I../../lib/cgraph -I../../lib/cdt -I../.. -I.
и вымарать из неё пару опций:
INCPATH       = -I/usr/lib64/qt/mkspecs/linux-g++ -I. -I/usr/lib64/qt/include -I../../lib/gvc -I../../lib/common -I../../lib/pathplan -I../../lib/cgraph -I../../lib/cdt -I../.. -I.
После этого всё, наконец, установилось.

Штука оказалась довольно прикольной. Например, можно создать вот такой текстовый файл sample.gv:
digraph myFirstGraph {
    edge [color=blue]
    a;
    b [shape=box label="Ку-ку"];
    c;
    d;
    a -> b [label="некая связь"];
    subgraph g1 {
        edge [dir=none]
        b -> c;
        b -> d;
    }
}
натравить на него команду:
dot -Tpng -osample.png sample.gv
и получить симпатичную картинку:
Ну не чудо ли!

четверг, 19 ноября 2015 г.

Slackware: загадочный VirtualBox

Сегодня как-то нехорошо себя повёл VirtualBox. При попытке запустить виртуальную машину командой:
virtualbox --startvm WinXP
он тяжело и надолго задумался, а потом закрылся с сообщением:
ICE default IO error handler doing an exit(), pid = 12345, errno = 32
Проверка диска при помощи fsck ничего интересного не дала.
Почему-то помогла очистка папки ~/VirtualBox VMs/WinXP/Logs