clyde-ne45’s blog

clyde-ne45’s blog

PCゲームに関して

【Radeon】ゲーム後のアイドル消費電力増加を改善

しばらくは根本的な解決方法を探しつつ、ゲームのあとは動画再生を心がけることになりそう…。

RX6800を買いました。RX6600XTからの換装で性能には満足です。消費電力面でも、負荷時の低燃費ぶりには文句ないのですが…。

ゲームなどで負荷をかけたあとのアイドル消費電力が若干増えてしまうことに少し悩みました。RX6600XTより多いのは仕方ないですが、RX6800単体で「良いとき・悪いとき」が存在してます。

ある程度試したところ、以下の画像の通り、メモリクロックが下がりきらなくなってるのが原因と見ました。

両方アイドル時のAfterburnerスクショ
画像右が負荷をかけたあとのアイドル。約8W増

改善方法はあくまで応急処置ですが、いくつかありそうです。無難に再起動やログアウトでもOK。今見つけているなかで最も楽なのは「ローカルの動画ファイルを数秒再生する」方法です。動画再生の負荷でメモリクロックが張り付くのが確認できますが、これがいい刺激になるんでしょうか。

完全解決が理想ではありますが、一旦この方法で落ち着きました。数秒で直りますので。そして、直接関係あるのか不明ですが、過去にドライバでアイドル消費電力が改善されたのがRX6800・RX6800XT・RX6900XTだったことを知りました。このあたりを使っている方に同じ現象が起きているのか気になります。

What AMD Didn't Tell Us: 21.4.1 Drivers Improve Non-Gaming Power Consumption By Up To 72% | TechPowerUp

自分が使用しているドライバは23.4.2でした。

2024.01.22追記: あれからAFMF用preview driverなど色々使いました。この消費電力増加はどのドライバでも起きてる気がします。

もちかたマッピング

あるとき「手形の画像」がもたらされ、人々はこれに色を塗って自分のもちかたを伝え合おうとしました。

ほかにもあるかもしれないけど、自分のアンテナで当時拾えたツイートを貼っておきます。鍵垢の方のツイートは含みません。

あまり新鮮なネタではありません。ツイート日時にはご注意ください。

最後に。

 

【CRU】Custom Resolution Utility 1.5での変更

さいきん、Custom Resolution Utility (CRU) に大きなアップデートがあり、バージョン1.5が登場しました (執筆時点で最新バージョンは1.5.1) 。今回の変更内容によって自分の中で混乱が起きているので、その部分を整理しておきたいと思います。自分用ですね。

タイミングプリセットの変更

変更の1つですが、独自表記を減らし、オフィシャルな表記を採用したことが挙げられます。これ自体は良い変更だと思いますが、バージョン1.4.x以前の記事をそのまま参考にすることが難しくなりました。

新しい表記と古い表記、どれがどれに対応するのか書いてみます。

旧バージョンの表記との対応付け

英語での解説は以下のページの「Changes in 1.5:」にまとめられています。おそらくCRU作者本人が執筆されています。

Custom Resolution Utility (CRU)

ざっくり訳すと以下のように対応するようです。

  • Automatic - LCD standardは「Automatic (PC) とAutomatic (HDTV)」 に分けた
  • Automatic - LCD nativeは「Native (PC) とNative (HDTV)」に分けた
  • Automatic - LCD reducedは「Exact reduced」が似た役割
  • Automatic - CRT standardは「Automatic (CRT)」に表記変更
  • ExactとExact reducedを新規追加
  • CVT standard、CVT-RB standard、CVT-RB2 standard、GTF standardを新規追加

これらの変更箇所は、次の画像の黄色枠で囲った「Edit...」の先にあります。

f:id:clyde-ne45:20210428185254j:plain

CRU 1.4.1と1.5.1のホーム画面。ここは同じです

「Edit...」の先は次の画像のような画面です。

f:id:clyde-ne45:20210428185242p:plain

