問題タブ [webgpu]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
chrome-canary - Chrome Canary 97 で WebGPU を実行するにはどうすればよいですか?
どの WebGPU の例 (austin-eng、jack1232/WebGPU-Step-By-Step など) でも、安全でない WebGPU フラグを有効にして Chrome Canary 97.0.4686.0 で実行しています コンソールに、ブラウザーがサポートしていないことを示すいくつかのエラーが表示されますWebGPU。
例: https://austin-eng.com/webgpu-samples/samples/helloTriangle
この動作を再現できますか?
webgpu - WebGPU では、複数のフレームで同じレンダー パスを再利用できますか?
WebGPU では、記述子を定義することでレンダー パスを作成できます。
そして、コマンドエンコーダーを介して実行し、記録を開始します.
つまり、基本的に、記録を開始するには現在のテクスチャが必要なようです(つまり、呼び出しcontext.getCurrentTexture().createView()を行わないとディスクリプタを作成できず、それがないと記録を開始できません)。しかし、API は、テクスチャがフレームごとに変更される可能性があることを示唆しているようです(API が異なり、スワップ チェーンからテクスチャを取得していた数か月前まではそうであったことに注意してください)。したがって、基本的に、異なるフレーム間でレンダー パスを再利用することはできないようです (もちろん、スワップ チェーンにレンダリングせず、代わりにオフスクリーン テクスチャをターゲットにする場合を除きます)。
それで、質問はです。WebGPU では、複数のフレームで同じレンダー パスを再利用できますか?
バルカンとの比較
私の質問は、Vulkan に (少し) さらされたことに由来します。VKImageVulkan では、スワップ チェーン内のオブジェクトの数を事前に知る方法があるため、記録されたリソースを再利用できます。0、 、などの 0 ベースのインデックスを持つことに1なり2ます。正確な構文は覚えていませんが、基本的には、3 つの個別のコマンド バッファーを記録し、フレームごとに 1 つずつ記録VKImageして、それらをフレーム間で再利用できることを覚えています。レンダリング ループで現在のインデックスをクエリしVKImage、対応する記録されたコマンド バッファを取得するだけです。