2012年6月24日 星期日

Nvidia筆電獨顯技術Optimus的盲點:FEZ及其他3D線上遊戲

最新更新內容

2014/11/18:另一款華麗動作遊戲《劍靈》,在韓、日、中國等地營運多年後,終於輪到台灣了,即將在20日開始公測。這次雖是直營商,但是不鎖海外IP,司馬昭之心,路人皆知。


封測時期便下載《劍靈》遊戲檔案,安裝結果不意外:Nvidia Optimus無法直接偵測遊戲並啟動獨顯晶片。

事實上,Nvidia Optimus只會把《劍靈》誤當成《PSO 2》,毫無反應。公測在即,前幾天我到便利商店買了公測光碟回家做最後嘗試。這次我修改了安裝路徑,把路徑中有中文字碼的部分全部刪除,只用最簡單的英文字碼,避免不必要的麻煩。

301.42版無法辨識劍靈,只好全域指定高效能晶片。
更新檔案下載完畢後,啟動遊戲。結果......依然如故。

糟糕的是:用Nvidia Inspector 想要「刪除舊設定檔,自行設定」這招無效,Nvidia Optimus依然把《劍靈》誤判成《PhantasyStar Onine 2》。這可能是在我的筆電上唯一能運作的301.42驅動版本辨識能力太差的關係。

不同的遊戲有不同的解決方法。想要讓《劍靈》使用獨顯的方法是直接在驅動程式設定頁面中,「指定全域使用高效能顯示晶片」,等於是讓獨顯全天候運作。

重開機後啟動《劍靈》的launcher,這次成功了!現在雖然只能捏一個人物角色,不過至少已經能確定獨顯有順利驅動。





本文

如果你熱愛FEZ,想買一台電競筆電來玩,那麼我先說結論:不要買Nvidia Optimus技術的獨顯筆電(至少別像我一樣買太早。但也先不要買Windows 8筆電)。

理想狀況下,驅動要能辨識需要獨顯的遊戲並自動啟用。

為什麼?

原因很簡單:遊戲廠商為了反制外掛,動了一些手腳,導致執行FEZ這類3D線上遊戲時,Nvidia獨顯不會運作。也無法強制開啟。你等於是買了一台「只有intel內顯會動的電競筆電」。非常諷刺。

這問題無獨有偶,不單單出現在我購買的筆電(請見過去的網誌),只要抽點空上Nvidia官網討論區Optimus & Hybrid版,你就會發現,各家筆電廠商所推出的產品,不論新舊型號(從幾年前的GT 540M到2012年最新產品),都有消費者發出同樣的批判聲浪。

令人百思不解的是,Nvidia官方對這件事自始至終完全保持緘默,所以這問題從沒解決。

2012/7/8更新:Nvidia官網討論區宣布維修,進不去了...
2012/7/19更新: 從Nvidia官網討論區發表的公告看起來,似乎是被駭客入侵了。目前沒有恢復的任何跡象。
2012/11/1更新:Nvidia官網論壇終於開放。討論區被駭竟然可以修3個月,Nvidia到底是發生什麼事...。

某些3D線上遊戲事實上只會用到內顯。而且無法自行切換。
到底Optimus是什麼樣的獨顯技術,可以如此聰明又自作聰明?這裡盡量用最簡單的文字來描述。細節請到官網瀏覽

Optimus是Nvidia的獨顯技術,特點是透過驅動程式在筆電內顯與獨顯晶片之間無縫切換。為了省電(電池續航力),軟體會自動判斷當前使用的應用程式是否需要開啟獨顯晶片來作3D運算,並且將運算結果送給內顯晶片來顯示。

為了省電和無縫切換,這個架構是無法關閉intel內顯的,許多筆電廠商在BIOS中都沒有提供選項。需要獨顯時,獨顯只負責運算,顯示全部交給內顯。

驅動如何判斷該不該啟用獨顯?答案是靠著驅動程式內建的白名單和profile檔。驅動可以判定使用者開啟的軟體在白名單中,然後啟用高效能獨顯。如果你電腦中的遊戲不在白名單中呢?理想狀況下,驅動程式中允許使用者指定應用程式使用高效能GPU,也就是Nvidia獨顯。


如何判斷獨顯是「閒置」還是在「活動」?打開Nvidia控制面板,在選單列上將「桌面」下的「在通知區域顯示GPU活動」打勾,就會在工具列上出現圖示,你可以藉此觀察獨顯是否開啟。

有些筆電產品會使用不同顏色的LED燈號指示來提醒玩家是否啟動獨顯。
看起來很聰明,不是嗎?未必。如果這驅動真的有那麼強,Nvidia官網討論區上不會有那麼多玩家抱怨不停。