Detailed resolutions -> Edit...の先の画面。1.4.1と1.5.1で違いがある

ここは本来、ディスプレイの非表示領域というものを調整するのによく使われます。手打ちで数値を調整できるほかに、プルダウンメニュー内には手軽な「プリセット」のようなものが用意されています。この「プリセット」に関する変更について解説しました。

旧バージョンを使うのもオススメ

分けたり新規追加したり、それぞれ理由があるようですが、少し技術的な内容だったので省略しました。CRUを使うだけなら知らなくても問題ないと思います。「少し技術的な内容」については、自分が書いたなかでは以下の記事で多少触れていますが、素人なので間違っているかも。

ところで、CRUは旧バージョンもダウンロード可能です。古い有益な記事を参考にするなら、同じバージョンを使えばこういった読み替えの手間はありません。

clyde-ne45.hatenablog.com

 

【RADEON】RX550をRX560化する

「RX550のRX560化」とは何か?これはRX550の性能を向上させる1つの方法である。ツイートは以前に行ったものの、日本語の記事としてまとまったものにしておこうと思う。
「640SP版のRX550」を対象にしていることは初めに強調しておきたい。ふつうのRX550との主な違いは後述。

f:id:clyde-ne45:20201209191622p:plain
f:id:clyde-ne45:20201209201337p:plain
上のツイートは削除してしまったので当時ツイートした画像を再度貼っておきます

RX550のVBIOS書き換え

書き換えそのものが目的ではなく、ソフトウェア的に封印されたSPをアンロックして性能向上を図るという目的のためにRX560化という手法をとる。さっそく取り掛かっていく。

ビデオメモリのメーカーを確認する

次の作業に備えてGPU-Zを使うのがよい。

f:id:clyde-ne45:20201209191622p:plain

Memory Type欄からElpida製と判明。Shaders欄も確認しておく

VBIOS書き換えの際、GPUコアはもちろん、ビデオメモリのメーカー (Samsung, Hynix, Micron, Elpidaなど) まで適合するものを使うので、先に確認する。その他の情報もなるべく一致するものを使うのが無難だが、メーカー (ASUSやSAPPHIREなど) が異なるVBIOSを使用することはあまり問題ない。

VBIOSをバックアップする (任意)

書き換えトラブルにより画面出力が不可能になってしまうリスクなどがあり、バックアップと代えのグラフィックボードや内蔵グラフィックスの用意を推奨したい。書き換え後の不具合はバックアップに書き戻せば直る。

f:id:clyde-ne45:20201209192612p:plain

黄色で囲ったボタンで現在のVBIOSを吸い出すことが可能

VBIOS書き換えに必要なものをダウンロードする

書き換えツール「ATIFlash」と「書き換えたいVBIOS」の2点が必要になるので、以下のリンクからダウンロードする。

自分の場合はVGA Bios Collectionから「Memory SupportにElpidaが記載されているもの」として「Powercolor.RX560.2048.170508.rom」をダウンロードして使用した。

ATIFlashを使う

以下の手順3.の「.\atiwinflash -f -p 0」の「0」はPCIExpressスロットの最優先スロットのことであり、対象のグラフィックボードを接続している位置によって適宜「1」や「2」に書き換える必要がある。

それに続く「Powercolor.RX560.2048.170508.rom」も、使用するVBIOSのファイル名によって適宜書き換える必要がある。

  1. ダウンロードしたATIFlashを解凍し、出てきたフォルダはC: の直下に置く。このフォルダの中に書き換えに使うVBIOSも一緒に置く
  2. C:\atiflash_xxxフォルダ内でShift + 右クリックして「PowerShellウィンドウをここで開く」をクリック
  3. .\atiwinflash -f -p 0 Powercolor.RX560.2048.170508.rom」をコピペしてエンター
  4. PCを再起動する
f:id:clyde-ne45:20201209195050p:plain
f:id:clyde-ne45:20201209200956p:plain
ファイルの配置とPowerShellの入力

