2015-09-04 59 views
2

當我在我的機器上開發着色器代碼時,我經常發現自己處於着色器在我的機器上完美工作的情況,但在其他顯卡,驅動程序,操作系統等中沒有。測試着色器的兼容性

如何實現着色器的兼容性?

我看到幾個approches:在許多不同的系統

  • 測試。但是選擇哪個系統?每個操作系統和每個驅動程序上的每張卡都進行測試並不現實。也許我們可以假設供應商關心向後兼容性?在這種情況下,用舊卡和驅動程序進行測試可能就足夠了。

  • 向驅動程序詢問特定的版本和核心配置文件。這有點幫助,但驅動程序顯得非常寬鬆,允許我編寫不符合規範的東西。

  • 代碼檢查程序檢查代碼是否與某個規範嚴格兼容。沒有看到有這樣的工具。

  • 不要打擾並等待來自用戶的錯誤報告。即使驅動程序生成的錯誤消息也相當差,並且觀察到的行爲可能與黑屏一樣沒有洞察力。

我針對Win/Linux/OSX平臺。不是控制檯。

+0

您是否遇到了正在出現的特定錯誤?我們無法真正幫助通用建議。 – Xirema

+0

這不是關於特定的錯誤(在函數參數中缺少「in」就是一個)。我更感興趣的是如何處理兼容性問題,例如,紀念應用程序。許多問題也出現在着色器之外。也許着色器始終在原位進行測試。這將進一步擴大問題的範圍。 – Stefan

+0

答案也很大程度上取決於您定位的硬件。對於控制檯來說,測試更容易,因爲只有非常有限的配置可用。對於PC/Mac,我會再次測試三大硬件廠商(NVIDIA,AMD,Intel)的最新驅動程序。 – BDL

回答