AcademySoftwareFoundation / AcademySoftwareFoundation/OpenColorIO
Add options for Hlsl shader generator to allow register selection.
- 主要言語
- C++
- スター
- 2.1k
- フォーク
- 503
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
Hello,
in the current state OCIO does not allow generated code to manually specify register slots (d3d11/12):
Example of generated code :
`Texture2D ocio_lut1d_0;
SamplerState ocio_lut1d_0Sampler;`
This makes reflecting compiled shader (Nearly) mandatory to find the binding location, which is not desirable in many cases.
It would be nice to have an option to be able to set first register slot by hand, then get them generated in a fixed way, for example :
`shaderDesc->setLanguage(GPU_LANGUAGE_HLSL_DX11);
shaderDesc->setFunctionName(functionName);
shaderDesc->setResourceStartSlot(1);
shaderDesc->setSamplerStartSlot(4);
Generated code would become:
`Texture2D ocio_lut1d_0 : register(t1);
SamplerState ocio_lut1d_0Sampler : register(s4) `
On a later stage, supporting bindless for latest d3d12/vulkan implementations would also be nice.
Thanks
Julien
コントリビューションガイド
調査の方向性
HLSLシェーダージェネレーターとShaderDescオプション処理のエントリーポイントを特定し、テクスチャおよびサンプラーの宣言がどのように出力されるかを確認します。リソースとサンプラーの開始スロットを設定可能にし、生成されたD3D11/D3D12 HLSLに要求されたレジスターバインディングが含まれることを検証します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- cpp
- 領域
- computer-graphics
- issue の種類
- 機能追加
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 42/100