成功していれば再起動後に反映される。

失敗した場合などは、バックアップしておいたVBIOSファイルを使って上の手順1~4を実行し、元の状態へと復元できる。

書き換えの成否を確認する

GPU-ZのShaders欄から確認できる。以下のツイートで手書きの丸で囲まれている部分。

自分の場合は640SP -> 896SP化ができた。メモリクロックやGPUクロックの定格値もVBIOSに定義されているため、VBIOS書き換えによって変化している。特にメモリクロックは転送帯域幅が96GB/s -> 112GB/sに向上しており、それなりに性能向上に寄与していそうではある。

ちなみに、896SP化できるとは限らず、成功しても768SP化に留まるという報告も多い。

低電圧化・オーバークロック (任意)
  • GPUクロックは最大1250MHz程度
  • GPU電圧は最大900mV程度
  • 電力制限は最高値
  • それ以外は定格設定

が個人的なおすすめ。以下に具体的な今回のオーバークロック作業を書いておく。一般的なやり方だと思うけれど、念のため。

今回使用したRX550は補助電源を持たないため、仕様上はPCIExpress端子を介しての75Wが給電上限となる。これを超えて動作していると怖いので、確認と調整をした。

PC全体の消費電力を見るワットチェッカー以外に計測器具がないので、これの値の変化をもって判断した結果、VBIOS書き換え直後はボード全体で60W程度を使用しているようだった。

このとき電力制限により動作クロックは1000MHz前後で、電力制限を緩和すると動作クロックが定格の1180MHzに達した。しかし消費電力が75Wを超えているようだったため、GPUコアの低電圧化を行った。
低電圧化では、自分の場合は、電力制限が働いていたときの「消費電力60W前後」に収まることを目指した。60W以内で動作できる上限となったGPUコア電圧は900mV程度だった。
性能を最大化したいので、900mVで動作するGPUクロックの上限を調べた。自分の個体では1250MHz程度だった。
最終的には1250MHz・900mVに少し余裕を持たせる意図で1230MHz・890mVとしてみた。最後は感覚で。

f:id:clyde-ne45:20201209204349p:plain
f:id:clyde-ne45:20201209204357p:plain
Radeon Setting上での調整前・調整後

性能向上幅について

自分が行った作業はここまでで完了している。ここでは一般的なRX550とどの程度の性能差があるのか、あるいは何も変わっていないのか、簡単に確かめておきたい。

ベンチマークスコア

3DMarkからFire StrikeとTime Spy、定番としてFFXIVベンチマーク「漆黒のヴィランズ」の3つで計測した。

できるだけ純粋なGPU性能の指標として、3DMarkのGraphics Scoreに注目するのがよいかと思う。FFXIVベンチマークは他のパーツの影響が比較的大きくなる。

f:id:clyde-ne45:20201209204829p:plain
f:id:clyde-ne45:20201209204837p:plain
f:id:clyde-ne45:20201209204918p:plain
Graphics Score: 6767 (Fire Strike), 1900 (Time Spy)

一般的なRX550のスコアとしてこちらのレビューを参考にした。

androgamer.net

レビューによると一般的なRX550のスコアは

  • Fire Strike Graphics Score: 4136
  • Time Spy Graphics Score: 1175
  • FFXIV bench Score: 3809

3つのベンチマークスコアだけで見れば、1.38倍から1.63倍程度の性能差といえそう。GPUの理論性能値のみを比較すると1.211TFLOPS -> 2.204TFLOPSなので1.82倍だけれど、これはあくまで理論値。

ちなみにFFXIVベンチはバージョンが1世代ズレている。算出されるスコアはほぼ変わらないのでそのまま比較に使用した。

Fluid Motionパフォーマンス

追加予定

補足知識など (任意)

作業と性能確認までがここまでで完了している。ここからは、関係はあるけれど必須ではない知識を書いていきたい。余裕があれば読んでおくといいかもしれない。

