設備型號:Acer TravelMate P246-MG 商務本。
癥狀:運行Windows 7和Office時正常,偶爾運行一些新程序時屏幕閃爍。開始以為是這些程序的問題,沒有在意。后來在使用該機作軟件開發(fā)時發(fā)現,可視化界面設計時因屏幕閃爍,界面設計幾乎無法進行。程序編譯后運行時也不停閃爍,界面無法看清,窗口切換時甚至閃爍出現前一個窗口內容,感覺是感染了某種未知病毒。在該機編譯的一程序啟動時界面閃爍如圖1所示。
圖1 軟件運行時屏幕閃爍
而該軟件正常運行的畫面如圖2所示。
首先進行病毒檢查,使用了多種殺病毒軟件檢測都沒有問題,看來不是病毒的問題。
其次分析開發(fā)工具,軟件開發(fā)時使用的是RAD Berlin版,該版本同時支持兩種類型的組件——VCL組件和FMX組件,用VCL開發(fā)的組件編譯后運行基本正常,閃爍很少或不閃爍;用FMX組件開發(fā)的軟件閃爍的非常厲害,幾乎無法運行。開始以為是FMX組件的問題,但是編譯好的程序在其他的電腦上能正常運行,不閃爍,編譯成Android代碼后在Android手機上也能正常運行。分析到此,似乎閃爍的原因是系統硬件問題,與軟件無關。
最后考慮這臺商務本的硬件,CPU、內容、硬盤都是大路貨,沒有什么出奇之處,但是顯卡卻是為了兼顧功耗與性能,配置為既有集成顯卡,也有高性能顯卡。
是不是因為兩款顯卡導致的屏幕閃爍呢?于是分析研究該機與顯示有關的設置部分。右擊桌面顯示有關設置。
對其中的圖形屬性、圖形選項逐個試驗后,閃爍癥狀沒有改善,于是把目標對準了顯卡廠家NIADIA的設置功能——“NVIDIA控制面板”,進入面板后畫面(如圖3)。
圖2 正常運行的軟件畫面
第一項和第三項都沒有看出什么名堂,最后決定深入研究第二項“管理3D設置”。進入后畫面。對“首選圖形處理器”項目進行設置,無論是選擇“自動選設備為“集成圖形”,保存后退出。使用一下畫面閃爍的程序,畫面竟然不閃爍了。接著又把首選圖形處理設備設為“高性能NIADIA處理器”,程序運行也正常,到此問題完美解決。擇”、“高 性能 NVIDIA處理器”還是“集成圖形”并開關下面的功能項目,閃爍情況照舊。
圖3 NVIDIA控制面板
百思不得其解之時,偶然點擊了上圖中“程序設置”頁面,看到里面都是一些與游戲有關的畫面,覺得與程序閃爍關系不大。
抱著試試看的態(tài)度,想看一下把畫面閃爍的程序添加進去后有什么效果,于是單擊“添加”。
把編譯好的程序可執(zhí)行文件(.exe文件)加入列表中,為其選擇首選圖形處理
這個故障往往會給人一種錯覺,問題是軟件或者病毒引起的,應該在程序里面找問題,筆者為此走了不少彎路。查閱了FMX組件的幫助文檔,沒有找到一點線索,在一些社區(qū)尋求高手幫助也沒有結果。最后硬中生軟,從硬件設置中發(fā)現了蛛絲馬跡,通過給程序指定首選圖形處理設備解決了問題。
這個型號的筆記本電腦使用兩種圖形處理設備協同工作,可能是操作系統對此管理不完善或者FMX組件對顯示處理有缺陷,沒有指定首選圖形處理設備,兩個圖形處理設備爭相為程序服務,結果造成顯示不正常,后一窗口里顯示前一個窗口的內容。