ソースを参照

Mention workgroup limits more;

bjorn 8 ヶ月 前
コミット
9640a9f7f5

ファイルの差分が大きいため隠しています
+ 0 - 0
api/init.lua


+ 6 - 1
api/lovr/graphics/Pass/compute.lua

@@ -87,6 +87,10 @@ return {
       dispatch. It's equivalent to `WorkgroupID * WorkgroupSize + LocalThreadID` (usually what you
       want!)
 
+    There are limits to the number of workgroups that can be dispatched, see the `workgroupCount`
+    limit in `lovr.graphics.getLimits`.  The local workgroup size is also limited by the
+    `workgroupSize` and `totalWorkgroupSize` limits.
+
     Indirect compute dispatches are useful to "chain" compute shaders together, while keeping all of
     the data on the GPU.  The first dispatch can do some computation and write some results to
     buffers, then the second indirect dispatch can use the data in those buffers to know how many
@@ -144,6 +148,7 @@ return {
   related = {
     'Pass:barrier',
     'Pass:setShader',
-    'Pass:send'
+    'Pass:send',
+    'lovr.graphics.getLimits'
   }
 }

+ 8 - 1
api/lovr/graphics/Shader/getWorkgroupSize.lua

@@ -28,5 +28,12 @@ return {
   notes = [[
     For example, if the workgroup size is `8x8x1` and `16x16x16` workgroups are dispatched, then the
     compute shader will run `16 * 16 * 16 * (8 * 8 * 1) = 262144` times.
-  ]]
+
+    The maximum workgroup size is hardware-specific, and is given by the `workgroupSize` and
+    `totalWorkgroupSize` limit in `lovr.graphics.getLimits`.
+  ]],
+  related = {
+    'Pass:compute',
+    'lovr.graphics.getLimits'
+  }
 }

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません