function lovr.load()
stats = { 0, 0, 0, 0 }
tally = lovr.graphics.newTally('shader', 1, 1)
readbacks = {}
end
function lovr.update(dt)
while readbacks[1] and readbacks[1]:isComplete() do
stats = readbacks[1]:getData()
table.remove(readbacks, 1)
end
end
function lovr.draw(pass)
-- Track metrics in the Tally when drawing the cube
pass:tick(tally, 1)
pass:cube(0, 0.7, -1, .5, lovr.headset.getTime())
pass:tock(tally, 1)
-- Read back the tally data
local tx = lovr.graphics.getPass('transfer')
local readback = tx:read(tally, 1)
table.insert(readbacks, readback)
-- Render latest tally results
pass:text(('%s: %s\n%s: %s\n%s: %s\n%s: %s'):format(
'vertices', stats[1],
'vertexshader', stats[2],
'visibletriangles', stats[3],
'fragmentshader', stats[4]
), 0, 1.7, -1, .1)
return lovr.graphics.submit(pass, tx)
end