晚上十一點半。
英偉達的大本營。
外麵的街上連條野狗都看不見了,大辦公區裡卻還是燈火通明。
自從前幾天林哲在全組人麵前搞了那出“反內卷”的演講後,戴夫和胖子他們確實沒那麼瘋了。
今天一到晚上八點,大家就該下班下班,該吃漢堡吃漢堡。
整個辦公區現在空蕩蕩的,隻剩下林哲一個人沒走。
不是他不想走,是他特麼的被一個噁心的Bug給絆住了。
林哲靠在真皮老闆椅上,眉頭擰成了一個大疙瘩,手裡的半杯涼水早就喝乾了。
麵前的SGI工作站屏幕上,滿屏都是密密麻麻的底層彙編代碼。
情況是這樣的。
NV3的架構全麵轉向Direct3D之後,管線是精簡了,速度也提上去了。
但是今天下午,軟體組那邊送來了一個最新的高強度測試包。
一跑,出事了。
隻要畫麵裡同時出現大量半透明的多邊形重疊,整個渲染管線就會突然卡死,而且是死得透透的那種。
幀數直接從60幀跳崖式暴跌到個位數,畫麵卡得像在看PPT,主機的散熱風扇狂轉,簡直像要起飛一樣。
下午的時候,戴夫和胖子圍著這台機器,急得滿頭大汗。
他們用了公司最先進的硬體診斷工具,一行一行地查堆棧調用,查API介麵。
查了四個小時,連根毛都沒查出來。
診斷工具顯示的報告是一切正常。
但機器就是卡成狗。
林哲看他們倆快把鍵盤都給吃了,實在嫌煩,直接揮手把他們趕回家睡覺了。
“行了,放著我來,你們在這除了浪費公司的氧氣,一點用都沒有。”
現在,整個辦公區裡隻有林哲敲擊機械鍵盤的劈啪聲。
林哲根本沒開那個什麼狗屁硬體診斷工具。
1996年的診斷軟體?
在林哲這個從2026年回來的老妖怪眼裡,那玩意兒就是個純純的智障。
跑一次日誌要十分鐘,給出的結果全是廢話。
太麻煩了。
林哲壓根不看那些花裡胡哨的API調用。
他太清楚這種“管線停滯(Pipeline Stall)”的破事是怎麼來的了。
ᴏᴏᴘ.ᴛᴡ 呈現最新的小說章節
前世他在ATI和AMD的時候,這種坑他踩過沒有一千次也有八百次。
診斷工具查不出來,是因為邏輯上沒報錯。
這是物理底層的同步問題。
“肯定是Z緩存(深度緩存)跟紋理讀取搶匯流排帶寬了。”
林哲嘴裡叼著根圓珠筆,一邊嘟囔,一邊直接切進了最底層的DOS命令行。
他根本不帶看代碼邏輯的,他的手放在鍵盤上,甚至連停頓都沒有,屏幕上,直接跳出了一排排十六進位的物理內存地址。
林哲盯著其中幾個特定的寄存器地址。
0x4FA0。
0x4FBC。
他的手指在鍵盤上飛舞,速度快得像在彈鋼琴。
肌肉記憶,純粹的、被未來三十年無數次熬夜加班刻進骨子裡的肌肉記憶。
“就是這兒。”
林哲冷笑一聲。
微軟的DirectX在扔半透明貼圖的時候,會強製要求深度測試,NV3的顯存控製器在這個瞬間,沒有做好優先順序排隊,大家一起往匯流排裡擠,直接把路給堵死了。
正常的初級工程師,遇到這種底層硬體資源衝突,得去翻那本像磚頭一樣厚的主闆物理說明書,得一點點推算時鐘周期,得畫時序圖。
林哲呢?
設置
繁體簡體
他翻個屁的說明書。
他直接敲入兩行強製鎖死寄存器的微指令。
“給我在匯流排前麵加個兩個周期的等待狀態(Wait State)。”
“半透明貼圖進來,Z緩存先給我憋著,等貼圖過去你再走。”
簡單,粗暴。
紅綠燈一攔,交通瞬間順暢。
啪!
林哲用力敲下回車鍵。
。譯編新重
。包試測的度強高載掛新重,後鐘秒十
。現出次再麵畫
。轉旋狂瘋形邊多明透半的屏滿
。掉沒都幀一連,上幀06在死釘數幀,底到拉直線綠條一,噹噹穩穩條據數控監排流匯
”。工收,定搞“
。腰懶大個了伸,筆珠圓的裡嘴出吐哲林
”……段手力暴用子老逼得非,體硬破的代年09幫這“
”。誌日棧堆看沒你“
。來過了飄麵後勺腦後的哲林從然突,音聲的動波情感無毫、沉低個一
”!槽臥“
。去下溜出上子椅皮真從點差,嗦哆一身渾得嚇哲林
。頭過轉地猛他
。麵後位工的哲林了在站地息聲無悄麼這就,候時麼什道知不斯裡克
。幕屏腦電的哲林著盯正,睛眼的麵後片鏡厚厚,胸抱手雙他。肘手到卷子袖,衣毛灰的變不年萬著穿是還斯裡克
。口心的跳狂揉了揉哲林”?的來候時麼什你“
。嗎好的人死會人嚇人
?了病毛這上染也你連麼怎,了算就視巡樣一靈幽像夜半歡喜黃老
。椅疊摺破把一過拉上位工空的邊旁從接直他,題問的哲林答回沒斯裡克
”——呀吱“
。叫慘聲一出發子椅
。來下了坐邊旁哲林在斯裡克
。米半到不離距的人兩
。上址地器存寄的過改剛剛哲林被行幾那上幕屏在黏直一線視的他,哲林看沒斯裡克
”。了鐘分十二了站麵後在我“
。慢很速語,了口開於終斯裡克
”。到摸沒都邊的guB連,時小個四了搞午下)師程工子胖(恩伊和夫戴“
分十到不了用你“