風柳メモ

ソフトウェア・プログラミング関連の覚書が中心

私のSurface Book 2が不安定なのはどう考えてもグラフィック・ドライバーが悪い!?

Surface Book 2をメインPCとして愛用しているのですが作業中に突然ディスプレイがブラックアウトして、ひどいときにはそのまま復帰せずに手の施しようがなくなる……という現象に悩まされてきました(なんどかブルースクリーンにもなった覚えがあります)。

その際に調べたところでは、「デスクトップ ウィンドウ マネージャー(dwm.exe)」がメモリを数GB~数十GB程も占有している、という状況でした(通常は数十MB程度のはず)。

どうやらこれは、Surface Book 2(自分のは15")のIntel(R) UHD Graphics 620用のドライバーが原因だったようです

「それなら、Intel® Graphics – Windows* DCH Driversを更新すればよいんでしょ?」となるわけですが……(少なくとも自分のところでは)一筋縄ではいかなかったので、試行錯誤の内容を備忘録として記しておきます。




せっかちな人向けの手順

デスクトップ ウィンドウ マネージャー(dwm.exe)のメモリリーク対策として、Surface Book 2のIntel® Graphics – Windows* DCH Driversを更新する手順を示す。
自分のところは「Surface Book 2 15"(8th Gen Intel® Core™ i7-8650U クアッドコア プロセッサ, 4.2GHz Max Turbo)」なので、ドライバー名等は自身の環境にあわせて適宜読み替えのこと

  1. デバイスマネージャーを起動して、
    ディスプレイ アダプター>Intel(R) UHD Graphics 620のプロパティ>ドライバー
    を確認。
    これのバージョンが「30.0.101.1339」(もしくは「30.0.101.1191」以降)に既になっている場合、対策済みのはず
  2. 上記よりも前のバージョンになっている場合(自分のところでは「27.20.100.8682」「26.20.100.8141」が存在)、同じくデバイスマネージャーから、
    ディスプレイアダプター>Intel(R) UHD Graphics 620
    の「デバイスのアンインストール」(「☑ このデバイスのドライバーソフトェアを削除します」にチェックの上で)を実施(必要に応じて再起動)し、
    ディスプレイアダプター>Intel(R) UHD Graphics 620
    が存在しなくなるまで繰り返す
    自分のところだとディスプレイアダプター下には「NVDIC GeForce GTX 1060」のみが残った
  3. MicrosoftのSurface 用のドライバーとファームウェアをダウンロードするページより、Surface のドライバーとファームウェアの手動更新から「Surface デバイス モデルを選択する」で自分のモデルにあったリンクに遷移した上で(Surface Book 2の場合はこちら)最新のドライバーとファームウェアをダウンロードの上、実行してインストールを実施
    Surface Book 2の場合、2022/10/11現在ダウンロードされたのは「SurfaceBook2_Win10_19041_22.080.2839.0.msi」だった
  4. 再起動後、Intel(R) UHD Graphics 620のドライバーのバージョンが「30.0.101.1339」(もしくは「30.0.101.1191」以降)になっていることを確認

不具合(dwm.exeのメモリリーク)の原因

www.intel.co.jp
に書かれている通り、デスクトップ ウィンドウ マネージャー(dwm.exe)がいつの間にか理不尽なほどにメモリを占有してしまう不具合は、Intel製ドライバーに起因するメモリリークが原因だった模様。
対象となるドライバー(Intel® Graphics – Windows* DCH Drivers)は、

  • 「27.20.100.8587」以降で不具合発生
  • 「30.0.101.1191」以降であれば対策済み

とのこと。

試行錯誤

とくになにもせずとも通常のWindows Updateのみでいつのまにか「30.0.101.1339」に更新された……というケースもあるようなので(Surfaceかどうかは不明)、あくまで参考まで……。
自分の場合、過去にも試行錯誤していたため、その際に余分なことをしてしまった可能性も大いにある

ドライバーのバージョンを確認してみる

自分の環境で確認してみると、「Intel(R) UHD Graphics 620」のドライバーは

  • 日付:2020/09/06
  • バージョン: 27.20.100.8682

となっており、見事に不具合発生するバージョンであった。
これは……なんとかしてバージョンアップをしなければ……!
なお、試しにデバイスマネージャーの「ドライバーの更新(P)」を行ってみたところ……バージョン「26.20.100.8141」(日付: 2020/04/11)になってしまった……待って……なんで下がるの……(その後、「ドライバーを元に戻す(R)」でとりあえず「27.20.100.8682」に戻しておいた)

Intel公式ページよりダウンロードしたドライバーはインストール不可

最初は単純に「Intel公式ページから最新のをダウンロードしてインストールすればいいんでしょ?」と思ったが、実際にやってみると「お使いのシステムには製造元の仕様にロックされたドライバーがあります」なる無慈悲なメッセージが表示されてしまい、インストールできない。
なお、そのあたりを配慮して更新してくれそうな「Automatic Driver and Software Updates」なるものもあるが、自分の環境だとインストールはできたものの、その後のダウンロードができない(インジケータが20数パーセントくらいまで進むと0になるを繰り返す→そのうちダウンロードがキャンセルされる)現象が発生し、うまくいかなかった

ドライバー/ファームウェアの最新版を入れてみたが……

Surface Book 2 更新履歴を見てみると、「2022 年 6 月の更新プログラム(6 月 17 日リリース)」のところに、

Windows Update の名前 デバイス マネージャー
Surface - システム – 6.134.139.0 Surface Integration Service Device – システム デバイス
Intel Corporation - ディスプレイ – 30.0.101.1339 Intel(R) UHD Graphics 620 (15") – ディスプレイ アダプター
Intel Corporation - ディスプレイ – 30.0.101.1339 Intel(R) HD Graphics 620 (13") – ディスプレイ アダプター
Surface Book 2 更新履歴

という記述が……! これこそ自分が求めていたものではあるまいかっ!

喜び勇んでダウンロードセンターから最新版(SurfaceBook2_Win10_19041_22.080.2839.0.msi(Date Published:8/26/2022))をダウンロードし、インストール&再起動したところ……ドライバーのバージョンは「27.20.100.8682」のままだった……いや、なんでよ……?

ドライバーはアンインストールした上でのクリーンインストールが必要だった……!

なんどか入れ直したり再起動したりを繰り返すも、状況は変わらず。
さすがに諦めかけた頃に、もう一度このページを見直してみたところ、解決方法のところにしっかりと

dwm.exe の漏洩の修正プログラムを含むドライバー 30.0.101.1191 をインストールする前に、 ドライバーのクリーン・インストール を実行する必要があります。

dwm.exe (デスクトップ・ウィンドウ・マネージャー) 27.20.100.8587 より新しいドライバーのメモリー漏えいが発生する

と書かれていることに気づく。

ダメ元だと、

  1. 念のため、インストールしてあったSurface Book 2 のドライバー/ファームウェア(Surface Book 2 Update 22.080.2839.0 (64 bit))をアンインストール
  2. デバイスマネージャーから、
    ディスプレイアダプター>Intel(R) UHD Graphics 620
    の「デバイスのアンインストール」を、
    ☑ このデバイスのドライバーソフトェアを削除します
    にチェックした状態で実施(必要に応じて再起動)
    ディスプレイアダプター>Intel(R) UHD Graphics 620の項目がなくなる(自分の場合、「NVDIC GeForce GTX 1060」のみが残る)まで繰り返し(「27.20.100.8682」「26.20.100.8141」の2つの削除が必要だった)
  3. Surface Book 2のドライバー/ファームウェア(SurfaceBook2_Win10_19041_22.080.2839.0.msi)を再インストール

とやってみると……なんとっ!

Intel(R) UHD Graphics 620のドライバーのバージョンを確認

見事に、バージョン: 30.0.101.1339(日付: 2022/01/22)のドライバーへと更新されていた……!

Windows Helloが使えなくなっちゃった!

無事更新されたと喜んだものの、なぜかWindows Helloによる顔認証が効かなくなってしまった……。
ログイン画面で「カメラをオンにできませんでした。PINを使ってサインインしてください。」とか言われる

自分の場合には幸いにして、
設定>アカウント>サインインオプション>Windows Hello 顔認証
より[認識精度を高める]を再度実施することによって、使えるようになった模様。
うまくいかない場合、こちらの記事などを参照のこと



とりあえず、この状態で様子見中。

この記事を書くきっかけ

2022/10/11に発生し、Windowsの動作が重くなったことで気がついたdwm.exeのメモリリークはこんな感じ。

デスクトップウィンドウマネージャーのメモリリーク

2GB弱なので、まだまだ序の口という印象だが……。
過去にもいろいろと調べてみたものの抜本的な対策が見つからずにあきらめていたのだが、なんとか対応する方法はないものか……と再度調べてみると、Surface Book 2 更新履歴に対策されたらしき履歴があったので、試してみた次第。

過去のツイート等