コンテンツにスキップ

「Mach64」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
英語版に追従
アーカイブ
タグ: 新規リダイレクト
 
1行目: 1行目:
[[Category:グラフィック]]
[[Category:X サーバー]]
[[en:Mach64]]
[[wikipedia:ATI_Mach#Mach_64|Mach 64 チップ]]は ATI により開発されていた旧式のグラフィックアクセラレータです。基本的な 3D 機能も備えています。Linux におけるサポートは貧弱ですが全くないわけではありません。このページでは Mach 64 グラフィックチップセット (ATI Rage Pro を含む) を設定してダイレクトレンダリングを使う方法を説明します。


#redirect [[ArchWiki:アーカイブ]]
== インストール ==
[[Category:アーカイブ]]

X の 2D や Xv アクセラレーションは {{AUR|xf86-video-mach64}} パッケージを[[インストール]]することで得られます。

== 3D アクセラレーションとダイレクトレンダリング ==

{{Warning|Mach 64 の DRM モジュールを使用するとクラッシュすることがあります。Mach 64 のダイレクトレンダリングは信頼性が低くサポートが十分行き届いていません。}}
Linux では、Mach 64 チップは DRI/DRM システムを使ってダイレクトレンダリングを行います。DRM モジュールはメインラインカーネルに含まれていません。別々にビルドする必要があります。{{AUR|mach64drm}} パッケージをインストールしてください。

DRM モジュールをビルド・インストールしたら、DRI の {{Pkg|mach64-dri}} パッケージをインストールしてください。

== 設定 ==

以下は Mach 64 チップの X の設定例です:

Section "Device"
Identifier "Card0"
Driver "mach64"
Card "ATI Rage Pro - Mach64"
Option "DMAMode" "async"
Option "ForcePCIMode" "false"
Option "AgpMode" "2"
Option "AgpSize" "32"
Option "BufferSize" "2"
Option "LocalTextures" "true"
# Uncomment the following option if X segfaults as soon as anything using acceleration is called.
# Option "ExaNoComposite" "true"
# The following line will also prevent segmentation faults, but is not recommended since
# it will disable all acceleration.
# Option "NoAccel" "true"
# The following enables the shadow framebuffer, which improves non-accelerated performance.
# Use only with the "NoAccel" option.
# Option "ShadowFB" "true"
EndSection

オプションの説明:
* Driver: mach64 ドライバーを使用します。
* DMAMode: async - デフォルト, sync (同期 DMA), mmio (PIO/MMIO) - バッファをディスパッチ。
* ForcePCIMode: AGP アパーチャを無効化。PCI カードを使用する場合は true にしてください。
* AgpMode (AGP 1x または 2x): 1 または 2。設定しなかった場合、デフォルトでは agpgart のモードが使われます。
* AgpSize: AGP アパーチャを MB 単位で設定。AGP を使って設定した容量分のシステムメモリにビデオカードからアクセスできるようになり、テクスチャを多く保存できるようになります。
* BufferSize: DMA バッファメモリサイズを MB 単位で設定。デフォルトは 2 MB です。1 あるいは 2 に設定してください。
* LocalTextures: デフォルトでは AGP カードはテクスチャを格納するのに AGP メモリしか使いません。AGP に加えてローカルカードメモリも使用したい場合、true に設定してください。
AgpSize オプションは AGP アパーチャ用に使用するシステムメモリのサイズを変更するため、カードに載っているビデオメモリのサイズに縛られません。AGP カードで ForcePCIMode が有効になっている場合、あるいは PCI カードでは AgpMode/AgpSize オプションは無視されます。ただし、PCI あるいは AGP カードどちらでも BufferSize オプションを使ってシステムメモリの DMA バッファのサイズを変更することは可能です (システムメモリが不足しているわけではないのであればバッファサイズを減らすことは推奨されません)。
* ExaNoComposite - EXA ハンドラのセグメンテーション違反を防ぐのに必須。

Module セクション:
Section "Module"
<Your modules>
Load "glx"
Load "dri"
Load "vgahw"
Load "fb"
Load "int10"
Load "vbe"
Load "shadowfb"
Load "fbdevhw"
Load "exa"
Load "glamoregl"
EndSection

DRI セクション:

Section "DRI"
Mode 0666 #allows anybody to use DRI
EndSection

DRI セクション (セキュリティが重要なマシンの場合):

Section "DRI"
Group "video" #change to any desired group to restrict access
Mode 0660
EndSection

== ダイレクトレンダリングのテスト ==

X を再起動して、以下のコマンドを実行:
$ glxinfo | egrep "direct rendering|OpenGL renderer"
以下のように出力されます:
Direct rendering: Yes
OpenGL renderer string: Mesa DRI Mach64 [Rage Pro] 20051019 AGP 2x x86/MMX/SSE

OpenGL レンダラの文字列が "Software Rasterizer" の場合、例えばダイレクトレンダリングが "yes" でも DRI が機能していません。

== カーネルの設定 ==

2019年6月時点では、デフォルトのカーネルでは Mach64 ドライバーが正常に読み込まれず Xorg でエラーが発生します:
$ MACH64(0): Unable to map linear aperture. Invalid argument

Mach64 ドライバーは {{ic|CONFIG_IO_STRICT_DEVMEM}} オプション [https://cateee.net/lkddb/web-lkddb/IO_STRICT_DEVMEM.html] を無効にして[[カーネル/コンパイル/Arch Build System|カーネルをコンパイル]]すると動作するものの、ドライバーの使用中のメモリにユーザースペースからアクセスできるようになるため [https://capsule8.com/blog/kernel-configuration-glossary/]、システムが脆弱になります。

詳しくは [https://bbs.archlinux32.org/viewtopic.php?id=276 Archlinux32 forum] および [https://groups.google.com/d/topic/linux.debian.ports.powerpc/7nrP9NpkDVE/discussion linux.debian.ports.powerpc での議論]を参照してください。

2022年11月8日 (火) 16:51時点における最新版