diff options
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.sc | 19 |
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); +} |