2
シェーダを管理するとき、それらをすべてコンパイルしてメモリに常時格納するのは意味がありますか?それとも、私が必要とするシェーダだけを覚えておき、しばらく使用していないシェーダをアンロードする方が良いでしょうか?メモリ内のシェーダーの数はパフォーマンスにどの程度影響しますか?
シェーダを管理するとき、それらをすべてコンパイルしてメモリに常時格納するのは意味がありますか?それとも、私が必要とするシェーダだけを覚えておき、しばらく使用していないシェーダをアンロードする方が良いでしょうか?メモリ内のシェーダーの数はパフォーマンスにどの程度影響しますか?
アプリケーションによっては、現在のフレームにアンロードされたシェーダを使用する素材が必要なブロッキング状況が発生したくない場合や、フレームを続行する前にリロード/コンパイルする必要がありますレンダリングがブロックされ、おそらくフレームレートに不具合が発生する可能性があります。これを避け、必要になる直前にシェーダをプリエンプティブにリロードすると、OKになります。
しかし、シェーダがどれくらいのメモリを占有しているかを知るために、まずメモリプロファイリングを行います。これは、私にはマイクロ最適化のようです(ロードされたシェーダの数が非常に多い場合を除きます)。私の推測では、テクスチャに焦点を当てることでもっと多くのメモリを節約できます。