Поддержка S3TC в Mesa DRI (Debian)

Впервые опубликовано 2007-12-26

В Mesa DRI имеется начальная поддержка S3TC. Однако, по-умолчанию она не активирована:

$ glxinfo | grep -i s3
$

Дело в том, что из-за патентов на алгоритмы S3TC, разработчики Mesa не могут включить полную поддержку этой технологии в свои драйвера, иначе как отдельной библиотекой, на далёком, оффшорном, экспериментальном сайте:

S3TC support has been partially implemented in Mesa. We cannot integrate and enable S3TC code by default due to the patents on the algorithm. Because of this, to be cautious, code was integrated to only attempt to open an external library, libtxc_dxtn.so, and use a small number of functions from that to implement S3TC if available. There is also an option in the S3TC-supporting DRI drivers called force_s3tc_enable. If the library is unavailable, setting this option to true will expose the extension even though it cannot be fully implemented. This may be of use for some games which require S3TC or don't use the ARB_texture_compression extension correctly.
The Mesa code is only enabled when USE_EXTERNAL_DXTN_LIB=1 is set in the build. This is currently only set in the linux-dri and linux-dri-x86 Mesa configurations. If you are having issues with S3TC, setting MESA_DEBUG=1 in the environment should print a warning from the S3TC code as to whether it succeeded in initializing or not, if it was built.
Source for the libtxc_dxtn.so is at http://homepage.hispeed.ch/rscheidegger/dri_experimental/s3tc_index.html Please be aware of the patent law in your own country with respect to using this code, as it is illegal in many places without a proper license from the patent holder.

В результате, для включения S3TC в драйверах Mesa DRI, в систему нужно установить библиотеку libtxc_dxtn, отсюда.

Устанавливаем зависимости, необходимые для компиляции библиотеки из исходников:

apt-get install gcc libgl1-mesa-dev

Скачиваем последнюю версию (я использовал эту). Распаковываем, компилируем и устанавливаем:

tar -xzvf libtxc_dxtn*.tar.gz
cd libtxc_dxtn
make
sudo checkinstall -D

Если не боитесь засорять систему разным мусором, можно вместо последнего шага сделать make install.

Проверяем результат

$ glxinfo | grep -i s3
    GL_EXT_texture_compression_s3tc, GL_EXT_texture_edge_clamp, 
    GL_S3_s3tc
$

Включаем в играх

Для того, чтобы появившаяся поддержка S3TC начала использоваться играми, в некоторых из них нужно её специально включить. К примеру, в OpenArena (и других, основанных на движке Quake 3) для этого нужно ввести команду \r_ext_comressed_textures 1 и перезапустить игру.

Ссылки


dri-s3tc.txt · Последние изменения: 2013-08-19 11:07 UTC От rm
Навигация