RX550のバリエーションについて

大きく分けて2種類のRX550が存在している。

AMD Radeon RX 550 Specs | TechPowerUp GPU Database

AMD Radeon RX 550 640SP Specs | TechPowerUp GPU Database

注目するのはストリームプロセッサー (SP) 数の差で、512SP版と640SP版がある。これらはどちらもRX550であり、区別されず流通している。
512SP版は当初AMDが発表した通りのスペックを備えるGPUで、大手レビューサイトなどではこちらが使用されている。

640SP版はしばらく後になって登場したRX550で、Polaris 21 (Baffin) コアを採用しており、512SP版のPolaris 12 (Lexa) コアと異なっている。

見分け方はメモリクロックの違い

SP数や採用GPUのコードネームで見分けられればいいが、全てのRX550製品ページがこれを記載しているわけではない。そこで、ほとんどの場合記載されている情報での見分け方としてビデオメモリクロックで判別する方法がある。

512SP版のビデオメモリは1750MHz動作 (実効7000MHz) 、640SP版のビデオメモリは1500MHz動作 (実効6000MHz)という仕様なので、このメモリクロックをもって判別できる。

ただし最終的な調整はメーカー次第なので、オーバークロックモデル等これに当てはまらない製品が存在するかもしれない。

640SP版に使用されるPolaris 21 (Baffin) コアについて

BaffinコアはもともとPolaris 11として開発され、最大1024SPの規模のGPUとされている。後継のPolaris 21では動作クロックを向上させたものの、小改良に留まることからか、Baffinの名は引き継がれている。

Baffinコアの採用例を見てみると、RX460やRX560があり、これらのSP数は1024または896となっている。

640SP版のRX550はこれらと同一のGPUを備えていながら、何らかの理由で1024個のSPが640個まで制限されている。

SP数が制限されているのはなぜか

GPUが本来備えるスペックで動作していない場合は

  • 製造上の問題で動作不良コアが出ている
  • VBIOSなどによってソフトウェア的に封印されている

といったパターンが考えられる。

ここで、後者については適当なVBIOSに書き換えることで封印部分が動作可能になる事例があり、今回で言えばRX460やRX560のVBIOSがそれにあたる。RadeonのVBIOS書き換えが一部で盛んな理由がここにある。

今回の作業もこれに期待してのものになる。

おわりに

170mm程度のコンパクトなカード長で補助電源が不要という個性は、グラフィックボードのマッシブ化が激しい今ではいっそう際立って見える。最新のパワフルなグラフィックボードをメインで使う場合でも、PCトラブル時などにRX550の取り回しの良さが輝くシーンがありそう。
補助電源の不要なグラフィックボードに性能を求める勢力が根強いのも理解できたかもしれない。

Pixel Clockとモニターのオーバークロック

以前の記事でPixel Clockという用語に少しばかり触れた。

clyde-ne45.hatenablog.com

いずれ記事にしたいと結ばれているので今回これについて書いてみる。今回まとめて解説するモニターのオーバークロックにも関わりが深く、雰囲気だけでも理解しておくと有益かと思う。

f:id:clyde-ne45:20200318062057j:plain

144Hzモニターで150Hzを目指そう

ラフに書いておくと、HDMIなどの接続方法ごとに異なるPixel Clock上限を超えない範囲でリフレッシュレートを上げていく、というのがモニターのオーバークロックとなる。またPixel Clockにはある意味無駄な部分があって、そこを削減して更に上を狙うことができる。

前半はPixel Clockの話題が続くことになる。

Pixel Clock (Dot Clock) とは

モニターの1ピクセルを表示するのに必要な時間の逆数。1秒間に表示できるピクセル総数ともいえる。解像度やリフレッシュレートに比例して大きくなる。単位をMHzで表す。Dot Clockとも呼ばれる。カタカナでピクセルクロック、ドットクロックとするものも多い。