事實上,這問題實在太普遍,官方卻又置之不理,玩家只好自己想辦法。有些玩家幸運地成功了,可惜這些方案並不適用所有的Nvidia獨顯晶片。目前,採用NVIDIA Optimus技術的獨顯與intel內顯切換時,出現的問題個案有這些狀況:
  • 獨顯閒置不工作,所有繪圖運算都由intel HD Graphics內顯完成,造成效能低落。
  • Nvidia 驅動程式3D控制面板切換到獨顯設定(白名單),實際上無作用。
  • 使用DirectX 9.0c的遊戲無法改用獨顯執行,新增白名單 → 無效。
  • 變更參數,導致原本可用獨顯跑的應用程式變成只用內顯跑。
  • 廣域設定改高效能GPU → 無效。
  • 在遊戲圖示上按滑鼠右鍵,「以圖形處理器執行」選「高效能GPU」 →無效。
那麼,會不會是筆電廠商急著推新產品,造成硬體或韌體不夠新?我自己作過以下的嘗試:
  • 更新筆電BIOS到最新版本。
  • 更新intel HD  Graphics 3000內顯驅動(Windows Update)。
  • 更新Nvidia 驅動至最新版本
  • 降級Nvidia 驅動至285.91(出廠值)/285.98
結果仍然沒解決問題。剛裝好驅動時,不作任何變更,驅動程式尚可辨認白名單中的Benchmark程式。一旦你嘗試想將新軟體加入白名單,驅動就傻了,所有遊戲和Benchmark一概不認識,變成只用內顯。獨顯完全被架空。

Nvidia論壇上曾有玩家自助人助,提出成功啟用獨顯的方法:
  • 將畫面外接到有HDMI端子的顯示器,筆電會自動強制啟用Nvidia獨顯。
  • 使用Nvidia Inspector修改參數,覆寫到Nvidia 3D控制面板,強迫驅動使用獨顯。這個小工具對我個人來說目前是有效的,可以在多種遊戲環境下驅動獨顯。進一步使用方式,請參照這篇網誌:「TERA遇上錯誤代碼65535的解決方式」
  • 購買有獨立實體開關強制切換獨顯的筆電機種。
雖然已加入名單,指定使用GPU,但NVIDIA仍然看不到FEZ。

很可惜的是,這些方法都只能視為個案,有些人成功,但更多人失敗,無法一勞永逸解決問題,除非你改買其他筆電,或者乾脆放棄用筆電玩。

小結

2012年5月,暗黑破壞神3上市,效能上對獨立顯卡要求較高,部分玩家此時才發現原來筆電獨顯其實根本沒作用。
玩家不斷呼籲Nvidia儘快正視這問題。種種跡象顯示,問題出在Optimus技術,以及驅動程式上。但兩年多過去了,最新的驅動程式仍然沒解決。許多玩家的結論都是等待Nvidia下一版驅動。如果是你,對Nvidia還會有期待嗎?我還沒開始玩暗黑破壞神3,不過我已經放棄在筆電上玩FEZ了。電玩主力,還是投資在桌上型電腦比較划算。


日版FEZ營運官方終於在2012年10月19日的更新中,宣布對應Nvidia Optimus獨顯技術如今對我來說只是半吊子的殘障。希望各位不要跟著當白老鼠。現在搭配著NVIDIA Inspector這個小工具,終於可以使用筆電獨顯玩日版幻想戰記了!



如果你想要自己手動設定啟動獨立顯示晶片組,可以參考另一篇網誌:「TERA遇上錯誤代碼65535的解決方式」





