「フェンス」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
10行目: | 10行目: | ||
フェンスがない時代はGPU自体がアイドル状態(タスク全停止)になるのを待っていました。 | フェンスがない時代はGPU自体がアイドル状態(タスク全停止)になるのを待っていました。 | ||
<source lang="csharp"> | <source lang="csharp"> | ||
− | gpu.addTask( | + | gpu.addTask(task1); |
+ | gpu.addTask(task2); | ||
gpu.addTask(computeTask); | gpu.addTask(computeTask); | ||
gpu.waitForIdle(); | gpu.waitForIdle(); | ||
</source> | </source> | ||
− | + | フェンスを使うと「グラフィックスシェーダーはfenceで1フレームごとに止めるけどコンピュートシェーダーは止めないでぶん回す」といったことができます。 | |
<source lang="csharp"> | <source lang="csharp"> | ||
var fence = gpu.createFence(); | var fence = gpu.createFence(); | ||
− | gpu.addTask( | + | gpu.addTask(task1, fence); |
+ | gpu.addTask(task2, fence); | ||
gpu.addTask(computeTask, null); | gpu.addTask(computeTask, null); | ||
gpu.waitForFence(fence); // renderTaskが終わるのを待つ | gpu.waitForFence(fence); // renderTaskが終わるのを待つ |