D120 - Graphics vocabulary, and the submit function

decided ยท 2026-08-19

The generator already had Agc as a module and Submit as a verb, and had still found almost nothing in the graphics libraries. The missing ingredient was domain nouns - Dcb, Ccb, CommandBuffer, Flip, Eop, DrawIndex - which no generic word list produces and no amount of generic extension would have reached.

The search space went from 251 million to 2.4 billion, searched in 94 seconds. Names for the 96 MB executable went from 11.6% to 18.2%, and across four titles the database now names between 20% and 36% of imports.

The result the GPU thread was blocked on:

0xc3b2c69821490952  libSceAgcDriver  sceAgcDriverSubmitDcb
0xd4f245bfaf672481  libSceAgcDriver  sceAgcDriverSubmitAcb

Plus a working command-stream vocabulary - sceAgcDcbDrawIndex, sceAgcDcbDrawIndirect, sceAgcDcbSetIndexBuffer, sceAgcAcbDispatchIndirect, sceAgcCreateShader, and more.

Two things are worth carrying forward. D117 made this possible: without correct library attribution the search space was all 1,410 imports rather than the 260 in the graphics libraries, and there would have been no way to tell a graphics name from a lucky collision elsewhere. And the cost has grown - a search is now 94 seconds per module rather than nine, which is what makes the staleness check in run load-bearing rather than a nicety.

A bug the merge introduced and the count caught. The revision-mark list was written on one line, so a merge that parsed line-by-line saw zero existing entries and replaced them. The empty string went with them, which would have made every generated name carry a suffix. Noticed because the reported count went down.