補充內容


  • 2012/12/17更新:日版FEZ在10/22更新後,終於正式對應NVIDIA OPTIMUS獨顯技術,但仍須手動設定才能正確啟動。公告連結在此
  • 2012/10/6更新:週末假日早上起床上線,無聊之餘用google 搜尋幾個關鍵字,結果出現了一個契機:有日本FEZ玩家自行修改登錄檔,成功啟動了筆電中Nvidia獨顯晶片!是否能在我的筆電上奏效,利用假日研究文件中。預定先將日文內容整理出來,供大家參考。 網誌內容請點選這邊,原始網頁連結在此
  • 2012/9/16更新:下午上官網討論區,發現日版玩家和我有同樣的問題連結在此,觀看需用登入)。
  • 2012/7/27更新:從後台管理看,這篇網誌吸引了不少人,有的是從3C網站轉貼看到的,有的則是用關鍵字搜尋找到這篇,另外更有朋友熱心提供了不少方案,在此銘謝。某廠牌的筆電使用者向原廠抱怨不能使用NVIDIA官網的最新驅動,筆電廠商回以「採用此技術的各廠筆記型電腦,均需由NVIDIA另提供相關驅動程式,因此無法直接使用NVIDIA官網顯示卡驅動程式,安裝未經驗證驅動可能導致Optimus失效」姑且聽之,首先將301.42驅動程式解除,並且到筆電官網下載出廠版本(285.98)重新安裝。安裝完畢重開機後,開始設定,將廣域設定和程式設定都指定由高效能GPU來執行。設定上都沒問題,但驅動能正確辨識的只有intel渦輪加速監視器,其他的程式,從Biohazard 5 Benchmark(辨識為intel HD Graphics 3000)到FEZ,一概當作沒看見,如下圖所示。
  • 2012/8/15更新:換了仍在Beta中的304.79驅動,問題依舊。
  • 2012/8/18更新:花了半天的假日時間,重設筆電,也就是清空所有開機硬碟的資料,重新回復成出廠值。緊接著Windows Update、重新安裝應用軟體,下載日版FEZ遊戲。結果仍然沒有效果。微軟有一個選用更新是intel HD Graphics 3000內顯驅動(2012/4),不過並沒有解決問題。



