當購買或查看顯示卡規格時,您將看到它支援的 DirectX 版本(在我的具體情況下,該卡支援 10)。我想知道的是,當微軟發布新版本 11 時,什麼會阻止該卡按照 DX11 標準執行?
我認為這是實際顯示卡本身韌體的問題,難道不能刷新以支援最新版本嗎?或者這款 DX10 卡會支援並運行 DX11 嗎?
誰對此有什麼好的見解,請告訴我!
編輯:好吧,如果您否決該帖子或投票關閉它...請您解釋為什麼您認為這是一個“愚蠢的問題”。我真的很好奇 DX 版本之間有什麼區別,需要完全改變硬體。 GPU指令集是相同的,硬體上唯一的區別是較新的具有更快的VRAM,更多的流處理器等。給我一個理由。
答案1
DirectX 10 卡無法升級到 DirectX 11 的原因很可能與 DirectX 11 強制要求特定功能(例如數學運算中的特定精度級別)有關,這種事情向後移植到該卡上很困難並且有點煩人並非設計用於與其配合使用的硬體。
這與不支援較新 CPU 引入的新功能的特定 CPU 相同,當然可以模擬新功能(並且運行速度可能不會比本機實現慢太多),但 CPU 本身仍然不會真正支援所需的功能特徵。類似的想法可能是在非 SSE 處理器上模擬 SSE 指令的可能性,當然您可以做到,但它需要大量修改,並且比完整的硬體實現慢很多。
您很可能透過客製化軟體獲得DirectX 10 卡,使其看起來與DirectX 11 卡一樣好,並以類似的方式完成幾乎所有操作,但DirectX 11 要求的所有本機功能或額外精度都會缺失,而且一般情況下我認為軟體/模擬層會比完整的硬體方法慢很多。
答案2
在 DirectX 10(包括)之後,微軟決定放棄整個“相容性位元”,只在卡片中設定最低 DirectX 等級。如果您的卡片相容於 DX11,則支援所有 DX11 功能。這使開發人員更容易(您不必在使用功能之前檢查功能的可用性),並確保更一致的體驗。
從概念的角度來看,查看此帖子的任何人都會建議硬體修改從 DX10 過渡到 DX11 需要什麼? GPU 和串流處理器都具有相同或非常相似的指令集。
事實上,事實並非如此。再次注意我上面所說的話——對於一張卡來說硬體DX11相容,它必須支援所有 DX11 功能。過去,DirectX 版本之間的變化有改變了 GPU 硬體本身的各個方面,包括管道架構、著色器模型(和支援的語言/著色器)、浮點精度和指令集擴展。
儘管不是所有這些從DX10到DX11的過渡已經發生了變化,在硬體和軟體方面都實現了額外的功能(這些變化大部分都是閉源的,所以我無法評論具體的變化)。
話雖這麼說,你能使用 DirectX 9/10 硬體運行 DirectX 11 軟體,儘管沒有添加 DirectX 11(即曲面細分、多執行緒渲染和計算著色器),並假設開發人員已正確實作應用程式。我沒看到這個曾經這是一個問題,因為它實際上不需要任何成本來實現 - 這就是為什麼我之前提到「相容性位元」的原因。
如果您想新增最新、最好的 DX 等級的新功能,您可以查詢硬體以查看它是否支援最新的 DX 等級。如果是,則啟用它們,否則回退到下一個 DX 等級(而不是檢查特定硬體功能的可用性)。這就是為什麼使用 Direct3D 11 庫編譯的應用程式將能夠在 Direct3D 9/10 相容硬體上運行。
答案3
「更新韌體」並不能解決所有問題。每個版本的 DirectX 要求都將涉及硬體和韌體解決方案。
答案4
這是因為在製造顯示卡時,GPU 僅設計為在您看到的經過認證的 DirectX 標準內運作。通常 DirectX 向後相容於先前的版本,因此所要做的就是提高一些數學計算的精度。但新的 DX 版本有時也會引入需要新硬體支援的新功能(例如 DX11 新增的曲面細分)。顯示卡的實際內部結構是不可編程的(除了著色器,這又在 DX 規格中指定)。韌體是一種駐留在通用邏輯晶片運作的內部記憶體上的軟體。 GPU 的強大之處在於,它實際上是專門設計的,不是為了通用目的,而是為了非常有效地執行特定任務。這些具體任務正是 DX 規範概述的任務。所以,當新的DX版本出現時,需要進行新的硬體更新,這就需要新的GPU。是的,主機板製造商可以添加更快的記憶體等,但一旦 GPU 製造出來,其內部的邏輯就無法更改。