|
@@ -0,0 +1,83 @@
|
|
|
|
+return {
|
|
|
|
+ tag = 'pass-misc',
|
|
|
|
+ summary = 'Get statistics for the Pass.',
|
|
|
|
+ description = 'Returns statistics for the Pass.',
|
|
|
|
+ arguments = {},
|
|
|
|
+ returns = {
|
|
|
|
+ stats = {
|
|
|
|
+ type = 'table',
|
|
|
|
+ description = 'A table with statistics.',
|
|
|
|
+ table = {
|
|
|
|
+ {
|
|
|
|
+ name = 'draws',
|
|
|
|
+ type = 'number',
|
|
|
|
+ description = 'The number of draws added to the Pass.'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ name = 'computes',
|
|
|
|
+ type = 'number',
|
|
|
|
+ description = 'The number of compute calls added to the Pass.'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ name = 'drawsCulled',
|
|
|
|
+ type = 'number',
|
|
|
|
+ description = [[
|
|
|
|
+ The number of draw calls that were culled the last time the Pass was submitted.
|
|
|
|
+ ]]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ name = 'cpuMemoryReserved',
|
|
|
|
+ type = 'number',
|
|
|
|
+ description = 'The amount of CPU memory the Pass has reserved, in bytes.'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ name = 'cpuMemoryUsed',
|
|
|
|
+ type = 'number',
|
|
|
|
+ description = 'The amount of CPU memory the Pass is currently using, in bytes.'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ name = 'submitTime',
|
|
|
|
+ type = 'number',
|
|
|
|
+ description = [[
|
|
|
|
+ The amount of time taken on the CPU to submit the Pass the last time it was submitted,
|
|
|
|
+ in seconds. Only updates when timing stats have been enabled with
|
|
|
|
+ `lovr.graphics.setTimingEnabled`, and has a few frames of delay.
|
|
|
|
+ ]]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ name = 'gpuTime',
|
|
|
|
+ type = 'number',
|
|
|
|
+ description = [[
|
|
|
|
+ The amount of time taken on the GPU to process the Pass, in seconds. Only updates when
|
|
|
|
+ timing stats have been enabled with `lovr.graphics.setTimingEnabled`, and has a few
|
|
|
|
+ frames of delay.
|
|
|
|
+ ]]
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ variants = {
|
|
|
|
+ {
|
|
|
|
+ arguments = {},
|
|
|
|
+ returns = { 'stats' }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ example = {
|
|
|
|
+ description = 'See how long it takes the GPU to render a cube.',
|
|
|
|
+ code = [[
|
|
|
|
+ lovr.graphics.setTimingEnabled(true)
|
|
|
|
+
|
|
|
|
+ function lovr.draw(pass)
|
|
|
|
+ pass:cube(0, 1.7, -1, .5, lovr.timer.getTime() * .2, 0, 1, 0)
|
|
|
|
+
|
|
|
|
+ local stats = pass:getStats()
|
|
|
|
+ print(('Rendering a cube takes %f microseconds'):format(stats.gpuTime * 1e6))
|
|
|
|
+ end
|
|
|
|
+ ]]
|
|
|
|
+ },
|
|
|
|
+ related = {
|
|
|
|
+ 'lovr.graphics.isTimingEnabled',
|
|
|
|
+ 'lovr.graphics.setTimingEnabled',
|
|
|
|
+ 'Pass:setViewCull'
|
|
|
|
+ }
|
|
|
|
+}
|