03/23/2013 筆記
不知道有沒有人遇過這般如此駭人的畫面:
這個故事要從去年 DR 為了 MechWarrior Online 的緣故買了張 GeForce GTX 560 Ti 說起,剛開始用時覺得一切正常,唯一的例外是偶爾在 Windows 7 上用 Mozilla Firefox 上網時會突然出現如上圖(雖然那張照片是 Fedora 17,不是 Windows)般整個畫面佈滿色塊的狀況,接著畫面會恢復正常,然後 Windows 會出現「驅動程式已重新載入」之類的訊息。
由於 DR 使用 Windows 主要是玩遊戲,其餘大部分的工作都是在 Fedora、也就是 Linux 系統上進行的。因此 DR 在第一時間覺得這個偶發性的錯誤並沒有造成什麼困擾,而且那些大型的 3D 遊戲跑起來都沒有什麼問題,於是就猜想這也許是驅動程式的 bug 之類的。
然而後來 DR 就發現這個偶發性的錯誤也會出現在 Linux 上,而且狀況更糟,Linux 的畫面佈滿色塊時並不會像 Windows 會嘗試重新載入驅動程式,而是直接當在那邊。Ctrl + Alt + Backspace 有時候會有作用,會看到 X Window 重新啟動,但色塊還是存在著,並且鍵盤與滑鼠的反應都很慢,最後只能直接重開機了事。
所以這個問題變成了 Windows 和 Linux 共有的問題,但 DR 卻沒有因此直接就把問題的肇因指向硬體、例如顯示卡本身。這是因為不僅在玩 3D 遊戲時沒有任何問題,事實上在 DR 的印象裡,無論是 Windows 還是 Linux,這個詭異的驅動程式崩潰只發生在網頁瀏覽器正在運作時。
DR 所使用的網頁瀏覽器有兩款:在 Windows 上都是用 Firefox,在 Linux 上目前主要用的是 Google Chrome,至於為什麼會選擇不同的瀏覽器則是另一個故事了。重點是,在 DR 的印象裡面,驅動程式崩潰都是發生在 Firefox 或 Chrome 開著時。Linux 上所發生的錯誤狀況仍然是很偶然,所以 DR 也沒有多加詳查,只覺得也許這依然是驅動程式的問題(少見的跨平台驅動問題?),於是當時只採取了兩個作法:
- 盡可能將驅動程式保持在最新版,例如 Linux 一路升到 313 系列,Windows 則升到 314 系列。
- 將 Firefox 和 Chrome 關於硬體加速的部份關閉。
由於這個錯誤本來就很偶然,所以 DR 最終並不肯定上述兩個作法有沒有確實的降低問題發生的比例。但很肯定的是這並沒有就此將問題根除掉,因為後來還是偶爾會發生。只不過比例很低,而且從來沒有在玩遊戲時當掉,所以 DR 就很懶散的沒有繼續鑽研這個問題……
直到有一天,就在 DR 正在打文章的時候,驅動程式崩潰再次出現(就是一開始的那張照片),這下 DR 深深的覺得,這簡直是孰不可忍……
於是 DR 決定開始認真的搜集事證、有發生錯誤就拍照,並且回頭檢視過去的那些印象是否確實。最後,DR 重新歸納出了現有的事證,其中有些跟過去的印象是有牴觸的,而全部的列表如下:
- Windows 和 Linux 都會發生驅動程式崩潰。
- (Windows)304、313 和 314 系列驅動程式都會發生崩潰。
- (Windows)驅動程式崩潰時,大部分時候 Firefox 都是開啟的,更少數的情況則發生在沒有開啟任何應用程式,而桌面處於閒置時。
- (Windows)有時候在重新載入驅動程式時也會失敗,進而造成 BSOD。
- (Windows)遊戲 MechWarrior Online 的戰術地圖偶爾會花掉,到了下一場遊戲又會恢復正常。另外在一開場時偶爾畫面會突然完全不動,聲音、鍵盤則正常,切到桌面再切回遊戲會恢復正常。
- (Linux)310、313 系列驅動程式都會發生崩潰,304 系列用的時間不長。
- (Linux)驅動程式崩潰時,Chrome 都是開啟的。
- (Linux)遊戲 Killing Floor 某些材質異常。
- (Linux)遊戲 Serious Sam 3: BFE 正常。
- (Linux)遊戲 Counter-Strike: Source 正常。
- (Linux)Unigine Valley Benchmark 正常。
- (Linux)影片播放、剪輯正常。
第五項 MechWarrior Online 的部份 DR 當時比較傾向認為是遊戲本身的問題,至於第八項 Killing Floor 的材質異常 DR 則幾乎篤定就是遊戲的問題。總體來說,這些事證歸納下來,DR 還是覺得很難認定是硬體的問題,尤其第十一項,連 Unigine Valley Benchmark 這種狂操顯示卡的 3D 測試軟體都順利通過。
所以 DR 心想,這下子得要找一些技術支援才行,便嘗試在 NVIDIA 的官方網站找尋 Linux 方面的支援,結果就被引導到官方的開發者討論區。於是 DR 就將狀況和照片彙整了一下,在討論區上提問:
之所以沒有附 Windows 的照片是因為 DR 都沒有拍到……Windows 在錯誤發生時很快的就會嘗試重新載入,導致來不及拍照。在這個討論串中,DR 得到的第一個建議是跑 Memtest86+ 看看,儘管 DR 不認為目前的硬體除了顯卡以外有其它出問題的可能,不過事實上 DR 在換了顯卡後,過沒多久也連帶升級了 CPU 和記憶體(Phenom II X4 965 換成 FX-8350、記憶體從 DDR3 4GB 1333 換成 8GB 1600),所以還是給它測試一下,至於結果也是通過的。
接著,第二個建議就直接指明是視訊記憶體的問題,應該將顯卡送回原廠維修。於是 DR 很快的將線上維修申請跑完,然後將顯卡包裝好送修,在送修的這段期間就先拿之前用的 GeForce GT 440 湊合著用。過了幾天後,顯卡送回來,儘管上面沒有載明任何維修狀況,但蓋了個換貨章,核對一下序號,顯然是換了一張新的。
新的顯卡用到目前為止一切正常,希望就此解決了這個駭人的問題。
03/30/2013 更新:
昨日 DR 終於有一點空閒、玩了好幾輪的 MechWarrior Online,從中發現遊戲畫面突然不動和戰術地圖偶爾故障的問題還是會發生(但後者的狀況變得不太一樣,不再是地圖花掉而是地圖消失),所以這部份應該確實是遊戲本身的問題。