PCとモニターを接続する端子によって上限が決まっている。たとえばHDMI 1.3/1.4では340MHz。

 

Pixel Clockの計算方法

をすべて掛けて求めることが出来る。たとえば解像度1920x1080、リフレッシュレート60HzのモニターのPixel Clockは

1920 \times 1080 \times 60 = 124,416,000

 124,416,000 = 124.416\mathrm{MHz}

として求められれば話は単純だが、これは誤り。大抵は148.50MHzである。なぜ124.416MHzではなく148.50MHzなのかという話へ進めていく。

 

見えないピクセルを数える

目視で数えてみても、自分のモニターのピクセル数は1920x1080で間違いないし、リフレッシュレートは60Hzに設定している。ほかに関わってくる値は何だろうか。

これには目視できないエリアが関係する。ブランキング期間 (非表示期間) と呼ばれるそれは、フロントポーチ、バックポーチ、同期パルス幅という3つのエリアに分かれている。

前回の記事で使ったCustom Resolution Utility (CRU) を用いてブランキング期間を確認してみたところと、ブランキング期間と表示エリアの位置関係のようなものを示した図が以下になる。

f:id:clyde-ne45:20200315225844p:plain
f:id:clyde-ne45:20200315201004j:plain
Custom Resolution Utilityで確認したパラメータとそれらの配置イメージ

右の図でいう青色部分、表示エリアがモニターとして働いている。それ以外は実際のモニターでは見えていない部分。しかしPixel Clockの計算には含める。

左のスクリーンショットで言えば、ActiveのHorizontal PixelsとVertical linesではなく、Totalの両数値を使う。Totalのピクセル数はActiveとBlankingの和で、BlankingはFront porch、Sync width、Back porchの和になっていることを確認する。

 

計算方法は正しくは

  • 水平のピクセル数 (水平の表示エリア + 水平フロントポーチ + 水平バックポーチ + 水平同期パルス幅)
  • 垂直のピクセル数 (ライン数) (垂直の表示エリア + 垂直フロントポーチ + 垂直バックポーチ + 垂直同期パルス幅)
  • リフレッシュレート

の掛け算であることが分かった。もう一度計算してみる。

 1920 + 88 + 148 + 44 = 2200

 1080 + 4 + 36 + 5 = 1125

 2200 \times 1125 \times 60 = 148,500,000

 148,500,000 = 148.50 \mathrm{MHz}

無事148.50MHzにたどり着いた。

 

ブランキング期間の決定

先ほど、解像度が1920x1080でリフレッシュレートが60HzであればPixel Clockは大抵148.50MHzであると書いた。ブランキング期間は何によって決まるのか。

これは規格化団体が決めているものがあるから、それに従ってメーカーが出荷前に設定するという話である。現在主流な規格にはVESA CVTCEA-861がある。しかし、もとはブラウン管ディスプレイの時代に必要だったもので、液晶ディスプレイが主流の今では形式的なものになりつつある。

このあたりの話はこの方のブログに詳しく取り上げられている。

PCディスプレイの信号タイミング基準について - Diary on wind

ただし144Hzのような高リフレッシュレートモニターは事情が異なる。自分の見聞きした範囲では、高リフレッシュレート動作時についての規定が存在しないのか、各メーカーが独自の設定を施していることが多いようだ。

また、やり方は後述するが、ブランキング期間を自分で設定することもできる。

Video TimingとEDID

ちなみに、ブランキング期間や表示解像度をまとめたものをVideo Timing、合計タイミング、パラメーター、Display Timingなどと呼ぶ。

Video TimingはEDID (Extended Display Identification Data) というデータ形式をとってモニターからPCへ渡されている。モニターの内部メモリに書き込まれた内容は編集できないが、渡されたEDIDの状態なら好みに編集してしまえる。これに注目したのがCRUであり、前回の記事での作業内容および以下の作業内容はCRUを利用したEDIDの編集といえる。

