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