プロジェクト

プロフィール

ヘルプ

タスク #33

完了

GeForceで読み込んだモデルの合計材質数が470~600程度になるとドライバーが停止する

猫のしもべ さんが4年以上前に追加. ほぼ4年前に更新.

ステータス:
終了
優先度:
高め
担当者:
カテゴリ:
-
対象バージョン:

説明

なおRadeonでは発生しない。 「アプリケーションを停止してください」というメッセージなので対処必須。 それなりに重たいモデル5~10体程度で達する数なので支障が出る。

CreateDescriptorHeapでエラーが発生するため、リソース関連の都合だと思われる。 ドライバー更新により改善する可能性はあるが、発生トリガーをもっと絞り込んでいこうと思う。

匿名ユーザー さんが4年以上前に更新

試験していった結果、システム全体で作れるヒープの本数が4096あたりではないか、という仮設が成り立った。NVIDIAのドライバー最適化における制約かも知れない。

ヒープ1本に71K個以上のDescriptorサイズを指定すると落ちるまでの本数が減っていくため、諸々の情報やマージンを考慮してヒープ1本につき64K個の領域確保制限を入れることにする。 なおSamplerは2048個を超えるとヒープ自体をエラーで作成できない。これはシェーダーステージ内で参照できるSamplerが2048個迄、というハードウェア制約を考慮した制約だと思われる。

なおRadeonでは試していないが落ちない可能性も高い。

これを必要ならば複数本のヒープから領域を切り出せるようにしていけば実用上は困らないレベルにまでモデル数(≒合計材質数)を扱えるようになると思われる。

猫のしもべ さんが4年以上前に更新

  • ステータス新規 から 確認待ち に変更

更新履歴 commit:1e0ed610a52eed406bbf37a06168af819ed35358 で適用されました。

みょうじ さんがほぼ4年前に更新

  • ステータス確認待ち から 終了 に変更

2020/12現在でRADEON/GEFORCE両方で1000材質をクリアしたので一度チケット終了

他の形式にエクスポート: Atom PDF