device_stats() ->
stats
Where the spheres drew
The counts run since the program started; mirrors reads what stands now.
| field | description |
|---|---|
bound | whether a device is bound |
lane | the lane the spheres dispatch on, 1 or 2; absent while nothing is bound |
calls | sphere calls past their parse |
device | of those, drawn on the device |
fallbacks | the rest, by reason, below |
uploads | a source's texels sent to the device: whole on first sight, its written box after |
bytes | the bytes those uploads sent |
landed | buffers a surface took as its mirror at a vk buffer's land, so nothing was sent |
later | the tickets, below |
mirrors | the mirrors standing now, below |
detached | why the last device unbound itself: "refused", "lost" or "closed"; absent otherwise |
The reasons: none, no device bound; off, gpu = false on the call or
LILUSH_GFX_GPU=0; height, the call displaces; alias, a source is the
canvas; small, a box under 16384 pixels; refused, the device refused
the submit; lost, the device was lost under it, or under a ticket before
its land, whose box then went undrawn.
The tickets: taken, later calls the device held open; open, those
not yet landed; waited, lands that found the trace still running, so
the frame had less to paint than the trace took; full, later calls
drawn at once because four were open; failed, lands whose trace
answered an error with the device standing, so the box went undrawn, since
the parse went with the call, and the device stays bound. A ticket held
open counts under device at its submit.
The mirrors: count and bytes, every surface's copy on the device;
landed and landed_bytes, those a landing handed over, held until the
mirror goes; unread and unread_bytes, the landed ones no call on the
device has read since their landing, and the same buffer landed again
stands unread again. A call the device takes reads its source and its
windows; one that falls back reads nothing. The bytes are the surface's
texels: one buffer landed on two surfaces counts twice.