AcademySoftwareFoundation / AcademySoftwareFoundation/OpenColorIO

Add options for Hlsl shader generator to allow register selection.

オープン
#2,145 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
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

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。