gfx.device_stats

gfx

device_stats() -> stats

Where the spheres drew

The counts run since the program started; mirrors reads what stands now.

fielddescription
boundwhether a device is bound
lanethe lane the spheres dispatch on, 1 or 2; absent while nothing is bound
callssphere calls past their parse
deviceof those, drawn on the device
fallbacksthe rest, by reason, below
uploadsa source's texels sent to the device: whole on first sight, its written box after
bytesthe bytes those uploads sent
landedbuffers a surface took as its mirror at a vk buffer's land, so nothing was sent
laterthe tickets, below
mirrorsthe mirrors standing now, below
detachedwhy 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.