summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/examples/41-tess/cs_terrain_update_draw.sc
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/examples/41-tess/cs_terrain_update_draw.sc')
-rw-r--r--3rdparty/bgfx/examples/41-tess/cs_terrain_update_draw.sc19
1 files changed, 19 insertions, 0 deletions
diff --git a/3rdparty/bgfx/examples/41-tess/cs_terrain_update_draw.sc b/3rdparty/bgfx/examples/41-tess/cs_terrain_update_draw.sc
new file mode 100644
index 00000000000..3ea1882fd26
--- /dev/null
+++ b/3rdparty/bgfx/examples/41-tess/cs_terrain_update_draw.sc
@@ -0,0 +1,19 @@
+#include "bgfx_compute.sh"
+#include "uniforms.sh"
+
+BUFFER_RW(indirectBuffer, uvec4, 3);
+BUFFER_RW(atomicCounterBuffer, uint, 4);
+
+NUM_THREADS(1u, 1u, 1u)
+void main()
+{
+ uint counter = atomicCounterBuffer[1];
+
+ uint subd = 6 << (2 * u_gpu_subd - 1);
+
+ if((2 * u_gpu_subd - 1) <= 0) {
+ subd = 3u;
+ }
+
+ drawIndexedIndirect(indirectBuffer, 0, subd, counter / 2, 0u, 0u, 0u);
+}