18 則留言:

  1. 這篇早一點出就好了XDD
    我就在覺得奇怪明明都鎖定了怎麼獨顯還是不跑...
    (我電腦是NV520M...

    回覆刪除
    回覆
    1. 花了一點時間確認,從更新bios到換驅動程式,各方面下手都行不通我才寫這篇網誌。

      據說,外接HDMI端子顯示器會強制啟動獨顯,因為要花錢我自己還沒親身驗證,但這樣筆電可攜性也完蛋了,意義不大。外接HDMI顯示器真的是沒辦法中的辦法,但沒效就白花錢了。

      刪除
    2. 很認同...但是各家廠商還是一直出...
      真的很好奇,到底有多大比例的人會遇到這樣的問題.
      今天也在喬驅動的事情...幸運的是我大部分的game都可以執行
      不過光是這樣耗費時間,已經讓我買GT60的滿意度大大下降了..

      刪除
    3. 像這款日版線上遊戲,雖然已經五六年了,但對NVIDIA來說,根本就是化外之民,不會花心思把這款遊戲加進白名單當中。偏偏驅動又認不出這款遊戲,兩者加起來就是悲劇了。

      對筆電廠商來說,大概只要有D3和BF3這類遊戲能啟動獨顯就好,其他的他們應該沒空管了...XD

      刪除
    4. 我是台版 FEZ 玩家,我一直都是 NVIDIA 的支持者,雖然 N 家的晶片比較貴,但是相較於 ATi 來說,通常較為穩定,且驅動與功能程式也寫得比較好。
      但是在筆記型電腦上......我也在 Optimus 這功能上吃過不少苦頭,但我在 FEZ 的執行上沒有問題,我的問題發生在撥放影片......
      當我用 MPC-HC 撥放 1080p 影片時,只有 Intel 內顯運作,效能很差,而 MPC-HC 在 NVIDIA 的功能程式中,已經寫死只能用內顯......另外我還碰到,我的螢幕保護程式需要的運算效能較高,卻總是用內顯跑,一直處於延遲的狀況......
      關於這兩項狀況,經過我不斷測試後,找到了解決辦法:
      螢幕保護程式的解決辦法,是改掉附檔名!將 XXX.scr 改成 XXX.scr.exe ,讓 NVIDIA 的功能程式認為是執行檔,然後新增指定該程式使用 NVIDIA 高效能 GPU 運作。設定完後,再將 XXX.scr.exe 改回 XXX.scr ,然後螢幕保護程式就變得好順暢!
      而 MPC-HC 使用高效能 GPU 的方法,因為 NVIDIA 的功能程式中,已經有 MPC-HC 的預設值,還寫死只能用內顯(後來成功後測試, MPC-HC 的某些渲染器在使用高效能 GPU 情況下, MPC-HC 會發生不明錯誤,可能是因為這樣,才被 NVIDIA 預設寫死只能用內顯......),就算新增指定也是不行。這時候......一樣是改檔名!將 mpc-hc.exe 改成 _mpc-hc.exe 後,新增指定使用高效能 GPU ,就解決了!接著就用改名的 _mpc-hc.exe 重新關聯相關檔案即可。
      根據研究結果, NVIDIA 的功能程式用來判斷切換獨顯、內顯的方式,檔名可能是關鍵。
      以上提供參考,或許 FEZ 也能用類似的手法?

      刪除
    5. 補充說明:
      我的筆記型電腦使用的是 NVIDIA Geforce GT540M ,我似乎曾經手動新增 fezero_client.exe 指定使用高效能 GPU (因為我有點忘了,不確定是否為手動,但手動可能居多),至今自動切換獨顯辨識無礙,另外 Diablo III 也是自動切換獨顯辨識無礙。

      刪除
    6. 多謝提供這麼詳盡的解決方案,不過不知道能不能用在我這台筆電上。明天有空就來測試看看,先謝謝您了!

      刪除
    7. 補充說明:
      同樣是改檔名,但螢幕保護程式改副檔名的用意,是為了讓 NVIDIA 功能程式將其判定為執行檔,以做新增指定。所以,設定完後,需要將副檔名改回。
      但是改 mpc-hc.exe 為 _mpc-hc.exe ,是為了讓 NVIDIA 功能程式認為 _mpc-hc.exe 並非是 mpc-hc.exe ,而是另一種程式,進而避開使用預設值的設定。故此時,並不能改回,目的就是要偽裝成是另一種不明程式。這種方法適用於,改了主要執行程式的檔名,也對整個執行流程不會有特別影響的程式。

      刪除
    8. 改檔名的作法,在FEZ似乎行不通。原因可能是因為FEZ Client要透過Fezero.exe來啟動,改了檔名就沒辦法運作了。殘念....。

      刪除
    9. 若是改 fezero.exe 的檔名呢?若 Optimus 對 fezero.exe 判定成功,那麼 fezero.exe 的子行程 fezero_clien.exe 應該會連帶屬於判定成功之後的情況?或是 fezero.exe 本身就可以嘗試直接指定高效能 GPU ?

      刪除
    10. 這方法我也嘗試過了。事實上我是把fezero.exe和fez_client.exe都放進白名單中。驅動對fezero.exe這個launcher同樣是沒有反應的。改名或沒改名結果都相同。

      anyway,還是非常感謝!

      刪除
    11. 可惡,無法自行測試,好麻煩......
      很抱歉幫不上忙。 ˊ-ˋ

      刪除
  2. 喔對,我一直都是直接使用 NVIDIA 官方提供的驅動程式,沒有不相容的問題。
    或許跟出產世代有關?

    回覆刪除
    回覆
    1. Nvidia Forums上跟我有相同問題的型號,從GT540M開始就是一長串名單。每個型號都有個案,所以幾乎可以確認是Optimus技術出包。等Nvidia把被駭客入侵的問題解決後開放論壇,有興趣的朋友可以去逛逛。

      刪除
  3. 破解播放軟體只能使用內顯,不能使用獨顯GT640M LE的方法。

    這方法有點爛,不過是有效的。

    例如:安裝完mpc-hc之後,在mpc-hc的安裝目錄下,
    把播放器的執行檔「mpc-hc.exe」複製、貼上在原安裝目錄下,
    並重新命名成「mpc-hc_gpu.exe」。(換成其他的名字也可以)

    也就是說安裝目錄下會有2個播放器執行檔
    「mpc-hc.exe」和「mpc-hc_gpu.exe」。
    然後到nvidia控制面板 ->管理3D設定 ->程式設定 ->新增 ->找到安裝目錄 ->開啟
    「mpc-hc.exe」 只會出現"整合圖形" (不要灰心後面還有..)
    再新增「mpc-hc_gpu.exe」就會出現可選擇3D模式了

    在選擇執行程式時,不要點錯檔案了。

    感謝k7system (剛好也是買到這台筆電,就只要照這個弄就好了)
    http://www.pczone.com.tw/thread-154866.html


    回覆刪除
  4. 今天我試著裝九陰真經和天龍八部
    2個遊戲都是自動選取 NVIDIA GPU
    所以 我要找什麼經典3D game來試試嗎???

    回覆刪除
  5. 去年暑假買了一台筆電
    內顯Intel HD Graphics 4000
    獨顯Geforce GT-640M
    用FF的Benchmark 測完結果竟然是用內顯

    今天抓了FFXIV的Benchmark 測完看結果一樣用內顯
    進去控制台調"獨顯"
    很遺憾 測試結果還是內顯

    這種切換內獨顯方式真的有夠差....

    回覆刪除
  6. 我的劍靈 有時會用到我I7的內顯 我都要重開機來解決
    可以教學一下怎麼用N牌控制面板 把他調整成用獨顯?

    感謝~!

    回覆刪除

留言可能不會即時顯示在網誌上。

注意:只有此網誌的成員可以留言。