Browse Source

Mention workgroup limits more;

bjorn 8 tháng trước cách đây
mục cha
commit
9640a9f7f5

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 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'
+  }
 }

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác