| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- return {
- tag = 'graphicsPrimitives',
- summary = 'Run a compute shader.',
- description = [[
- This function runs a compute shader on the GPU. Compute shaders must be created with
- `lovr.graphics.newComputeShader` and they should implement the `void compute();` GLSL function.
- Running a compute shader doesn't actually do anything, but the Shader can modify data stored in
- `Texture`s or `ShaderBlock`s to get interesting things to happen.
- When running the compute shader, you can specify the number of times to run it in 3 dimensions,
- which is useful to iterate over large numbers of elements like pixels or array elements.
- ]],
- arguments = {
- {
- name = 'shader',
- type = 'Shader',
- description = 'The compute shader to run.'
- },
- {
- name = 'x',
- type = 'number',
- default = '1',
- description = 'The amount of times to run in the x direction.'
- },
- {
- name = 'y',
- type = 'number',
- default = '1',
- description = 'The amount of times to run in the y direction.'
- },
- {
- name = 'z',
- type = 'number',
- default = '1',
- description = 'The amount of times to run in the z direction.'
- }
- },
- returns = {},
- notes = [[
- Only compute shaders created with `lovr.graphics.newComputeShader` can be used here.
- There are GPU-specific limits on the `x`, `y`, and `z` values which can be queried in the
- `compute` entry of `lovr.graphics.getLimits`.
- ]],
- related = {
- 'lovr.graphics.newComputeShader',
- 'lovr.graphics.getShader',
- 'lovr.graphics.setShader',
- 'Shader'
- }
- }
|