clyde-ne45.hatenablog.com

前回の記事。

モニターのオーバークロック (考え方)

ようやくモニターのオーバークロックに深く関係する内容になる。

いま、冒頭部分の

またPixel Clockにはある意味無駄な部分があって、そこを削減して更に上を狙うことができる。

について改めて考える。

ある意味無駄な部分とは何なのか理解できるよう解説してきたつもりだ。つまりこれはブランキング期間を指している。目には見えないところにいてPixel Clockを大きくしている存在なので、これを0にしてしまえれば無駄がない。しかし、Video Timingと呼ばれるだけあって諸々のタイミング調整に使う時間でもあり、小さすぎても不安定になる。

また、Pixel Clock上限を気にせずリフレッシュレートを増やすのはどうだろうか。144Hzモニターで240Hz動作が実現できれば夢はあるが、自分のモニターの場合は「範囲超過」と表示されて真っ暗になってしまう。少し上限を超えるくらいなら動作する場合もあるが、基本的にはリスキーらしい。

まとめると

  • Pixel Clock上限を超えない
  • 小さすぎて不安定にもならない
  • できるだけ小さい

を同時に満たすブランキング期間を設定するというのがモニターのオーバークロックにおける正解と考えられる。

 

モニターのオーバークロック (実際の手順)

今回はCustom Resolution Utility (CRU) 1.4.1を使う。以下のリンク先からダウンロードできる。リンク先ですべての操作方法について学べるので、今回の解説は必要部分のみにしたい。

www.monitortests.com

前回の記事と同じく、操作を間違えたりするとモニターが暗転したままになることがある。基本的には何も触らず20秒程度待てば自動で復帰する。それでもダメという場合、自分は電源3秒押しで強制シャットダウンしたり、今使っているものと違う端子で接続して復帰している。

間違った操作を保存してしまった場合はCRUに同梱されているreset-all.exeを起動してPCを再起動すると初期化できる。また、今の接続方法における自分のモニターのPixel Clock上限もCRUから確認できる。

f:id:clyde-ne45:20200318162405j:plain
f:id:clyde-ne45:20200318163910p:plain
f:id:clyde-ne45:20200318163915p:plain
reset-all.exeの場所とPixel Clockの確認方法

電源3秒押しはOSやPCパーツへのダメージが考えられる。またオーバークロックは負担をかける行為だ。今回の場合はモニターへの負担が大きい。最悪の場合はモニターやPCが壊れるリスクがある。これらを踏まえて、以下の手順に従う。手順では例として144Hzモニターを150Hzへとオーバークロックしている。

CRUのLCD Reducedプリセットを使う方法 (おすすめ)

LCD Reducedはブランキング期間を適切に低く設定したプリセットなので、自分で手打ちする必要がなくお手軽である。ここまで枕として書いてきたPixel Clockの知識についても、この方法では要求されない。

  1. スタートボタン -> 設定 -> システム -> ディスプレイ -> ディスプレイの詳細設定 -> ディスプレイのアダプターのプロパティを表示します -> モニター -> モニターの設定 から60ヘルツに切り替えておく (念のため)
  2. CRUを起動してDetailed Resolutions欄のAddをクリックする
  3. TimingにLCD Reduced、Refresh rateに150を入力してOKをクリックする
  4. Detailed Resolutions欄内の操作2.で作った解像度設定を選択し、欄右下にある上向き矢印を押して一番上になるよう並べ替えてOKをクリックする
  5. PCを再起動する
  6. スタートボタン -> 設定 -> システム -> ディスプレイ -> ディスプレイの詳細設定 -> ディスプレイのアダプターのプロパティを表示します -> モニター -> モニターの設定 から150ヘルツに切り替える
  7. 動作が正常であれば変更を維持するをクリックし、不安定であれば20秒程度放置してもとの設定に戻るのを待つ
