DirectX 目標用戶指南¶
警告
免責聲明:DirectX 後端仍處於實驗階段並積極開發中。它尚未具備完整功能,也不準備用於實驗或示範環境之外。
簡介¶
DirectX 目標實作了 DirectX 可程式化介面。這些介面記錄在 DirectX 規格 中。
後端最初旨在支援 DirectX 12,並計劃在稍後日期支援 DirectX 11。
DirectX 後端目前處於實驗階段,並未隨附於任何 LLVM 工具的發行版本中。若要啟用本機建置 DirectX 後端,請將 DirectX
新增至 LLVM_EXPERIMENTAL_TARGETS_TO_BUILD
CMake 選項。如需建置 LLVM 的詳細資訊,請參閱 使用 CMake 建置 LLVM 文件。
目標三元組¶
目前,DirectX 目標僅支援 dxil
架構,該架構會為 DirectX 中間語言 產生程式碼。
除了目標架構之外,DirectX 後端還需要知道目標執行階段版本和管線階段。這些使用作業系統和環境三元組組件表示。
目前,DirectX 後端需要以 shadermodel
作業系統為目標,並支援 6.0+ 版本(撰寫本文時,最新發表的版本為 6.7)。
環境 |
說明 |
---|---|
|
像素著色器 |
|
頂點著色器 |
|
幾何著色器 |
|
外殼著色器(鑲嵌) |
|
網域著色器(鑲嵌) |
|
計算核心 |
|
可連結的 |
|
光線產生(光線追蹤) |
|
光線交集(光線追蹤) |
|
光線任何碰撞(光線追蹤) |
|
光線最近碰撞(光線追蹤) |
|
光線未命中(光線追蹤) |
|
可呼叫著色器(光線追蹤) |
|
網格著色器 |
|
放大著色器 |
輸出二進制文件¶
DirectX runtime API 會讀取一種基於 DirectX 規格 的檔案格式。在不同的程式碼庫中,此檔案格式有不同的名稱(特別是 DXBC
和 DXILContainer
)。由於此格式用於儲存 DXBC
和 DXIL
輸出,且最終目標是在 LLVM 中支援這兩種格式作為程式碼生成目標,因此 LLVM 程式碼庫使用更中立的名稱,即 DXContainer
。
DXContainer
格式在功能規格書中僅有少量說明,但在 DirectXShaderCompiler 中存在參考實作。此格式在 LLVM 專案文件中也有說明(請參閱 DirectX 容器)。
目前正在將在 LLVM 中生成 DXContainer
檔案的支援新增至物件串流器和寫入器的 LLVM MC 層,以及用於測試和物件檔案工具的物件和 ObjectYAML 函式庫。
對於 dxil
目標,將位元碼發出至 DXContainer
檔案遵循與 clang 為其他目標支援的 -fembed-bitcode
旗標類似的模型。