ジャンル不定の日記です。

UMA Frame Buffer Size 変えてみた

先日USBメモリをストレージとしてサブPC用意したが、
以前はAMD 790GXのマザー使ってたけど画面出力できなかったのでAMD 780Gのマザーに格下げしてる。
790GXはDDR3で780GはDDR2のマザーなんで不要メモリ使えていい気もするが、DDR2は2GBが4枚手持ちあったが、うち2枚は装着すると780Gの方でも画面出力できなかった。
BEEP用スピーカーつけてないので確認できないが、メモリエラーで起動自体してないのかも。

というわけでメモリは2GB2枚の4GB搭載だったのだが、かんぱに☆ガールズ起動しててメモリ不足でシステム全体フリーズした。
画面サイズも900x590とか大きくないブラウザゲームなのにメモリ無駄遣いしすぎ・・・

そんなわけで、落ちないように設定いじってみた。

まず、標準で /dev/shm /sys/fs/cgroup /tmp の3箇所がtmpfsになってて、
USBメモリがメインストレージだから他の箇所も書き込み減らしたいので /var/log もtmpfsにしてた。
落ちる直前の数値確認してないが、指定しない場合の最大サイズは実メモリの半分になるので1.4G強だった。
tmpfsが大きくなっちゃうとやばそうだからtmpfsがメモリ食ってるのか?
と思ってfstabにsize指定して制限しようかと思ったのだが、
/tmpが不足したりすると結局不具合生じるよね・・・

そもそも4GBメモリ装着してるのにfree -mで2.7GBしか認識してない。
グラフィックメモリ多すぎ?
というわけで、BIOS設定見直してみた。
Internal Graphics mode が UMA+SidePort になってて、
UMA Frame Buffer Size が Auto になってた。
780G等のAMDのオンボードグラフィックの用語だが、
UMAはメインメモリの一部をグラフィック用に使用する分で、SidePortはグラフィック専用メモリ。(マザーによってはSidePort非搭載とかあったはず。)
SidePortはグラフィック専用メモリで速そうだが、UMA+SidePortにすると両方の帯域を使えるので速くなりAutoだと帯域が最大になる配分でUMAが確保される仕組みだったはず。
というわけなのだが、メモリ不足でシステムが落ちちゃうんじゃ困るんで、
UMA Frame Buffer Size を Auto から 128MB に変更してみた。
free -m でtotal 3157 になったんで、Autoだと512MB確保されてたぽい?

メインPC上のVirtualboxでやってた時は3GB割当で平気だったんで、微妙に足りない程度だと思うんで400MB増量できれば落ちないような気がする。
しかし、派手なアクションとかあるわけでもないゲームなのになんでこんなにメモリ食うんだか・・・