f:id:clyde-ne45:20200318050600p:plain
f:id:clyde-ne45:20200318050607p:plain
f:id:clyde-ne45:20200318050615p:plain
Custom Resolution Utilityを手順通り操作したところ

150Hz動作が正常でさらに高いリフレッシュレートを設定する場合や、不安定でさらに低いリフレッシュレートを設定する場合、手順1.に戻り60Hzに切り替えて再開する。また手順2.でAddのかわりに前回作った解像度設定を選択しEditをクリックする。

CRUからManualで設定する方法 (上級者向け)

Manualはブランキング期間を自由に設定できる。CRUのLCD Reducedでは冗長だという場合、さらなるブランキング期間の最小化を図る方法はManualでの手打ち入力のみ。以下の手順はLCD Reducedを使う場合のものとほぼ同じになる。

  1. スタートボタン -> 設定 -> システム -> ディスプレイ -> ディスプレイの詳細設定 -> ディスプレイのアダプターのプロパティを表示します -> モニター -> モニターの設定 から60ヘルツに切り替えておく (念のため)
  2. CRUを起動してDetailed Resolutions欄のAddをクリックする
  3. TimingにManualを選択し、Front porch、Sync width、Back porchに任意の値を入力、Refresh rateに150を入力してOKをクリックする
  4. Detailed Resolutions欄内の操作2.で作った解像度設定を選択し、欄右下にある上向き矢印を押して一番上になるよう並べ替えてOKをクリックする
  5. PCを再起動する
  6. スタートボタン -> 設定 -> システム -> ディスプレイ -> ディスプレイの詳細設定 -> ディスプレイのアダプターのプロパティを表示します -> モニター -> モニターの設定 から150ヘルツに切り替える
  7. 動作が正常であれば変更を維持するをクリックし、不安定であれば20秒程度放置してもとの設定に戻るのを待つ

150Hz動作が正常でさらに高いリフレッシュレートを設定する場合や、不安定でさらに低いリフレッシュレートを設定する場合、手順1.に戻り60Hzに切り替えて再開する。また手順2.でAddのかわりに前回作った解像度設定を選択しEditをクリックする。

操作中のスクリーンショットLCD Reduced利用時とほぼ同様のため省略する。

 ちなみに、本来は144Hzモニターならまず145Hz、60Hzモニターならまず61Hzといった感じで、できるだけ細かく刻んで上げていくのがオーバークロックの基本である。

 

確認方法

以下のサイトにアクセスすると、一番上を流れていくUFOが現在のリフレッシュレートで動いているはず。

www.testufo.com

 

おわりに

「モニターのオーバークロック」のために、EDID、Pixel Clock、VESA CVTなどを含めて解説した。内容がとっ散らかった感はある。また誤解のないようできるだけ用語を省略しないようにしたが、これが災いしてより読みづらくなっているとも感じる。

参考までに自分のPC環境を書いておくと

  • GPUMSI Radeon RX580 ARMOR MK2 / Adrenalin 2020 20.1.4
  • 【モニター】LG 24GM77-B (144Hz) / DisplayPort 1.2? 接続

記事内容に関わりのある部分はこんなところ。この環境で、1920x1080@150Hz Timing : LCD Reducedでの動作までは確認した。145Hzの時点で動作したりしなかったりと不安定だったので、あまり踏み込めていない。

Radeon SoftwareやNVIDIA Control PanelからもCRUと似たような設定ができるので試してみて欲しいところ。

実際のところモニターのオーバークロックにおいてPixel Clock周りがシビアになるのはHDMI 1.3/1.4接続で144Hzから上を目指す場合だけのような気がする。ほかの接続方法は上限に十分余裕を持たせている傾向にあったり、WikipediaによればデュアルリンクDVIに至ってはそもそも上限を持たない。DisplayPortやデュアルリンクDVIでの接続の場合はほぼ端子、ケーブル、モニターのオーバークロック耐性次第。

ブランキング期間などよりPixel Clockに影響するエリアがある。表示エリアの解像度だ。理論上、ここを小さくしてしまえば、画質を犠牲に更なるリフレッシュレートを追求できる。ただし、半端な解像度をモニターが受け付けない場合があるという問題や、Pixel Clock的には余裕がある状態でもモニターの高リフレッシュレート耐性不足により不安定になるという問題がある。このあたりはメーカーやモニターによって異なる。

144Hz / 240Hzでのメモリクロック張り付きを解消する

以前ツイートした内容を記事にしておこうという動機です。

マルチモニター環境でも有名な問題ですが、今回はシングルモニター環境向けです (この記事で扱う作業でマルチ環境での張り付きも解消してるんですが、なぜそっちも解消してるのか理屈がよくわかってないからです) 。

はじめに

メモリクロックと言っても、グラフィックボードに搭載されているVRAMとかビデオメモリと呼ばれる部分のクロックのことです。

何らかのモニタリングソフトを用意すると確認しやすいです。たとえばmsi Afterburnerでメモリクロック張り付き状態を見ると以下のように見えます。

f:id:clyde-ne45:20200308194655p:plain

msi Afterburnerでメモリクロック張り付きを確認した例

画像ではGPU使用率などが低いにもかかわらずメモリクロックだけが跳ね上がっているのが確認できます。PCゲームを起動している場合など、GPUにも負荷がかかっているシーンでメモリクロックが高くなるのは正常な動作であり、問題ないです。

Custom Resolution Utility (CRU) のダウンロード

今回使用するCRUは以下のリンクからダウンロードできます。この記事ではバージョン1.4.1を使いました。

www.monitortests.com

全体の作業内容

  1. Windows10のディスプレイ設定から60Hzを選択しておく (リスク回避のため)
  2. CRUでLCD Standardタイミングのプロファイルをつくる
  3. PCを再起動する
  4. Windows10のディスプレイ設定からリフレッシュレートを変更する

CRUの使い方を理解している方向けには以上になります。癖のあるソフトなので、手順2「CRUでLCD Standardタイミングのプロファイルをつくる」だけ説明しておこうと思います。

「CRUでLCD Standardタイミングのプロファイルをつくる」詳細

  1. CRUを起動して「Detailed Resolutions」欄の「Add...」をクリックする
  2. 「Timing:」欄を「Automatic - LCD Standard」にして「Refresh rate:」欄に144Hzを入力してOKをクリックする
  3. 「Detailed resolutions」欄右下にある矢印を押して、今作ったプロファイルが一番上になるよう並べ替えてOKをクリックする
f:id:clyde-ne45:20200317034809p:plain
f:id:clyde-ne45:20200317034814p:plain
CRUの操作

CRUは操作を間違えると画面が映らなくなります。F8を押したり、他の映像端子での接続、リモート接続などで復帰できることがあります。

また、144Hzや240Hzではなく、143Hzや239Hzというように少し数値をずらすのがおすすめです (この記事では144Hzにしてしまっています) 。

その他のこと

のちに240Hzモニター (PIXIO PX5 HAYABUSA2) の環境でも張り付き解消を確認しました。

操作は違えど「Radeon Software」や「NVIDIA コントロールパネル」からもCRUと同じような設定ができるはずです。

リンクなど

今回の作業はRedditで見つけたこの書き込みを参考にしました。

www.reddit.com

(20220204) TechPowerUpの以下のフォーラムも有益かもしれないです。2022年に入っても新規書き込みがあって活発なので。

www.techpowerup.com

作業を行うこと自体に支障はないのでほとんど省略しましたが、何を行っているか理解するには「Extended Display Identification Data」「Pixel Clock (Dot Clock)」「VESA Coordinated Video Timings」などを知る必要があります。今回行った内容は、技術的には「垂直ブランキング期間を延長して、ビデオメモリのクロックが制御される猶予の確保」をしているつもりです。いずれ記事にするかもしれません。 記事にしました。

clyde-ne45.hatenablog.com